The Assets API lets you upload files to HeyGen and receive anDocumentation Index
Fetch the complete documentation index at: https://heygen-1fa696a7.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
asset_id you can reference in other endpoints — including Video Agent, avatar creation, and video translation.
multipart/form-data. The MIME type is auto-detected from file bytes.
Constraints
| Constraint | Value |
|---|---|
| Max file size | 32 MB |
| Supported images | png, jpeg |
| Supported video | mp4, webm |
| Supported audio | mp3, wav |
| Other |
Example request
Response
| Field | Type | Description |
|---|---|---|
asset_id | string | Unique identifier to reference this file in other API calls. |
url | string | Public URL of the uploaded file. |
mime_type | string | Detected MIME type. |
size_bytes | integer | File size in bytes. |
Use assets in Video Agent
Once uploaded, reference theasset_id in the files array when creating a video:
Three ways to provide files
Video Agent and other endpoints accept files in three formats. Use whichever is most convenient for your workflow:Asset ID
Upload once, reference by ID. Best for files you reuse across multiple videos.
HTTPS URL
Point to a publicly accessible URL. No upload step needed — HeyGen fetches the file directly.
Base64
Inline the file content as a base64-encoded string. Useful for small files or when you want a self-contained request.
Format comparison
| Format | Syntax | When to use |
|---|---|---|
| Asset ID | { "type": "asset_id", "asset_id": "asset_..." } | Pre-uploaded files, reusable across requests. |
| URL | { "type": "url", "url": "https://..." } | Files already hosted publicly. Simplest option. |
| Base64 | { "type": "base64", "media_type": "image/png", "data": "iVBOR..." } | Small files, self-contained requests, no hosting needed. |
Where assets can be used
Theasset_id format is accepted anywhere the API takes file inputs:
| Endpoint | Use case |
|---|---|
POST /v3/video-agents | Attach reference files (images, slides, video clips, audio). |
POST /v3/video-agents/{session_id} | Send additional files in follow-up messages. |
POST /v3/avatars | Provide a photo or video for avatar creation. |
POST /v3/video-translations | Provide source video or custom audio. |

