Endpoints
- Logos and product images
- PDFs and Word documents
- CSV or spreadsheet files
- Slide decks
- Video and audio files
Two Supported Patterns
Upload to a new tent
Usenew as the path parameter:
actual_tent_idasset_id
POST /v1/tents request.
Upload to an existing tent
If you already have atentId, attach more files to the same tent:
The upload endpoint only checks that the tent exists in your workspace. If you plan to use that
tent_id with POST /v1/tents, the tent must still have no generation yet.Request Format
Sendmultipart/form-data with a single field named file.
Request Example
Response Example
201 Created
File Limits
- Maximum file size:
4 MBper upload - Maximum referenced assets on create:
5 - One file per request
Supported Content Types
Images
image/pngimage/jpegimage/gifimage/svg+xmlimage/webpimage/x-iconimage/tiffimage/avif
Documents
application/pdfapplication/mswordapplication/vnd.openxmlformats-officedocument.wordprocessingml.documenttext/markdowntext/plainapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.ms-exceltext/csvapplication/vnd.ms-powerpointapplication/vnd.openxmlformats-officedocument.presentationml.presentation
Media
video/mp4video/webmvideo/quicktimeaudio/mpegaudio/wav
List, Retrieve, and Delete Assets
GET /v1/tents/{tentId}/assets returns every asset on the tent as {"assets": [...]}. GET .../{assetId} returns a single asset. Each asset carries a download_url:
DELETE .../{assetId} removes the asset and deletes the underlying file, returning {"asset_id": "...", "deleted": true}. Deleting an asset that a published tent references does not alter the already-rendered page.
Assets on Emails, Templates, and Tent Templates
The same four operations work on emails, email templates, and tent templates — the only difference is the parent segment of the path:multipart/form-data with a single file field (max 4 MB), exactly like tent uploads, and returns the asset object shown above (with download_url). Reference the returned asset_id in the asset_ids array when iterating the parent with AI — see iterating an email, an email template, or a tent template.
Unlike tent uploads, there is no
new shortcut for these parents — the email, email template, or tent template must already exist. Uploading to one that does not exist in your workspace returns 404 Not Found.Common Errors
Next Step
After uploading, callPOST /v1/tents and pass:
tent_id: theactual_tent_idasset_ids: an array of the returnedasset_idvalues
Next: Create Tents
Use your uploaded asset IDs in the tent creation request.