Mode: "speed" (default) Best for: fast turnaround, batch jobs, and workflows where time matters more than perfect lip-sync. For higher fidelity at the cost of latency, see Precision mode. For dozens or hundreds of videos in one job, see Video Translation batches.
How Lip Sync and Video Translation Relate
Both APIs sit on top of one lip sync engine that runs in two modes — Speed and Precision — trading latency for fidelity. What differs is what each API does around that engine:- Lip Sync API — the engine on its own. You bring the video and your own audio; the engine redraws the mouth to match. No translation, no audio generation — dialogue replacement only.
- Video Translation API — translation, optionally followed by the engine. It has two output modes:
- Audio only (
translate_audio_only: true) — transcribe, translate, and generate the translated audio, then stop. No lip sync. The output is just the new audio track (or the original video with swapped audio and an untouched mouth). - Video (audio + visual) — the same translation pipeline, then runs the lip sync engine so the mouth matches the translated speech.
- Audio only (
- Lip Sync API = engine only — you bring the audio.
- Video Translation API = translation, optionally followed by the engine. Audio-only mode skips the engine entirely; video mode adds it back.
Quick Start
1. List Supported Languages
Before translating, fetch the available target language codes viaGET /v3/video-translations/languages:
2. Submit a Translation (Single Language)
Full schema:POST /v3/video-translations.
Batch (Multiple Languages)
Translate into several languages in one request:3. Poll for Status
UseGET /v3/video-translations/{video_translation_id}. Skip polling by passing callback_url — see Webhooks.
Source Video Input
The URL must be publicly accessible (test by opening in an incognito browser). To use anasset_id, upload first viaPOST /v3/assets— see the Upload Assets guide.
Speed Mode Options
These parameters are particularly relevant for Speed mode:Stock Voice (Enterprise)
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 translated video sounds like them. With this option enabled, the translation is spoken by a natural, preset voice that’s optimized for clear pronunciation and accent in the target language. The trade-off: the result won’t sound like the original speaker.This is an Enterprise feature, available for selected accounts and languages and turned on by request. To use it, contact your HeyGen account team.
stock_voice_config in the translation request:
Captions
To enable captions, setenable_caption: true in the translation request. Once completed, download them:
srt, vtt.
Proofread Before Finalizing
Speed mode supports the proofread workflow — review and edit subtitles before spending credits on final generation. Reference: Create · Get · Download SRT · Upload SRT · Generate Final Video.Step 1 — Create Proofread Session
Full schema:POST /v3/video-translations/proofreads.
proofread_ids — one per language.
Step 2 — Poll Until completed
GET /v3/video-translations/proofreads/{proofread_id}.
Step 3 — Download & Edit the SRT
Download viaGET /v3/video-translations/proofreads/{proofread_id}/srt; upload the revised file via Upload Proofread SRT.
srt_url file locally, then upload the revised version:
Step 4 — Generate Final Video
POST /v3/video-translations/proofreads/{proofread_id}/generate.
video_translation_id to poll via GET /v3/video-translations/{video_translation_id}.
Other Operations
List All Translations
GET /v3/video-translations.
has_more + next_token for pagination.
Delete a Translation
DELETE /v3/video-translations/{video_translation_id}.
When to Use Speed vs. Precision
For high-volume jobs across many source videos, see Video Translation batches.

