Generate Create Generation
generate_create-generationGenerate a lipsync video by providing visual and audio inputs (URL or assetId) and receive a generation ID to track and retrieve the result.
Instructions
Create a lipsync video. Provide a video input (or an image for sync-3) and an audio input, each by url or assetId. Returns a generation id — call generate_get-generation once with wait: true and timeout: 55, then read outputUrl. To choose which face to sync in a multi-person video, pass options.active_speaker_detection (auto_detect, or coordinates + frame_number).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Array of input objects. Standard lipsync requests without segments require exactly one visual input (video or image) and one audio or text input. Multi-segment lipsync requests require exactly one video plus one or more audio/text inputs; give each audio/text input a unique refId and reference it from segments[].audioInput.refId. Dubbed lipsync requests using dubParams require exactly one video and no audio/text input because the dubbed audio is extracted from that video. | |
| model | Yes | name of the model to use for generation. | |
| options | No | additional options available for generation. | |
| segments | No | one or more segments definition to apply edits to | |
| dubParams | No | Dubbing parameters. When present, audio is extracted from the single video input, dubbed via ElevenLabs into the target language, and then lipsync is run with the dubbed audio. Do not include audio or text inputs with dubParams; requests that send both are rejected. | |
| projectId | No | Attach this generation to a project (from POST /v2/projects) so it appears in Studio under that project. | |
| webhookUrl | No | Webhook URL for generation status updates. When the generation reaches a terminal state, Sync sends a POST request with the generation payload and a Sync-Signature header (`t=<unix>,v1=<hmac_sha256>`). Verify the signature with the organization webhook secret from GET /v2/organizations/webhook/secret. HTTPS is strongly recommended. | |
| outputFileName | No | filename for the generated output (up to 255 characters). Characters outside letters, numbers, dashes and underscores are stripped and spaces become underscores, so "My Clip!.mp4" is stored as "My_Clipmp4". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Sync generation id. | |
| error | No | ||
| model | No | Model used for the generation. | |
| status | No | Current generation status. | |
| errorCode | No | ||
| outputUrl | No | Signed result URL when the generation is complete. Copy this exact string verbatim; do not reconstruct, shorten, or edit it. | |
| outputDuration | No | Output duration in seconds. |