For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
The multipart/form-data form of `POST /v2/generate` — the same endpoint as "Create Generation", for uploading local files directly instead of passing URLs. Send each file under a field named for its type (`video`, `image`, `audio`); files must be under 20MB (use the `input` field with URLs for larger media, or upload via POST /v2/assets/upload and pass the `assetId`). Nested fields such as `input`, `options`, `segments`, and `dubParams` must be sent as JSON strings in multipart requests. Image inputs are sync-3 only. 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.
Authentication
x-api-keystring
API Key authentication via header
Request
Use content type multipart/form-data to upload local files directly. Only files below 20MB are supported. For larger files, use the input field to provide URLs or assetIds for the corresponding input items. Combining both file and URL inputs is supported, with the file taking precedence over the URL. Nested fields such as input, options, segments, and dubParams must be sent as JSON strings.
videofileOptional
Input video file.
imagefileOptional
Input image file. Only supported with sync-3 model.
audiofileOptional
Input audio file.
modelenumRequired
name of the model to use for generation.
Allowed values:
inputlist of objectsOptional
Array of input objects, encoded as a JSON string in multipart requests. Can be used to provide URLs or assetIds for larger files. Each input should either have a file, a url, or an assetId. Audio input items can be provided as either recorded/captured audio URL or a text-to-speech input with TTS provider configuration.
optionsobjectOptional
Optional generation options, encoded as a JSON string in multipart requests.
segmentslist of objectsOptional
Optional segment definitions, encoded as a JSON string in multipart requests.
dubParamsobjectOptional
Optional dubbing parameters, encoded as a JSON string in multipart requests.
webhookUrlstringOptional
outputFileNamestringOptional
projectIdstringOptional
Optional project id to attach the generation to.
Response
Job created successfully
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.
statusenum
The status of the generation.
errorstring
The error message if the generation failed.
errorCodestring
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.
optionsobject
Options for the generation.
outputDurationdouble
The duration of the output media.
outputUrlstring
The URL of the output media.
outputFileNamestring
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 objects
The segments of the generation.
segmentOutputUrlstring
The URL of the segment output media.
synthesizedAudioUrlstring
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.
webhookUrlstring
The URL to the webhook endpoint.
projectIdstring
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.
Errors
400
Bad Request Error
401
Unauthorized Error
409
Conflict Error
422
Unprocessable Entity Error
429
Generation Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error
504
Gateway Timeout Error
The multipart/form-data form of POST /v2/generate — the same endpoint as “Create Generation”, for uploading local files directly instead of passing URLs. Send each file under a field named for its type (video, image, audio); files must be under 20MB (use the input field with URLs for larger media, or upload via POST /v2/assets/upload and pass the assetId). Nested fields such as input, options, segments, and dubParams must be sent as JSON strings in multipart requests. Image inputs are sync-3 only. 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.
Use content type multipart/form-data to upload local files directly. Only files below 20MB are supported. For larger files, use the input field to provide URLs or assetIds for the corresponding input items. Combining both file and URL inputs is supported, with the file taking precedence over the URL. Nested fields such as input, options, segments, and dubParams must be sent as JSON strings.