Translate a video into one or more target languages. The translation runs asynchronously — the response contains an id (or ids for batch) which can be used to poll status.
Use GET /v3/video-translations/languages to discover supported language codes.
HeyGen API key. Obtain from your HeyGen dashboard.
Request body for POST /v3/video-translations.
Asset input via publicly accessible HTTPS URL.
Target language codes. Use one for single translation, multiple for batch.
1Title for the translation job
Asset input via publicly accessible HTTPS URL.
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
Custom brand voice ID. Requires brand voice setup.
Asset input via publicly accessible HTTPS URL.
Which video the subtitle applies to: 'input' (source) or 'output' (translated). Enterprise plan only.
input, output Frame rate mode: 'vfr', 'cfr', or 'passthrough'. Only valid with audio.
Project/folder ID to organize translation into
Successful response
Response for POST /v3/video-translations.