Skip to main content

Prerequisites

An image of a person (PNG or JPEG) — accessible via a public URL or uploaded as an asset
A voice_id for the voice you want. Use GET /v3/voices to browse options.

Step 1 — Generate the video

Use POST /v3/videos with type: "image" and an image object instead of avatar_id:
type: "image" and type: "avatar" are mutually exclusive — use exactly one.

Step 2 — Poll for completion

Video generation is asynchronous. Poll GET /v3/videos/{video_id} until the status reaches completed:
StatusMeaning
pendingQueued for processing
processingVideo is being generated
completedReady — video_url is available
failedSomething went wrong

Full example

Using audio instead of a script

You can lip-sync to a custom audio file instead of generating speech from text. Pass audio_url or audio_asset_id instead of script + voice_id:
script and audio_url/audio_asset_id are mutually exclusive. If you provide a script, you must also provide a voice_id.

Optional parameters

ParameterTypeDescription
titlestringDisplay name in the HeyGen dashboard
resolutionstring4k, 1080p (recommended), or 720p
aspect_ratiostringauto (recommended — matches the source image, falling back to 16:9), 16:9, 9:16, 4:5, 5:4, or 1:1
remove_backgroundbooleanRemove the image background from the video
backgroundobjectSet a solid color or image background
voice_settingsobjectAdjust speed (0.5–1.5), pitch (-50 to +50), locale
callback_urlstringWebhook URL for completion notification
callback_idstringYour own ID echoed back in the webhook payload

Image-to-video vs. Photo Avatar

CriteriaImage-to-VideoPhoto Avatar
SetupNone — use type: "image" and goRequires POST /v3/avatars first
ReusabilityOne-off per requestReusable across many videos via avatar_id
Motion promptNot supportedSupported
ExpressivenessNot supportedhigh / medium / low
Best forQuick tests, one-off contentRecurring brand content
If you plan to generate multiple videos with the same person, create a Photo Avatar once and reuse its avatar_id. This saves processing time and unlocks motion and expressiveness controls.