Create Video Translation
Translates a video into one or more target languages with voice cloning and lip-sync. Returns one video_translation_id per language. Use mode: ‘speed’ (default) for fast turnaround or ‘precision’ for higher lip-sync quality.
Authorizations
HeyGen API key. Obtain from your HeyGen dashboard.
Headers
Optional client-supplied key for safely retrying mutations. Subsequent calls within 24 hours that share this key replay the original response — even if the request body differs slightly (a warning is logged). A retry that arrives while the original is still in flight gets a 409 request_in_progress. Keys must be 1–255 characters from [A-Za-z0-9_:.-]; a UUID is a safe default. Scope is per-endpoint and per-resource: the same key on a different route or path parameter is independent.
1 - 255^[A-Za-z0-9_\-:.]{1,255}$Body
Request body for POST /v3/video-translations.
Asset input via publicly accessible HTTPS URL.
- AssetUrl
- AssetId
Target language names (e.g. 'Chinese (Cantonese, Traditional)', 'Spanish (Spain)', 'English'). Use GET /v3/video-translations/languages for valid values. Use one for single translation, multiple for batch.
1Title for the translation job
Asset input via publicly accessible HTTPS URL.
- AssetUrl
- AssetId
Source language code (auto-detected if omitted)
Only translate audio, keep original video
Number of speakers (improves speaker separation)
Translation quality mode: 'speed' (faster) or 'precision' (higher quality, uses avatar inference)
speed, precision Webhook URL for completion notifications
ID included in webhook payload
Generate captions for translated video
Preserve the source video's encoding specs (resolution, bitrate).
Allow dynamic duration adjustment
Remove background music
Enhance speech quality
Add watermark to output
Start time in seconds for partial translation
End time in seconds for partial translation
Brand glossary ID for custom term translations. Legacy field name for brand_glossary_id — both are accepted and resolve to the same workspace record. Discover IDs via GET /v3/brand-glossaries.
Brand glossary ID for custom term translations (e.g. translate 'Reformer' as the Pilates equipment, not 'political activist'). Alias for the legacy brand_voice_id field. Discover IDs via GET /v3/brand-glossaries.
Use a preset stock voice for the translation instead of recreating the original speaker's voice. By default, Video Translation clones the original speaker so the result sounds like them; with this enabled, the translation is spoken by a natural preset voice optimized for clear pronunciation and accent in the target language (the result will not sound like the original speaker). Enterprise feature, available for selected accounts and languages by request — contact your HeyGen account team.
Asset input via publicly accessible HTTPS URL.
- AssetUrl
- AssetId
Which video the subtitle applies to: 'input' (source) or 'output' (translated). Enterprise plan only.
input, output Frame rate mode for the output video. 'vfr' = variable frame rate, 'cfr' = constant frame rate, 'passthrough' = match the source. Only takes effect when a custom 'audio' track is provided.
vfr, cfr, passthrough Project/folder ID to organize translation into
Response
Successful response
Response for POST /v3/video-translations.

