POST /v3/videos. Instead of a script and a voice, you describe the shot you want in natural language and hand HeyGen up to three avatar looks (plus optional reference media). The Seedance pipeline composes the scene, motion, and framing for you.
Prerequisites
One to three avatar look IDs. Use
GET /v3/avatars/looks to browse your looks and copy the id field for each one you want in the shot.A prompt describing the scene, action, and framing. This replaces the
script + voice_id you’d use for a Digital Twin video.Step 1 — Write your prompt
Theprompt (1–10,000 characters) is the creative brief for the shot. Describe what the avatar is doing, the setting, the camera, and the mood — e.g. “A founder walks through a sunlit startup office, gesturing toward a whiteboard, shot handheld in a documentary style.” See Writing Effective Video Prompts for guidance.
Step 2 — Pick your avatar looks
Passavatar_id as an array of 1–3 look IDs. Multiple looks let HeyGen feature more than one avatar in the same shot:
id of each look you want into the array.
Step 3 — Create the video
Send aPOST to /v3/videos with type: "avatar_shots":
/v3/videos job:
Adding reference media
Usereferences to steer style, motion, or composition with your own videos and images. Each reference is a url, asset_id, or base64 asset input:
Avatar looks and references share a combined media budget: at most 3 videos and 9 images total across
avatar_id and references. Upload your own files first with Assets to get an asset_id.Step 4 — Poll for completion
Generation is asynchronous. PollGET /v3/videos/{video_id} until status is completed:
| Status | Meaning |
|---|---|
pending | Queued for processing |
processing | Video is being generated |
completed | Ready — video_url is available |
failed | Something went wrong — check failure_message |
Full example
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Must be "avatar_shots" |
prompt | string | Yes | 1–10,000 characters describing the shot |
avatar_id | array | Yes | 1–3 avatar look IDs |
references | array | No | Up to 3 videos / 9 images (shared with avatar_id) as url, asset_id, or base64 inputs |
aspect_ratio | string | No | 16:9 (default), 9:16, or 1:1 |
resolution | string | No | 720p (default) or 1080p |
duration | integer | No | 4–15 seconds, default 10. Omit when auto_duration is true |
auto_duration | boolean | No | Let HeyGen pick the duration. Default false |
enhance_prompt | boolean | No | Auto-expand a short prompt into a richer description. Default false |
title | string | No | Display name in the HeyGen dashboard |
Using webhooks instead of polling
Pass acallback_url when creating the video and HeyGen will POST to it when the job finishes — register an endpoint via POST /v3/webhooks/endpoints and subscribe to avatar_video.success and avatar_video.fail as covered in Webhooks.
