Skip to main content

Endpoints

Use this endpoint when your prompt should reference uploaded files such as:
  • 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

Use new as the path parameter:
Tented creates an idle tent and returns:
  • actual_tent_id
  • asset_id
Use those values in your later POST /v1/tents request.

Upload to an existing tent

If you already have a tentId, 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

Send multipart/form-data with a single field named file.

Request Example

Response Example

201 Created

File Limits

  • Maximum file size: 4 MB per upload
  • Maximum referenced assets on create: 5
  • One file per request

Supported Content Types

Images

  • image/png
  • image/jpeg
  • image/gif
  • image/svg+xml
  • image/webp
  • image/x-icon
  • image/tiff
  • image/avif

Documents

  • application/pdf
  • application/msword
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • text/markdown
  • text/plain
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • application/vnd.ms-excel
  • text/csv
  • application/vnd.ms-powerpoint
  • application/vnd.openxmlformats-officedocument.presentationml.presentation

Media

  • video/mp4
  • video/webm
  • video/quicktime
  • audio/mpeg
  • audio/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:
Upload is 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, call POST /v1/tents and pass:
  • tent_id: the actual_tent_id
  • asset_ids: an array of the returned asset_id values

Next: Create Tents

Use your uploaded asset IDs in the tent creation request.