asset_id you can reference in other endpoints — like POST /v3/video-agents, POST /v3/videos, or POST /v3/avatars.
Upload an Asset
Response
Supported File Types
| Category | Formats |
|---|---|
| Image | PNG, JPEG |
| Video | MP4, WebM |
| Audio | MP3, WAV |
| Document |
Direct Upload for Large Files
POST /v3/assets proxies file bytes through the API, which is why it’s capped at 32 MB. For larger files, use the presigned direct upload flow — three required steps:
POST /v3/assets/direct-uploadswithfilename,content_type, and exactsize_bytes→ returnsasset_id, a presignedupload_url, andupload_headers.PUTthe raw file bytes toupload_url, sendingupload_headersverbatim, before the URL expires (expires_in_seconds).POST /v3/assets/{asset_id}/completeto finalize. Idempotent. Theasset_idis not usable until this step succeeds.
max_bytes in the initialize response. See Upload Assets for full examples in Python and Node.js.
Using Assets
Once uploaded, reference theasset_id anywhere the API accepts asset inputs:
{"type": "url", "url": "https://..."}) or base64 ({"type": "base64", "media_type": "image/png", "data": "..."}). The 32 MB per-file limit applies to URL inputs too — for larger files, upload via the direct upload flow and pass the asset_id. Use asset_id when you need to reuse the same file across multiple requests.
