---
title: "Upload Asset"
method: POST
path: "/v3/assets"
tags: ["Assets"]
---

# Upload Asset

`POST /v3/assets`

Uploads a file (image, video, audio, PDF, or SRT subtitle) and returns an asset_id for use in other endpoints. Max 32 MB. Supported types: png, jpeg, mp4, webm, mp3, wav, pdf, srt.

## Headers

- `Idempotency-Key` string

## Response `200`

Successful response

- object
  - `data` UploadAssetV3Response — Response from uploading an asset via POST /v3/assets.
    - `asset_id` string, required — Unique asset identifier for use in other endpoints like POST /v3/video-agents
    - `url` string, required — Public URL of the uploaded asset
    - `mime_type` string, required — Detected MIME type of the file
    - `size_bytes` integer, required — File size in bytes

## Other responses

- `400` — Invalid request parameters
- `401` — Authentication failed
- `409` — A prior request with this Idempotency-Key is still in progress. Wait for the original request to complete, then retry.
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/heygen/apis/heygen-external-api.md) · [All operations](https://skmtc.net/heygen/apis/heygen-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/heygen/heygen-external-api/versions/e2e54726e210/schema)
