Skip to main content
POST
Create Lipsync

Authorizations

x-api-key
string
header
required

HeyGen API key. Obtain from your HeyGen dashboard.

Headers

Idempotency-Key
string

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.

Required string length: 1 - 255
Pattern: ^[A-Za-z0-9_\-:.]{1,255}$

Body

application/json

Request body for POST /v3/lipsyncs.

video
AssetUrl · object
required

Asset input via publicly accessible HTTPS URL.

audio
AssetUrl · object
required

Asset input via publicly accessible HTTPS URL.

title
string | null

Title for the lipsync job

mode
enum<string>
default:speed

Quality mode: 'speed' (faster) or 'precision' (higher quality, uses avatar inference)

Available options:
speed,
precision
callback_url
string | null

Webhook URL for completion notifications

callback_id
string | null

ID included in webhook payload

enable_caption
boolean
default:false
deprecated

Deprecated and ignored: captions are always generated; whether to display them is a download-side choice.

keep_the_same_format
boolean | null

Preserve the source video's encoding specs (resolution, bitrate).

enable_dynamic_duration
boolean
default:true

Allow dynamic duration adjustment

disable_music_track
boolean
default:false

Remove background music

enable_speech_enhancement
boolean
default:false

Enhance speech quality

enable_watermark
boolean
default:false

Add watermark to output

start_time
number | null

Start time in seconds for partial lipsync

end_time
number | null

End time in seconds for partial lipsync

fps_mode
string | null

Frame rate mode: 'vfr', 'cfr', or 'passthrough'.

folder_id
string | null

Project/folder ID to organize lipsync into

Response

Successful response

data
LipsyncCreateResponse · object

Response for POST /v3/lipsyncs.