Saltar a la navegación

Create Generation

Create a lip sync generation with application/json — provide each input by url or by assetId from an uploaded asset. For reusable or large local files, upload them first with POST /v2/assets/upload and pass the returned assetId; see Asset Uploads. Use the multipart “Create Generation with Files” form only when uploading direct audio, video, or image file fields; it has a 5 GiB per-file application parser limit, subject to your plan and any lower proxy limits. Nested fields such as input, options, segments, dubParams, and dialogueEdit must be JSON strings in multipart requests. If a text input requires speech synthesis and the ElevenLabs provider is temporarily unavailable, the request returns errorCode elevenlabs_service_unavailable: 504 for provider timeouts and 503 for other provider outages for unkeyed requests. Keyed uncertain outcomes return 503 IDEMPOTENCY_OUTCOME_UNKNOWN instead. An API-key request that passes dialogueEdit is refused with errorCode dialogue_edit_retime_required (422) when the organization’s rollout lacks segment lipsync and section expansion. A dialogueEdit that removes more speech than the surrounding footage can absorb returns errorCode dialogue_edit_removal_too_large (422). When the failing section can be identified, dialogueEditSection on the error names it; change it and create a new preview before submitting again. Retrying the same preview fails again. Send the optional Idempotency-Key header on the first request and reuse it with the same payload on retries. An accepted replay returns 200 with the original generation’s current state and Idempotency-Replayed: true. See Idempotent Requests for key validation, conflicts, retention, and uncertain-outcome recovery.

Autenticación

x-api-keystring
Autenticación con clave API vía encabezado

Encabezados

Idempotency-KeystringOpcional

Case-sensitive organization-scoped key, 1–128 characters matching [A-Za-z0-9._~-]+. Send exactly one header. Reuse the same key and payload for retries of one action. Retained seven days from acceptance, longer while active or unresolved. Not a JSON field.

Solicitud

This endpoint expects an object.
modelenumRequerido
name of the model to use for generation.
Valores permitidos:
inputlist of objectsRequerido

Normal lipsync requests must include exactly one visual input (video or image) and one audio or text input. Dubbed lipsync requests using dubParams must include exactly one video input and no audio or text input, because Sync extracts the dubbing source audio from that video. Image inputs are only supported with the sync-3 model. When using segments, audio or text inputs can carry unique refId values.

optionsobjectOpcional
additional options available for generation.
segmentslist of objectsOpcional
segments definition list. When provided, allows defining one or more video segments with different audio inputs for each segment. Each segment specifies a time range and references an audio input by refId.
webhookUrlstringOpcional

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. Verify the header with the organization webhook secret from GET /v2/organizations/webhook/secret. HTTPS is strongly recommended.

outputFileNamestringOpcional
Base filename for the generated output without extension. The .mp4 extension will be added automatically. Only alphanumeric characters, underscores, and hyphens are allowed, up to 255 characters.
dubParamsobjectOpcional

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.

projectIdstringOpcional

Optionally attach this generation to a project (created via POST /v2/projects) so it appears in Studio under that project. Must reference a project in your organization — otherwise the request is rejected with 422.

dialogueEditobjectOpcional

Use the id of a completed dialogue edit from POST /v2/dialogue-edits to supply the audio and edited regions. Requires a preview that ran segment lipsync and section expansion (see the job's segmentLipsyncEnabled and sectionExpansionEnabled). Send exactly one video input, the same video the dialogue edit was made from, and no audio input, segments or dubParams. Billing, status, wait and webhooks work as for any generation.

Respuesta

First acceptance returns 201. An equivalent keyed replay returns 200 with this same response shape and Idempotency-Replayed: true. The original generation may still be processing or may have failed.

createdAtdatetime
The date and time the generation was created.
idstring
A unique identifier for the generation.
inputlist of objects
An array of input objects used for generation.
modelenum
The name of the model used for generation.
Valores permitidos:
statusenum
The status of the generation.
Valores permitidos:
errorstringOpcional
The error message if the generation failed.
errorCodestringOpcional

Stable, machine-readable error code if the generation failed (e.g. generation_input_video_inaccessible). The full catalog of codes, messages and suggested fixes is served unauthenticated at GET /v2/errors.

optionsobjectOpcional
Options for the generation.
outputDurationdoubleOpcional
The duration of the output media.
outputUrlstringOpcional
The URL of the output media.
outputFileNamestringOpcional
The sanitized filename applied to the output media. Characters outside letters, numbers, dashes and underscores are stripped and spaces become underscores, so this can differ from the value submitted. Null when no name was provided.
segmentslist of objectsOpcional
The segments of the generation.
segmentOutputUrlstringOpcional
The URL of the segment output media.
synthesizedAudioUrlstringOpcional

The URL of the audio synthesized from a text (TTS) input. Only present for generations created with a TTS text input; reuse it as an audio input to keep the same take across generations.

webhookUrlstringOpcional
The URL to the webhook endpoint.
projectIdstringOpcional
The id of the project this generation is attached to, or null when it belongs to no project. Set via the projectId field on the create request.
generationEstimateobjectOpcional

A completion-time estimate captured once when the generation is accepted. Populated only for generations created in sync's own apps, such as Sync Studio; the field is absent for generations created through the API today.

Errores

400
Bad Request Error
401
Unauthorized Error
409
Conflict Error
410
Generation Deleted Error
422
Unprocessable Entity Error
429
Generation Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error
504
Gateway Timeout Error