{"openapi":"3.1.0","paths":{"/v2/assets":{"get":{"operationId":"AssetsController_getAll","parameters":[{"name":"projectId","required":false,"in":"query","schema":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},{"name":"userId","required":false,"in":"query","schema":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","schema":{"type":"string"}},{"name":"searchQuery","required":false,"in":"query","schema":{"default":"","type":"string"}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"nameAsc","type":"string","enum":["nameAsc","nameDesc","dateAsc","dateDesc","durationAsc","durationDesc","sizeAsc","sizeDesc","kindAsc","kindDesc"]}},{"name":"types","required":false,"in":"query","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}],"responses":{"200":{"description":"Paginated list of assets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedAssetsResponseDto"}}}}},"summary":"List all assets for the organization","tags":["Assets"]},"post":{"description":"Registers a media URL as a reusable asset. Use the returned asset id in generation inputs (`input[].assetId`) or as a voice clone sample. To upload a local file, first request a presigned URL via `POST /v2/assets/upload`, PUT the file there, then register the returned `url` here.","operationId":"AssetsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAssetDto"}}}},"responses":{"201":{"description":"Asset created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDto"}}}},"422":{"description":"The URL points at the upload bucket but no file was uploaded, the uploaded file exceeds the plan size limit, or an optional projectId was provided but does not reference a project in your organization"}},"summary":"Create a new asset","tags":["Assets"]}},"/v2/assets/upload":{"post":{"description":"Returns a presigned S3 `uploadUrl` and the final public `url`. PUT the file bytes to `uploadUrl` with the same Content-Type, then register the file as an asset via `POST /v2/assets` using `url`. Registration verifies the upload happened and enforces plan limits on the actual file size. Single uploads are capped at 5GB.","operationId":"AssetsController_createUploadUrl","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAssetUploadDto"}}}},"responses":{"201":{"description":"Presigned upload URL created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetUploadResponseDto"}}}},"422":{"description":"File size exceeds the plan limit"}},"summary":"Request a presigned URL to upload a file","tags":["Assets"]}},"/v2/assets/{id}":{"get":{"operationId":"AssetsController_get","parameters":[{"name":"id","required":true,"in":"path","description":"Asset ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Asset details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDto"}}}},"404":{"description":"Asset not found"}},"summary":"Get an asset by ID","tags":["Assets"]},"patch":{"description":"Updates the name or visibility of an asset. With API-key auth the asset must be owned by the key owner; organization-shared assets can only be updated by an admin/owner session.","operationId":"AssetsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Asset ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAssetDto"}}}},"responses":{"200":{"description":"Asset updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDto"}}}},"403":{"description":"Asset is visible but not writable by the caller (only the owner or an org admin/owner can update it)"},"404":{"description":"Asset not found"},"422":{"description":"API key has no owner to scope the update"}},"summary":"Update an asset","tags":["Assets"]},"delete":{"description":"Deletes an asset in your organization. With API-key auth the asset must be owned by the key owner; assets shared at the organization level can only be deleted by an admin/owner session.","operationId":"AssetsController_delete","parameters":[{"name":"id","required":true,"in":"path","description":"Asset ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Asset deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}}}}}},"403":{"description":"Asset is visible but not deletable by the caller (only the owner or an org admin/owner can delete it)"},"404":{"description":"Asset not found"},"422":{"description":"API key has no owner to scope the deletion"}},"summary":"Delete an asset","tags":["Assets"]}},"/v2/organizations/webhook/secret":{"get":{"description":"Returns the organization webhook signing secret used to verify Sync-Signature headers on generation and batch webhooks. Sync signs the raw JSON request body as HMAC-SHA256 over `<timestamp>.<rawBody>` and sends it as `Sync-Signature: t=<unix>,v1=<hex_digest>`. Store the full `whsec_...` value securely and use `masked=true` only for display.","operationId":"OrganizationsController_getWebhookSecret","parameters":[{"name":"masked","required":false,"in":"query","description":"Whether to return a masked version of the secret for display. Omit or set false when configuring a webhook verifier.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Webhook secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretResponseDto"}}}}},"summary":"Get webhook secret","tags":["Organizations"]}},"/v2/generate":{"post":{"operationId":"GenerateController_createGeneration","parameters":[],"requestBody":{"required":true,"description":"Create a generation job. Send application/json for URL or assetId inputs. Use multipart/form-data only when uploading direct audio, video, or image file fields; nested fields such as input, options, segments, and dubParams must be JSON strings in multipart requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGenerationDto"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CreateGenerationDto"}}}},"responses":{"201":{"description":"Job created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Generation"}}}},"400":{"description":"Bad Request - Invalid input or unsupported model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"409":{"description":"Conflict - the controller rejected a duplicate backend submission (errorCode generation_conflict). Public create requests do not currently accept a client-supplied generation id or idempotency key, so do not blindly retry ambiguous network failures.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"422":{"description":"Unprocessable Entity - submit-time validation failed (e.g. an optional projectId was provided but does not reference a project in your organization)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"429":{"description":"Too Many Requests - concurrency limit reached (errorCode concurrency_limit_reached). Includes activeGenerations, concurrencyLimit, retryAfterSeconds and the Retry-After / X-Sync-Concurrency-Limit / X-Sync-Active-Generations headers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"500":{"description":"Internal Server Error - unexpected failure (errorCode internal_error). Includes the requestId for support","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"503":{"description":"Service Unavailable - the generation service or a dependency is temporarily unavailable, or media validation exceeded its bounded deadline (errorCode controller_unavailable / controller_dependency_error / generation_media_probe_unavailable / generation_media_probe_timeout). Includes a Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"504":{"description":"Gateway Timeout - controller submission exceeded its bounded deadline with an unknown outcome (errorCode controller_timeout). Do not blindly retry. Includes a Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}}},"tags":["Generate"]}},"/v2/generate/{id}":{"get":{"operationId":"GenerateController_getGeneration","parameters":[{"name":"id","required":true,"in":"path","description":"Job ID","schema":{"type":"string"}},{"name":"include","required":false,"in":"query","description":"Additional information to include in the response","schema":{"enum":["progress"],"type":"string"}},{"name":"wait","required":false,"in":"query","description":"Explicitly long-poll until the generation reaches a terminal state (COMPLETED, FAILED, REJECTED) or the timeout elapses. On timeout the current state is returned with HTTP 200 - check `status` and retry. Cannot be combined with include=progress.","schema":{"example":true,"type":"boolean"}},{"name":"timeout","required":false,"in":"query","description":"Maximum seconds to block when wait=true (1-10). Default 5.","schema":{"minimum":1,"maximum":10,"example":5,"type":"number"}}],"responses":{"200":{"description":"Job status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Generation"}}}},"400":{"description":"Bad Request - the id is not a valid generation id (errorCode invalid_generation_id) or is an external provider id (errorCode unsupported_generation_id_format)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"404":{"description":"Job not found (errorCode generation_not_found)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"500":{"description":"Internal Server Error (errorCode internal_error)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}}},"tags":["Generate"]}},"/v2/generate/estimate-cost":{"post":{"description":"Alias of POST /v2/generations/estimate.","operationId":"GenerateController_estimateCost","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateCostDto"}}}},"responses":{"200":{"description":"Estimated cost","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateCostResponseDto"}}}}},"summary":"Estimate cost for a generation","tags":["Generate"]}},"/v2/generations":{"get":{"operationId":"GenerateController_getGenerations","parameters":[{"name":"status","required":false,"in":"query","description":"Filter generations by status","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","description":"Maximum number of generations to return (1-100). When set, results are ordered newest-first and can be paged with `cursor`.","schema":{"type":"number"}},{"name":"cursor","required":false,"in":"query","description":"Generation id to page after - pass the last id of the previous page. Only used together with `limit`.","schema":{"type":"string"}}],"responses":{"200":{"description":"Generations retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Generation"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationError"}}}}},"tags":["Generate"]}},"/v2/models":{"get":{"operationId":"ModelsController_get","parameters":[],"responses":{"200":{"description":"List of models","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ModelDto"}}}}}},"summary":"Get all available models","tags":["Models"]}},"/v2/generations/estimate":{"post":{"operationId":"GenerationsController_estimateCost","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateCostDto"}}}},"responses":{"200":{"description":"Estimated cost","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateCostResponseDto"}}}}},"summary":"Estimate cost for a generation","tags":["Generations"]}},"/v2/generations/{id}":{"get":{"operationId":"GenerationsController_getById","parameters":[{"name":"id","required":true,"in":"path","description":"Generation ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Generation details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationDto"}}}},"404":{"description":"Generation not found"}},"summary":"Get a generation by ID","tags":["Generations"]},"delete":{"description":"Deletes a generation. Generations are organization-scoped, so any member - or an API key for the organization - can delete one.","operationId":"GenerationsController_delete","parameters":[{"name":"id","required":true,"in":"path","description":"Generation ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Generation deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationDto"}}}},"404":{"description":"Generation not found"},"409":{"description":"Generation is still processing and cannot be deleted (errorCode: generation_not_deletable_while_processing)"}},"summary":"Delete a generation","tags":["Generations"]}},"/v2/batch":{"post":{"description":"Creates a batch processing job from a JSONL file. Requires the Scale plan. The multipart file field must be `input` (or `file` alias), the file must be 5 MB or smaller, and it must contain 20-500 records by default. Each line must contain `request_id`, `endpoint: \"/v2/generate\"`, and `payload`.","operationId":"BatchController_createBatch","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CreateBatchDto"}}}},"responses":{"200":{"description":"Validation successful (dry_run=true)","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["VALIDATED"]}}}}}},"201":{"description":"Batch created successfully (dry_run=false)","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["PENDING","JOBS_CREATED","PROCESSING","COMPLETED","FAILED"]},"created_at":{"type":"string","format":"date-time"},"metrics":{"type":"object","properties":{"total_generations":{"type":"integer"},"success_count":{"type":"integer"},"failed_count":{"type":"integer"},"pending_count":{"type":"integer"}}},"webhookUrl":{"type":"string","format":"uri","nullable":true},"outputUrl":{"type":"string","format":"uri","nullable":true}}}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"429":{"description":"Too Many Requests - batch concurrency limit reached (errorCode concurrency_limit_reached).","headers":{"Retry-After":{"description":"Seconds to wait before retrying the batch request.","schema":{"type":"integer","example":20}},"X-Sync-Concurrency-Limit":{"description":"Maximum number of concurrent batches allowed by the organization plan.","schema":{"type":"integer","example":3}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchConcurrencyLimitErrorDto"}}}}},"summary":"Create a new batch job","tags":["Batch"]},"get":{"description":"Fetch batch processing requests from the user's account","operationId":"BatchController_listBatches","parameters":[{"name":"status","required":false,"in":"query","description":"Filter batches by status","schema":{"type":"string"}},{"name":"created_after","required":false,"in":"query","description":"Filter batches created after this datetime","schema":{"type":"string"}},{"name":"created_before","required":false,"in":"query","description":"Filter batches created before this datetime","schema":{"type":"string"}}],"responses":{"200":{"description":"List of batches retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","JOBS_CREATED","PROCESSING","COMPLETED","FAILED"]},"metrics":{"type":"object","properties":{"total_generations":{"type":"integer"},"success_count":{"type":"integer"},"failed_count":{"type":"integer"},"pending_count":{"type":"integer"}}},"webhookUrl":{"type":"string","format":"uri","nullable":true},"outputUrl":{"type":"string"}}}}}}},"401":{"description":"Unauthorized"}},"summary":"List batches","tags":["Batch"]}},"/v2/batch/{id}":{"get":{"description":"Fetch the details, status, and progress of a specific batch","operationId":"BatchController_getBatch","parameters":[{"name":"id","required":true,"in":"path","description":"Batch ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Batch details retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","JOBS_CREATED","PROCESSING","COMPLETED","FAILED"]},"metrics":{"type":"object","properties":{"total_generations":{"type":"integer"},"success_count":{"type":"integer"},"failed_count":{"type":"integer"},"pending_count":{"type":"integer"}}},"webhookUrl":{"type":"string","format":"uri","nullable":true},"outputUrl":{"type":"string"}}}}}},"401":{"description":"Unauthorized"},"404":{"description":"Batch not found"}},"summary":"Get batch details","tags":["Batch"]}},"/v2/health/generations":{"get":{"operationId":"GenerationHealthController_getGenerationHealth","parameters":[],"responses":{"200":{"description":"Generation system is healthy or has insufficient data"},"503":{"description":"Generation system is unhealthy"}},"tags":["Generation Health"]}},"/v2/healthcheck":{"get":{"operationId":"HealthcheckController_getHealthcheck","parameters":[],"responses":{"200":{"description":"Service health status","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object","properties":{"status":{"type":"string","enum":["ok","error"]},"message":{"type":"string"}},"required":["status"]}}}}}},"tags":["Healthcheck"]}},"/v2/projects":{"get":{"description":"Returns your projects plus organization-visible projects. Use a project `id` as `projectId` when creating generations or assets so they appear in Studio under that project.","operationId":"ProjectsController_getAll","parameters":[{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"cursor","required":false,"in":"query","schema":{"type":"string"}},{"name":"searchQuery","required":false,"in":"query","schema":{"default":"","type":"string"}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"updatedAt","type":"string","enum":["updatedAt","name"]}}],"responses":{"200":{"description":"Paginated list of projects","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedProjectsResponseDto"}}}},"422":{"description":"API key has no owner to resolve user-scoped projects"}},"summary":"List projects","tags":["Projects"]},"post":{"description":"Creates a project and returns its `id`. Pass that `id` as `projectId` on `POST /v2/generate` or `POST /v2/assets` to group generations and assets under it in Studio. Supply your own `id` for idempotent creation: re-sending the same `id` returns the existing project (also as 201, indistinguishable from a fresh create) instead of creating a duplicate. On such a replay the other request fields are ignored; the first successful create wins.","operationId":"ProjectsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectDto"}}}},"responses":{"201":{"description":"Project created successfully, or the existing project when the supplied `id` was already created by the same user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDto"}}}},"409":{"description":"The supplied `id` is already in use: it belongs to a different user or organization, or to a deleted project"},"422":{"description":"API key has no owner to assign as the project owner"}},"summary":"Create a project","tags":["Projects"]}},"/v2/projects/{id}/assets":{"post":{"description":"Links an existing organization asset to a project so project-scoped asset reads can find it. Re-sending the same asset revives a detached link and updates only the link timestamp metadata, leaving its original createdAt unchanged.","operationId":"ProjectsController_attachAsset","parameters":[{"name":"id","required":true,"in":"path","description":"Project ID (UUID)","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachProjectAssetDto"}}}},"responses":{"204":{"description":"Asset attached to the project"},"404":{"description":"Project or asset not found"},"422":{"description":"API key has no owner to resolve user-scoped projects"}},"summary":"Attach an asset to a project","tags":["Projects"]}},"/v2/projects/{id}/assets/{assetId}":{"delete":{"description":"Marks the project-asset link detached: the asset stops describing the project draft content (e.g. the projects-list thumbnail) but remains in the project asset library and keeps its access grants. Attaching again revives the link. Idempotent.","operationId":"ProjectsController_detachAsset","parameters":[{"name":"id","required":true,"in":"path","description":"Project ID (UUID)","schema":{"type":"string"}},{"name":"assetId","required":true,"in":"path","description":"Asset ID (UUID)","schema":{"type":"string"}}],"responses":{"204":{"description":"Asset detached from the project"},"404":{"description":"Project not found"},"422":{"description":"API key has no owner to resolve user-scoped projects"}},"summary":"Detach an asset from a project","tags":["Projects"]}},"/v2/projects/{id}":{"get":{"operationId":"ProjectsController_get","parameters":[{"name":"id","required":true,"in":"path","description":"Project ID (UUID)","schema":{"type":"string"}}],"responses":{"200":{"description":"Project details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDto"}}}},"404":{"description":"Project not found"},"422":{"description":"API key has no owner to resolve user-scoped projects"}},"summary":"Get a project by ID","tags":["Projects"]},"patch":{"operationId":"ProjectsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Project ID (UUID)","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectDto"}}}},"responses":{"200":{"description":"Project updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDto"}}}},"404":{"description":"Project not found"},"422":{"description":"API key has no owner to resolve user-scoped projects"}},"summary":"Update a project","tags":["Projects"]},"delete":{"operationId":"ProjectsController_delete","parameters":[{"name":"id","required":true,"in":"path","description":"Project ID (UUID)","schema":{"type":"string"}}],"responses":{"200":{"description":"Project deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}}}}}},"404":{"description":"Project not found"},"422":{"description":"API key has no owner to resolve user-scoped projects"}},"summary":"Delete a project","tags":["Projects"]}},"/v2/errors":{"get":{"description":"Stable machine-readable error codes with human messages and suggested fixes. The `errorCode` on failed generations and on coded 4xx validation responses references these codes. No authentication required.","operationId":"ErrorsCatalogController_getErrorCatalog","parameters":[],"responses":{"200":{"description":"The error catalog","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ErrorCatalogEntryDto"}}}}}},"summary":"List the generation error catalog","tags":["Errors"]}},"/v2/tts":{"post":{"description":"Synthesizes speech from a script and returns a hosted audio URL. `voiceId` accepts an ElevenLabs voice id (discover via `GET /v2/voices`) or the id of a voice cloned with `POST /v2/voices`. The returned `url` can be reused across generations as an audio input.","operationId":"TtsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTtsDto"}}}},"responses":{"200":{"description":"TTS audio generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TtsGenerationResponseDto"}}}},"402":{"description":"Free tier limit reached"},"422":{"description":"Voice not found"}},"summary":"Generate text-to-speech audio","tags":["Text-to-Speech"]}},"/v2/voices":{"get":{"description":"Returns premade ElevenLabs voices plus voices cloned by your organization. Use `id` in `POST /v2/tts` and generation text inputs - it always works for both premade and cloned voices.","operationId":"VoicesController_getVoices","parameters":[{"name":"provider","required":false,"in":"query","schema":{"type":"string","enum":["elevenlabs"]}}],"responses":{"200":{"description":"List of voices","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VoiceDto"}}}}}},"summary":"List available voices","tags":["Voices"]},"post":{"description":"Creates a custom voice and returns its `id` for use in `POST /v2/tts` and generation text inputs. Provide either a Sync asset id (`assetId`) or a Sync-hosted `url` - upload local files via `POST /v2/assets/upload` first. Video sources have their audio track extracted automatically (first 2 minutes). Clone slots are limited per plan.","operationId":"VoicesController_cloneVoice","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVoiceDto"}}}},"responses":{"201":{"description":"Voice cloned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClonedVoiceDto"}}}},"400":{"description":"Invalid or too-short voice sample"},"403":{"description":"Voice clone limit reached for your plan"},"409":{"description":"A voice with this name already exists"},"422":{"description":"Asset not found, unsupported asset type, or no extractable audio track"}},"summary":"Clone a voice from an audio or video sample","tags":["Voices"]}},"/v2/voices/{id}":{"get":{"description":"Returns a single voice by the same `id` values GET /v2/voices exposes - premade ElevenLabs voice ids or the UUID of a voice cloned by your organization.","operationId":"VoicesController_getVoice","parameters":[{"name":"id","required":true,"in":"path","description":"Voice ID (premade provider id or cloned voice UUID)","schema":{"type":"string"}},{"name":"provider","required":false,"in":"query","schema":{"type":"string","enum":["elevenlabs"]}}],"responses":{"200":{"description":"Voice details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceDto"}}}},"404":{"description":"Voice not found"}},"summary":"Get a voice by ID","tags":["Voices"]},"delete":{"description":"Deletes a voice previously cloned by your organization, freeing a clone slot. Premade voices cannot be deleted.","operationId":"VoicesController_deleteVoice","parameters":[{"name":"id","required":true,"in":"path","description":"Cloned voice ID (UUID)","schema":{"type":"string"}}],"responses":{"200":{"description":"Voice deleted successfully","content":{"application/json":{"schema":{"type":"boolean","example":true}}}},"404":{"description":"Voice not found"}},"summary":"Delete a cloned voice","tags":["Voices"]}}},"info":{"title":"sync.api-v2","description":"a unified API to edit humans in any video in any way. powered by sync.labs","version":"1.0","contact":{}},"tags":[],"servers":[{"url":"https://api.sync.so","description":"Production"},{"url":"http://localhost:3001","description":"Local development. For generation testing, expose the API with a tunnel and configure API_BASE_URL so processing callbacks can reach your machine."}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"PaginatedAssetsResponseDto":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"name":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"size":{"type":"number","nullable":true},"format":{"type":"string","nullable":true},"type":{"type":"string","enum":["AUDIO","VIDEO","IMAGE"]},"inputType":{"type":"string","enum":["UPLOAD","URL","RECORD","TTS","EXTRACT","DUB","DUB_SOURCE","PLATFORM_IMPORT","PLUGIN_PREMIERE_FILE","PLUGIN_PREMIERE_TIMELINE_SELECTION","PLUGIN_RESOLVE_FILE","PLUGIN_RESOLVE_TIMELINE_SELECTION",null],"nullable":true},"durationSeconds":{"type":"number","nullable":true},"thumbnailUrl":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["USER","ORGANIZATION"]},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"apiKeyId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"width":{"type":"number","nullable":true},"height":{"type":"number","nullable":true},"proxyPath":{"type":"string","nullable":true},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true}},"required":["id","createdAt","updatedAt","deletedAt","name","url","size","format","type","inputType","durationSeconds","thumbnailUrl","visibility","userId","apiKeyId","organizationId","width","height"]}},"nextCursor":{"type":"string"},"totalCount":{"type":"number"}},"required":["items"]},"CreateAssetDto":{"type":"object","properties":{"name":{"type":"string"},"visibility":{"type":"string","default":"USER","enum":["USER","ORGANIZATION"]},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"url":{"type":"string","format":"uri"},"type":{"type":"string","enum":["AUDIO","VIDEO","IMAGE"]},"inputType":{"type":"string","enum":["UPLOAD","URL","RECORD","TTS","EXTRACT","DUB","DUB_SOURCE","PLATFORM_IMPORT","PLUGIN_PREMIERE_FILE","PLUGIN_PREMIERE_TIMELINE_SELECTION","PLUGIN_RESOLVE_FILE","PLUGIN_RESOLVE_TIMELINE_SELECTION"]},"thumbnailUrl":{"type":"string","format":"uri","nullable":true},"size":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"format":{"type":"string"},"durationSeconds":{"type":"number","exclusiveMinimum":true,"minimum":0},"width":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"height":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0}},"required":["url","type"]},"AssetDto":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"name":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"size":{"type":"number","nullable":true},"format":{"type":"string","nullable":true},"type":{"type":"string","enum":["AUDIO","VIDEO","IMAGE"]},"inputType":{"type":"string","enum":["UPLOAD","URL","RECORD","TTS","EXTRACT","DUB","DUB_SOURCE","PLATFORM_IMPORT","PLUGIN_PREMIERE_FILE","PLUGIN_PREMIERE_TIMELINE_SELECTION","PLUGIN_RESOLVE_FILE","PLUGIN_RESOLVE_TIMELINE_SELECTION",null],"nullable":true},"durationSeconds":{"type":"number","nullable":true},"thumbnailUrl":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["USER","ORGANIZATION"]},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"apiKeyId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"width":{"type":"number","nullable":true},"height":{"type":"number","nullable":true},"proxyPath":{"type":"string","nullable":true},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true}},"required":["id","createdAt","updatedAt","deletedAt","name","url","size","format","type","inputType","durationSeconds","thumbnailUrl","visibility","userId","apiKeyId","organizationId","width","height"]},"CreateAssetUploadDto":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","pattern":"^(audio|video|image)\\/[\\w.+-]+$"},"size":{"type":"integer","exclusiveMinimum":true,"maximum":5368709120,"minimum":0}},"required":["fileName","contentType","size"]},"AssetUploadResponseDto":{"type":"object","properties":{"uploadUrl":{"type":"string","format":"uri"},"url":{"type":"string","format":"uri"},"expiresIn":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["uploadUrl","url","expiresIn"]},"UpdateAssetDto":{"type":"object","properties":{"name":{"type":"string","minLength":1},"visibility":{"type":"string","enum":["USER","ORGANIZATION"]},"durationSeconds":{"type":"number","exclusiveMinimum":true,"minimum":0},"size":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"format":{"type":"string","minLength":1},"width":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0},"height":{"type":"integer","exclusiveMinimum":true,"maximum":9007199254740991,"minimum":0}}},"WebhookSecretResponseDto":{"type":"object","properties":{"secret":{"type":"string"}},"required":["secret"]},"CreateGenerationDto":{"type":"object","properties":{"model":{"type":"string","description":"name of the model to use for generation.","enum":["lipsync-2","lipsync-1.9.0-beta","lipsync-2-pro","lipsync-2-mini","sync-3","react-1","appearence-1"],"example":"lipsync-1.9.0-beta"},"input":{"type":"array","description":"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.","items":{"oneOf":[{"$ref":"#/components/schemas/VideoInputItem","title":"Video Input"},{"$ref":"#/components/schemas/ImageInputItem","title":"Image Input"},{"$ref":"#/components/schemas/AudioInputItem","title":"Audio Input"},{"$ref":"#/components/schemas/TextInputItem","title":"Text Input"}]},"example":[{"type":"video","url":"https://assets.sync.so/videos/samples/influencer.mp4"},{"type":"audio","url":"https://assets.sync.so/audios/samples/re-record.mp3"}]},"options":{"description":"additional options available for generation.","allOf":[{"$ref":"#/components/schemas/GenerationOptions"}]},"segments":{"description":"one or more segments definition to apply edits to","type":"array","items":{"$ref":"#/components/schemas/GenerationSegmentItem"}},"projectId":{"type":"string","description":"Attach this generation to a project (from POST /v2/projects) so it appears in Studio under that project.","example":"550e8400-e29b-41d4-a716-446655440000"},"webhookUrl":{"type":"string","description":"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.","example":"https://your-server.com/webhook"},"outputFileName":{"type":"string","description":"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\".","example":"generated_video.mp4"},"dubParams":{"description":"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.","allOf":[{"$ref":"#/components/schemas/DubDto"}]}},"required":["model","input"]},"Generation":{"type":"object","properties":{"id":{"type":"string","description":"A unique identifier for the generation."},"createdAt":{"format":"date-time","type":"string","description":"The date and time the generation was created."},"status":{"enum":["PENDING","PROCESSING","COMPLETED","FAILED","REJECTED"],"type":"string","description":"The status of the generation."},"model":{"type":"string","description":"The name of the model used for generation."},"projectId":{"type":"string","nullable":true,"description":"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."},"input":{"type":"array","description":"An array of input objects containing type and URL.","items":{"type":"object","properties":{"type":{"type":"string"},"url":{"type":"string"}}}},"segments":{"type":"array","description":"The segments definition for the generation.","items":{"type":"object"}},"webhookUrl":{"type":"string","nullable":true,"description":"The URL to the webhook endpoint."},"options":{"type":"object","description":"Options for the generation."},"outputUrl":{"type":"string","nullable":true,"description":"The URL of the output media."},"outputDuration":{"type":"number","nullable":true,"description":"The duration of the output media."},"segmentOutputUrl":{"type":"string","nullable":true,"description":"The URL of the segment output media."},"outputFileName":{"type":"string","nullable":true,"description":"The sanitized filename applied to the output media. Non-alphanumeric characters (except dashes and underscores) are stripped and spaces become underscores, so the value here is the canonical name used for the downloaded file - it may differ from what was submitted. Null when no name was provided."},"synthesizedAudioUrl":{"type":"string","description":"The URL of the audio synthesized from a text input. Only present for generations created with a TTS text input; reuse it as an audio input to keep the same take across generations."},"error":{"type":"string","description":"The error message if the generation failed."},"errorCode":{"type":"string","nullable":true,"description":"Stable machine-readable error code if the generation failed. The full catalog with messages and suggested fixes is served at GET /v2/errors.","example":"generation_input_video_inaccessible"},"progress_percent":{"type":"number","description":"The progress percentage of the generation (0-100). Only included when include=progress.","minimum":0,"maximum":100}},"required":["id","createdAt","status","model","input","segments"]},"GenerationError":{"type":"object","properties":{"message":{"description":"A message describing the error.","example":"An error occurred during generation","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"error":{"type":"string","description":"The type of error that occurred."},"statusCode":{"type":"number","description":"The HTTP status code."},"errorCode":{"type":"string","description":"Stable machine-readable error code. References the catalog at GET /v2/errors.","example":"concurrency_limit_reached"},"suggestion":{"type":"string","description":"Actionable fix for this error code, served verbatim from the catalog at GET /v2/errors so an agent can self-correct without parsing the message.","example":"Use a model from GET /v2/models and retry."},"docsUrl":{"type":"string","description":"Link to documentation explaining this error and how to fix it."},"requestId":{"type":"string","description":"Request id for correlating an unexpected (500) failure with our logs when contacting support."},"activeGenerations":{"type":"number","description":"Concurrency 429 only: number of generations currently in progress."},"concurrencyLimit":{"type":"number","description":"Concurrency 429 only: your plan’s concurrent generation limit."},"retryAfterSeconds":{"type":"number","description":"For 429/503/504: suggested seconds to wait before retrying (also sent as the Retry-After header)."},"upstreamOperation":{"type":"string","description":"For upstream validation failures: the bounded dependency operation that timed out or was unavailable.","example":"media_duration_probe"},"upgradeUrl":{"type":"string","description":"Concurrency 429 only: link to upgrade for higher limits."}},"required":["message","error","statusCode"]},"EstimateCostDto":{"type":"object","properties":{"model":{"type":"string","minLength":1},"duration":{"type":"number","minimum":0},"fps":{"type":"number","exclusiveMinimum":true,"minimum":0},"reasoningEnabled":{"anyOf":[{"type":"boolean"},{"type":"string"}]}},"required":["model","duration"]},"EstimateCostResponseDto":{"type":"object","properties":{"estimatedFrameCount":{"type":"number"},"estimatedGenerationCost":{"type":"number"},"estimatedCredits":{"type":"number","nullable":true}},"required":["estimatedFrameCount","estimatedGenerationCost","estimatedCredits"]},"ModelDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique model identifier"},"name":{"type":"string","description":"Model name (e.g., lipsync-2)"},"type":{"type":"string","description":"Model type"},"version":{"type":"string","description":"Model version"},"description":{"type":"string","nullable":true,"description":"Model description"},"features":{"description":"Marketing feature tags for the model","type":"array","items":{"type":"string"}},"deprecatedAt":{"type":"string","nullable":true,"description":"Deprecation timestamp if deprecated"}},"required":["id","name","type","version","description","features","deprecatedAt"]},"GenerationDto":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"apiKeyId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"finishedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"status":{"type":"string","enum":["PENDING","PROCESSING","COMPLETED","FAILED","REJECTED"]},"model":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string"},"version":{"type":"string"},"features":{"default":[],"type":"array","items":{"type":"string"}},"deprecatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true}},"required":["id","name","description","type","version","deprecatedAt"]},"modelName":{"type":"string"},"inputs":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"assetId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"type":{"type":"string","enum":["video","image","audio","text"]},"refId":{"type":"string"},"generatedBy":{"type":"string","enum":["tts"]},"segments_secs":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"segments_frames":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"trim_secs":{"type":"array","items":{"type":"number"}},"provider":{"type":"object","properties":{"name":{"type":"string"},"script":{"type":"string"},"voiceId":{"type":"string"},"stability":{"type":"number","minimum":0,"maximum":1},"similarityBoost":{"type":"number","minimum":0,"maximum":1}},"required":["name","script","voiceId"]}},"required":["type"]}},"webhookUrl":{"type":"string","nullable":true},"thumbnailUrl":{"type":"string","nullable":true},"frameCount":{"type":"number","nullable":true},"options":{"type":"object","properties":{"prompt":{"anyOf":[{"type":"string","enum":["happy","sad","angry","disgusted","surprised","neutral"]},{"type":"string"}]},"prompt_image_uris":{"type":"array","items":{"type":"string"}},"i2v_prompt":{"type":"string"},"system_prompt":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1,"nullable":true},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"model_mode":{"anyOf":[{"type":"string"},{"type":"string"}]},"active_speaker_detection":{"anyOf":[{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},{"type":"boolean"}]},"face_boxes_url":{"type":"string"},"occlusion_detection_enabled":{"type":"boolean"},"reasoning_enabled":{"type":"boolean"},"refinement_enabled":{"type":"boolean"},"blending_mode":{"type":"string","enum":["default","advanced","disabled"]},"output_file_name":{"type":"string"},"output_bucket_name":{"type":"string"},"output_bucket_path":{"type":"string"},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"mask_inner_box":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"nullable":true},"audio_guidance_scale":{"type":"number","nullable":true},"num_steps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"nullable":true},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"},"disable_scene_detection":{"type":"boolean"},"extra_services_options":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/GenerationDto__schema0"}},"original_audio_url":{"type":"string"},"occlusion_prompt":{"type":"string"},"rotate":{"type":"number","minimum":0,"maximum":360},"active_speaker":{"type":"boolean"},"speedup":{"type":"number","minimum":1,"maximum":4,"nullable":true},"output_format":{"type":"string","enum":["mp4","mov"]},"fps":{"type":"number","nullable":true},"output_resolution":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"},"nullable":true},"pads":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"number","minimum":-8000,"maximum":8000}},"gb":{"type":"number","nullable":true},"mb":{"type":"number","nullable":true},"quality":{"type":"string","nullable":true},"img_size":{"type":"array","items":{"type":"number"},"nullable":true},"pickle_mode":{"type":"string","nullable":true},"cf_batch_size":{"type":"number","nullable":true},"resize_factor":{"type":"number","nullable":true},"expressiveness":{"type":"number","nullable":true},"inp_batch_size":{"type":"number","nullable":true},"fidelity_weight":{"type":"number","nullable":true},"wav2lip_batch_size":{"type":"number","nullable":true},"face_det_batch_size":{"type":"number","nullable":true}}},"segments":{"type":"array","items":{"type":"object","properties":{"startTime":{"type":"number"},"endTime":{"type":"number"},"startFrame":{"type":"number"},"endFrame":{"type":"number"},"audioInput":{"type":"object","properties":{"refId":{"type":"string"},"startTime":{"type":"number"},"endTime":{"type":"number"}},"required":["refId"]},"optionsOverride":{"type":"object","properties":{"active_speaker_detection":{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"occlusion_detection_enabled":{"type":"boolean"},"temperature":{"type":"number","minimum":0,"maximum":1},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"}}}}},"nullable":true},"outputMediaUrl":{"type":"string","nullable":true},"segmentOutputMediaUrl":{"type":"string","nullable":true},"segmentOutputBucketPath":{"type":"string","nullable":true},"creatorName":{"type":"string","nullable":true},"outputMediaLength":{"type":"number","nullable":true},"potentialError":{"anyOf":[{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"},"errorCode":{"type":"string"},"docsLink":{"type":"string","format":"uri"}},"required":["message"]},{"type":"null"}],"nullable":true},"isPublic":{"type":"boolean","nullable":true},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"outputFileName":{"type":"string","nullable":true},"outputExtension":{"type":"string","nullable":true}},"required":["id","organizationId","userId","apiKeyId","createdAt","updatedAt","startedAt","finishedAt","status","model","modelName","inputs","webhookUrl","thumbnailUrl","frameCount","options","outputMediaUrl","segmentOutputMediaUrl","segmentOutputBucketPath","outputMediaLength","potentialError","isPublic","deletedAt","projectId"]},"CreateBatchDto":{"type":"object","properties":{"input":{"type":"string","description":"JSONL file for batch generation. Send it in multipart field `input` (or `file` alias). Each non-empty line must contain `request_id`, `endpoint` exactly `\"/v2/generate\"`, and `payload` as a CreateGenerationDto object. Batch creation requires the Scale plan, at least 20 records, at most 500 records by default, no duplicate request_id values, and a file size no larger than 5 MB.","format":"binary"},"webhook_url":{"type":"string","description":"Webhook server URL to notify when the batch reaches a terminal status. Sync sends a POST request with a batch payload and a Sync-Signature header (`t=<unix>,v1=<hmac_sha256>`) signed with the organization webhook secret.","example":"https://example.com/webhook"},"dry_run":{"type":"boolean","default":false,"description":"When true, validates the JSONL file and returns `{ \"status\": \"VALIDATED\" }` without creating a batch."}},"required":["input"]},"BatchConcurrencyLimitErrorDto":{"type":"object","properties":{"statusCode":{"enum":[429],"type":"number","example":429},"error":{"type":"string","enum":["Too Many Requests"],"example":"Too Many Requests"},"errorCode":{"type":"string","enum":["concurrency_limit_reached"],"example":"concurrency_limit_reached","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable explanation of the active batch limit.","example":"Batch concurrency limit reached. You have 3 active batches and your plan allows 3. Please wait for existing batches to complete or upgrade your plan for higher limits."},"activeBatches":{"type":"number","description":"Number of active batches in the organization.","example":3,"minimum":0},"concurrencyLimit":{"type":"number","description":"Maximum number of concurrent batches allowed by the plan.","example":3,"minimum":1},"retryAfterSeconds":{"type":"number","description":"Suggested seconds to wait before retrying. Also sent in the Retry-After response header.","example":20,"minimum":1}},"required":["statusCode","error","errorCode","message","activeBatches","concurrencyLimit","retryAfterSeconds"]},"PaginatedProjectsResponseDto":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["USER","ORGANIZATION"]},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"mode":{"type":"string","enum":["CREATOR","DEVELOPER"]},"defaultWorkflow":{"type":"string","enum":["lipsync","translate_and_dub","change_appearance","image_to_video","edit_dialogue","assistant","timeline",null],"nullable":true},"generations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"apiKeyId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"finishedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"status":{"type":"string","enum":["PENDING","PROCESSING","COMPLETED","FAILED","REJECTED"]},"model":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string"},"version":{"type":"string"},"features":{"default":[],"type":"array","items":{"type":"string"}},"deprecatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true}},"required":["id","name","description","type","version","deprecatedAt"]},"modelName":{"type":"string"},"inputs":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"assetId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"type":{"type":"string","enum":["video","image","audio","text"]},"refId":{"type":"string"},"generatedBy":{"type":"string","enum":["tts"]},"segments_secs":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"segments_frames":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"trim_secs":{"type":"array","items":{"type":"number"}},"provider":{"type":"object","properties":{"name":{"type":"string"},"script":{"type":"string"},"voiceId":{"type":"string"},"stability":{"type":"number","minimum":0,"maximum":1},"similarityBoost":{"type":"number","minimum":0,"maximum":1}},"required":["name","script","voiceId"]}},"required":["type"]}},"webhookUrl":{"type":"string","nullable":true},"thumbnailUrl":{"type":"string","nullable":true},"frameCount":{"type":"number","nullable":true},"options":{"type":"object","properties":{"prompt":{"anyOf":[{"type":"string","enum":["happy","sad","angry","disgusted","surprised","neutral"]},{"type":"string"}]},"prompt_image_uris":{"type":"array","items":{"type":"string"}},"i2v_prompt":{"type":"string"},"system_prompt":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1,"nullable":true},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"model_mode":{"anyOf":[{"type":"string"},{"type":"string"}]},"active_speaker_detection":{"anyOf":[{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},{"type":"boolean"}]},"face_boxes_url":{"type":"string"},"occlusion_detection_enabled":{"type":"boolean"},"reasoning_enabled":{"type":"boolean"},"refinement_enabled":{"type":"boolean"},"blending_mode":{"type":"string","enum":["default","advanced","disabled"]},"output_file_name":{"type":"string"},"output_bucket_name":{"type":"string"},"output_bucket_path":{"type":"string"},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"mask_inner_box":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"nullable":true},"audio_guidance_scale":{"type":"number","nullable":true},"num_steps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"nullable":true},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"},"disable_scene_detection":{"type":"boolean"},"extra_services_options":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PaginatedProjectsResponseDto__schema0"}},"original_audio_url":{"type":"string"},"occlusion_prompt":{"type":"string"},"rotate":{"type":"number","minimum":0,"maximum":360},"active_speaker":{"type":"boolean"},"speedup":{"type":"number","minimum":1,"maximum":4,"nullable":true},"output_format":{"type":"string","enum":["mp4","mov"]},"fps":{"type":"number","nullable":true},"output_resolution":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"},"nullable":true},"pads":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"number","minimum":-8000,"maximum":8000}},"gb":{"type":"number","nullable":true},"mb":{"type":"number","nullable":true},"quality":{"type":"string","nullable":true},"img_size":{"type":"array","items":{"type":"number"},"nullable":true},"pickle_mode":{"type":"string","nullable":true},"cf_batch_size":{"type":"number","nullable":true},"resize_factor":{"type":"number","nullable":true},"expressiveness":{"type":"number","nullable":true},"inp_batch_size":{"type":"number","nullable":true},"fidelity_weight":{"type":"number","nullable":true},"wav2lip_batch_size":{"type":"number","nullable":true},"face_det_batch_size":{"type":"number","nullable":true}}},"segments":{"type":"array","items":{"type":"object","properties":{"startTime":{"type":"number"},"endTime":{"type":"number"},"startFrame":{"type":"number"},"endFrame":{"type":"number"},"audioInput":{"type":"object","properties":{"refId":{"type":"string"},"startTime":{"type":"number"},"endTime":{"type":"number"}},"required":["refId"]},"optionsOverride":{"type":"object","properties":{"active_speaker_detection":{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"occlusion_detection_enabled":{"type":"boolean"},"temperature":{"type":"number","minimum":0,"maximum":1},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"}}}}},"nullable":true},"outputMediaUrl":{"type":"string","nullable":true},"segmentOutputMediaUrl":{"type":"string","nullable":true},"segmentOutputBucketPath":{"type":"string","nullable":true},"creatorName":{"type":"string","nullable":true},"outputMediaLength":{"type":"number","nullable":true},"potentialError":{"anyOf":[{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"},"errorCode":{"type":"string"},"docsLink":{"type":"string","format":"uri"}},"required":["message"]},{"type":"null"}],"nullable":true},"isPublic":{"type":"boolean","nullable":true},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"outputFileName":{"type":"string","nullable":true},"outputExtension":{"type":"string","nullable":true}},"required":["id","organizationId","userId","apiKeyId","createdAt","updatedAt","startedAt","finishedAt","status","model","modelName","inputs","webhookUrl","thumbnailUrl","frameCount","options","outputMediaUrl","segmentOutputMediaUrl","segmentOutputBucketPath","outputMediaLength","potentialError","isPublic","deletedAt","projectId"]}},"generationPresets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"model":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string"},"version":{"type":"string"},"features":{"default":[],"type":"array","items":{"type":"string"}},"deprecatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true}},"required":["id","name","description","type","version","deprecatedAt"]},"modelName":{"type":"string"},"options":{"type":"object","properties":{"prompt":{"anyOf":[{"type":"string","enum":["happy","sad","angry","disgusted","surprised","neutral"]},{"type":"string"}]},"prompt_image_uris":{"type":"array","items":{"type":"string"}},"i2v_prompt":{"type":"string"},"system_prompt":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1,"nullable":true},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"model_mode":{"anyOf":[{"type":"string"},{"type":"string"}]},"active_speaker_detection":{"anyOf":[{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},{"type":"boolean"}]},"face_boxes_url":{"type":"string"},"occlusion_detection_enabled":{"type":"boolean"},"reasoning_enabled":{"type":"boolean"},"refinement_enabled":{"type":"boolean"},"blending_mode":{"type":"string","enum":["default","advanced","disabled"]},"output_file_name":{"type":"string"},"output_bucket_name":{"type":"string"},"output_bucket_path":{"type":"string"},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"mask_inner_box":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"nullable":true},"audio_guidance_scale":{"type":"number","nullable":true},"num_steps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"nullable":true},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"},"disable_scene_detection":{"type":"boolean"},"extra_services_options":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PaginatedProjectsResponseDto__schema0"}},"original_audio_url":{"type":"string"},"occlusion_prompt":{"type":"string"},"rotate":{"type":"number","minimum":0,"maximum":360},"active_speaker":{"type":"boolean"},"speedup":{"type":"number","minimum":1,"maximum":4,"nullable":true},"output_format":{"type":"string","enum":["mp4","mov"]},"fps":{"type":"number","nullable":true},"output_resolution":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"},"nullable":true},"pads":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"number","minimum":-8000,"maximum":8000}},"gb":{"type":"number","nullable":true},"mb":{"type":"number","nullable":true},"quality":{"type":"string","nullable":true},"img_size":{"type":"array","items":{"type":"number"},"nullable":true},"pickle_mode":{"type":"string","nullable":true},"cf_batch_size":{"type":"number","nullable":true},"resize_factor":{"type":"number","nullable":true},"expressiveness":{"type":"number","nullable":true},"inp_batch_size":{"type":"number","nullable":true},"fidelity_weight":{"type":"number","nullable":true},"wav2lip_batch_size":{"type":"number","nullable":true},"face_det_batch_size":{"type":"number","nullable":true}}}},"required":["id","name","description","model","modelName","options"]}},"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"assetId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"asset":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"name":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"size":{"type":"number","nullable":true},"format":{"type":"string","nullable":true},"type":{"type":"string","enum":["AUDIO","VIDEO","IMAGE"]},"inputType":{"type":"string","enum":["UPLOAD","URL","RECORD","TTS","EXTRACT","DUB","DUB_SOURCE","PLATFORM_IMPORT","PLUGIN_PREMIERE_FILE","PLUGIN_PREMIERE_TIMELINE_SELECTION","PLUGIN_RESOLVE_FILE","PLUGIN_RESOLVE_TIMELINE_SELECTION",null],"nullable":true},"durationSeconds":{"type":"number","nullable":true},"thumbnailUrl":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["USER","ORGANIZATION"]},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"apiKeyId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"width":{"type":"number","nullable":true},"height":{"type":"number","nullable":true},"proxyPath":{"type":"string","nullable":true},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true}},"required":["id","createdAt","updatedAt","deletedAt","name","url","size","format","type","inputType","durationSeconds","thumbnailUrl","visibility","userId","apiKeyId","organizationId","width","height"]}},"required":["id","projectId","assetId","asset"]}},"generationsCount":{"type":"number"},"completedGenerationsCount":{"type":"number"},"lastGenerationSource":{"type":"string","nullable":true},"latestAssetThumbnailUrl":{"type":"string","description":"Preview for the latest uploaded visual asset: the thumbnail for videos, the image itself for images.","nullable":true},"latestAssetAttachedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"When the latest visual draft asset was first attached to the project, so clients can rank it against the latest generation by recency.","nullable":true}},"required":["id","createdAt","updatedAt","organizationId","userId","name","description","visibility","deletedAt","mode","generations","generationPresets","assets","generationsCount","completedGenerationsCount","lastGenerationSource","latestAssetThumbnailUrl","latestAssetAttachedAt"]}},"nextCursor":{"type":"string"}},"required":["items"]},"CreateProjectDto":{"type":"object","properties":{"id":{"type":"string","description":"Optional client-supplied project id (UUID) for idempotent creation. Re-sending the same id returns the existing project instead of creating a duplicate; the other request fields are ignored on such a replay. If the id is already used by a different user or organization, or by a deleted project, the request fails with 409.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"description":{"type":"string"},"visibility":{"type":"string","description":"Who can see the project. Defaults to USER (visible only to the owner).","enum":["USER","ORGANIZATION"]},"mode":{"type":"string","description":"Project mode. Defaults to CREATOR.","enum":["CREATOR","DEVELOPER"]},"defaultWorkflow":{"type":"string","description":"Default top-level creator workflow for this project.","enum":["lipsync","translate_and_dub","change_appearance","image_to_video","edit_dialogue","assistant","timeline"]}},"required":["name"]},"ProjectDto":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["USER","ORGANIZATION"]},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"mode":{"type":"string","enum":["CREATOR","DEVELOPER"]},"defaultWorkflow":{"type":"string","enum":["lipsync","translate_and_dub","change_appearance","image_to_video","edit_dialogue","assistant","timeline",null],"nullable":true},"generations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"organizationId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"userId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"apiKeyId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"finishedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"status":{"type":"string","enum":["PENDING","PROCESSING","COMPLETED","FAILED","REJECTED"]},"model":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string"},"version":{"type":"string"},"features":{"default":[],"type":"array","items":{"type":"string"}},"deprecatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true}},"required":["id","name","description","type","version","deprecatedAt"]},"modelName":{"type":"string"},"inputs":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"assetId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"type":{"type":"string","enum":["video","image","audio","text"]},"refId":{"type":"string"},"generatedBy":{"type":"string","enum":["tts"]},"segments_secs":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"segments_frames":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"trim_secs":{"type":"array","items":{"type":"number"}},"provider":{"type":"object","properties":{"name":{"type":"string"},"script":{"type":"string"},"voiceId":{"type":"string"},"stability":{"type":"number","minimum":0,"maximum":1},"similarityBoost":{"type":"number","minimum":0,"maximum":1}},"required":["name","script","voiceId"]}},"required":["type"]}},"webhookUrl":{"type":"string","nullable":true},"thumbnailUrl":{"type":"string","nullable":true},"frameCount":{"type":"number","nullable":true},"options":{"type":"object","properties":{"prompt":{"anyOf":[{"type":"string","enum":["happy","sad","angry","disgusted","surprised","neutral"]},{"type":"string"}]},"prompt_image_uris":{"type":"array","items":{"type":"string"}},"i2v_prompt":{"type":"string"},"system_prompt":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1,"nullable":true},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"model_mode":{"anyOf":[{"type":"string"},{"type":"string"}]},"active_speaker_detection":{"anyOf":[{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},{"type":"boolean"}]},"face_boxes_url":{"type":"string"},"occlusion_detection_enabled":{"type":"boolean"},"reasoning_enabled":{"type":"boolean"},"refinement_enabled":{"type":"boolean"},"blending_mode":{"type":"string","enum":["default","advanced","disabled"]},"output_file_name":{"type":"string"},"output_bucket_name":{"type":"string"},"output_bucket_path":{"type":"string"},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"mask_inner_box":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"nullable":true},"audio_guidance_scale":{"type":"number","nullable":true},"num_steps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"nullable":true},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"},"disable_scene_detection":{"type":"boolean"},"extra_services_options":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProjectDto__schema0"}},"original_audio_url":{"type":"string"},"occlusion_prompt":{"type":"string"},"rotate":{"type":"number","minimum":0,"maximum":360},"active_speaker":{"type":"boolean"},"speedup":{"type":"number","minimum":1,"maximum":4,"nullable":true},"output_format":{"type":"string","enum":["mp4","mov"]},"fps":{"type":"number","nullable":true},"output_resolution":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"},"nullable":true},"pads":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"number","minimum":-8000,"maximum":8000}},"gb":{"type":"number","nullable":true},"mb":{"type":"number","nullable":true},"quality":{"type":"string","nullable":true},"img_size":{"type":"array","items":{"type":"number"},"nullable":true},"pickle_mode":{"type":"string","nullable":true},"cf_batch_size":{"type":"number","nullable":true},"resize_factor":{"type":"number","nullable":true},"expressiveness":{"type":"number","nullable":true},"inp_batch_size":{"type":"number","nullable":true},"fidelity_weight":{"type":"number","nullable":true},"wav2lip_batch_size":{"type":"number","nullable":true},"face_det_batch_size":{"type":"number","nullable":true}}},"segments":{"type":"array","items":{"type":"object","properties":{"startTime":{"type":"number"},"endTime":{"type":"number"},"startFrame":{"type":"number"},"endFrame":{"type":"number"},"audioInput":{"type":"object","properties":{"refId":{"type":"string"},"startTime":{"type":"number"},"endTime":{"type":"number"}},"required":["refId"]},"optionsOverride":{"type":"object","properties":{"active_speaker_detection":{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"occlusion_detection_enabled":{"type":"boolean"},"temperature":{"type":"number","minimum":0,"maximum":1},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"}}}}},"nullable":true},"outputMediaUrl":{"type":"string","nullable":true},"segmentOutputMediaUrl":{"type":"string","nullable":true},"segmentOutputBucketPath":{"type":"string","nullable":true},"creatorName":{"type":"string","nullable":true},"outputMediaLength":{"type":"number","nullable":true},"potentialError":{"anyOf":[{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"},"errorCode":{"type":"string"},"docsLink":{"type":"string","format":"uri"}},"required":["message"]},{"type":"null"}],"nullable":true},"isPublic":{"type":"boolean","nullable":true},"deletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"projectId":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","nullable":true},"outputFileName":{"type":"string","nullable":true},"outputExtension":{"type":"string","nullable":true}},"required":["id","organizationId","userId","apiKeyId","createdAt","updatedAt","startedAt","finishedAt","status","model","modelName","inputs","webhookUrl","thumbnailUrl","frameCount","options","outputMediaUrl","segmentOutputMediaUrl","segmentOutputBucketPath","outputMediaLength","potentialError","isPublic","deletedAt","projectId"]}},"generationPresets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"model":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string"},"version":{"type":"string"},"features":{"default":[],"type":"array","items":{"type":"string"}},"deprecatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true}},"required":["id","name","description","type","version","deprecatedAt"]},"modelName":{"type":"string"},"options":{"type":"object","properties":{"prompt":{"anyOf":[{"type":"string","enum":["happy","sad","angry","disgusted","surprised","neutral"]},{"type":"string"}]},"prompt_image_uris":{"type":"array","items":{"type":"string"}},"i2v_prompt":{"type":"string"},"system_prompt":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1,"nullable":true},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"]},"model_mode":{"anyOf":[{"type":"string"},{"type":"string"}]},"active_speaker_detection":{"anyOf":[{"type":"object","properties":{"auto_detect":{"default":false,"type":"boolean"},"use_v2":{"type":"boolean"},"v3":{"type":"boolean"},"frame_number":{"type":"number"},"coordinates":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"}},"bounding_boxes":{"type":"array","items":{"type":"array","items":{"type":"number"},"nullable":true}},"bounding_boxes_url":{"type":"string"},"face_image":{"type":"string"}}},{"type":"boolean"}]},"face_boxes_url":{"type":"string"},"occlusion_detection_enabled":{"type":"boolean"},"reasoning_enabled":{"type":"boolean"},"refinement_enabled":{"type":"boolean"},"blending_mode":{"type":"string","enum":["default","advanced","disabled"]},"output_file_name":{"type":"string"},"output_bucket_name":{"type":"string"},"output_bucket_path":{"type":"string"},"disable_blending":{"type":"boolean"},"pad_percent":{"type":"number"},"mask_uri":{"type":"string"},"mask_inner_box":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"nullable":true},"audio_guidance_scale":{"type":"number","nullable":true},"num_steps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"nullable":true},"use_retinaface":{"type":"boolean"},"use_insightface":{"type":"boolean"},"disable_scene_detection":{"type":"boolean"},"extra_services_options":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProjectDto__schema0"}},"original_audio_url":{"type":"string"},"occlusion_prompt":{"type":"string"},"rotate":{"type":"number","minimum":0,"maximum":360},"active_speaker":{"type":"boolean"},"speedup":{"type":"number","minimum":1,"maximum":4,"nullable":true},"output_format":{"type":"string","enum":["mp4","mov"]},"fps":{"type":"number","nullable":true},"output_resolution":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"number"},"nullable":true},"pads":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"number","minimum":-8000,"maximum":8000}},"gb":{"type":"number","nullable":true},"mb":{"type":"number","nullable":true},"quality":{"type":"string","nullable":true},"img_size":{"type":"array","items":{"type":"number"},"nullable":true},"pickle_mode":{"type":"string","nullable":true},"cf_batch_size":{"type":"number","nullable":true},"resize_factor":{"type":"number","nullable":true},"expressiveness":{"type":"number","nullable":true},"inp_batch_size":{"type":"number","nullable":true},"fidelity_weight":{"type":"number","nullable":true},"wav2lip_batch_size":{"type":"number","nullable":true},"face_det_batch_size":{"type":"number","nullable":true}}}},"required":["id","name","description","model","modelName","options"]}}},"required":["id","createdAt","updatedAt","organizationId","userId","name","description","visibility","deletedAt","mode","generations","generationPresets"]},"AttachProjectAssetDto":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["assetId"]},"UpdateProjectDto":{"type":"object","properties":{"name":{"type":"string","minLength":1},"description":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["USER","ORGANIZATION"]},"mode":{"type":"string","enum":["CREATOR","DEVELOPER"]}}},"ErrorCatalogEntryDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"suggestion":{"type":"string"}},"required":["code","message","suggestion"]},"CreateTtsDto":{"type":"object","properties":{"script":{"type":"string","minLength":1,"maxLength":5000},"voiceId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["elevenlabs"]},"stability":{"type":"number","minimum":0,"maximum":1},"similarityBoost":{"type":"number","minimum":0,"maximum":1}},"required":["script","voiceId","provider"]},"TtsGenerationResponseDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"duration":{"type":"number"}},"required":["id","url","duration"]},"VoiceDto":{"type":"object","properties":{"id":{"type":"string","nullable":true},"internalVoiceId":{"type":"string","nullable":true},"voiceId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"provider":{"type":"string","enum":["elevenlabs"]},"previewUrl":{"type":"string","nullable":true}},"required":["provider"]},"CreateVoiceDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"provider":{"type":"string","enum":["elevenlabs"]},"url":{"type":"string","format":"uri"},"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["name","provider"],"allOf":[{"oneOf":[{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},{"type":"object","properties":{"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["assetId"]}]}]},"ClonedVoiceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"voiceId":{"type":"string"},"name":{"type":"string"}},"required":["id","voiceId","name"]},"VideoInputItem":{"type":"object","properties":{"type":{"type":"string","enum":["video"],"example":"video"},"url":{"type":"string","example":"https://assets.sync.so/videos/samples/influencer.mp4","description":"CDN/HTTP URL to a source video. Either `url` or `assetId` is required."},"assetId":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Sync asset ID for a previously uploaded video. Either `url` or `assetId` is required."},"segments_secs":{"type":"array","items":{"type":"array","description":"First number is start time, second number is end time","items":{"type":"number"},"minItems":2,"maxItems":2},"example":[[5,10]],"description":"Start and end time in seconds for each video segment to apply generation to","deprecated":true},"segments_frames":{"type":"array","items":{"type":"array","description":"First number is start frame, second number is end frame","items":{"type":"number"},"minItems":2,"maxItems":2},"example":[[0,25]],"description":"Start and end frames for each video segment to apply generation to","deprecated":true}},"required":["type"],"allOf":[{"anyOf":[{"type":"object","properties":{"url":{"type":"string","example":"https://assets.sync.so/videos/samples/influencer.mp4","description":"CDN/HTTP URL to a source video. Either `url` or `assetId` is required."}},"required":["url"]},{"type":"object","properties":{"assetId":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Sync asset ID for a previously uploaded video. Either `url` or `assetId` is required."}},"required":["assetId"]}]}]},"ImageInputItem":{"type":"object","properties":{"type":{"type":"string","enum":["image"],"example":"image"},"url":{"type":"string","example":"https://example.com/source-image.png","description":"CDN/HTTP URL to a source image. Either `url` or `assetId` is required."},"assetId":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Sync asset ID for a previously uploaded image. Either `url` or `assetId` is required."}},"required":["type"],"allOf":[{"anyOf":[{"type":"object","properties":{"url":{"type":"string","example":"https://example.com/source-image.png","description":"CDN/HTTP URL to a source image. Either `url` or `assetId` is required."}},"required":["url"]},{"type":"object","properties":{"assetId":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Sync asset ID for a previously uploaded image. Either `url` or `assetId` is required."}},"required":["assetId"]}]}]},"AudioInputItem":{"type":"object","properties":{"type":{"type":"string","enum":["audio"],"example":"audio"},"refId":{"type":"string","description":"Reference id used by `segments[].audioInput.refId` when a generation has more than one audio or text input.","example":"line-a"},"url":{"type":"string","example":"https://assets.sync.so/audios/samples/re-record.mp3","description":"CDN/HTTP URL to a source audio file. Either `url` or `assetId` is required."},"assetId":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Sync asset ID for a previously uploaded audio file. Either `url` or `assetId` is required."}},"required":["type"],"allOf":[{"anyOf":[{"type":"object","properties":{"url":{"type":"string","example":"https://assets.sync.so/audios/samples/re-record.mp3","description":"CDN/HTTP URL to a source audio file. Either `url` or `assetId` is required."}},"required":["url"]},{"type":"object","properties":{"assetId":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Sync asset ID for a previously uploaded audio file. Either `url` or `assetId` is required."}},"required":["assetId"]}]}]},"TextInputItem":{"type":"object","properties":{"type":{"type":"string","enum":["text"],"example":"text"},"refId":{"type":"string","description":"Reference id used by `segments[].audioInput.refId` when a generation has more than one audio or text input.","example":"line-a"},"provider":{"description":"Integration provider","allOf":[{"$ref":"#/components/schemas/ProviderItem"}]}},"required":["type","provider"]},"GenerationOptions":{"type":"object","properties":{"prompt":{"type":"string","description":"Prompt for the generation. For appearence-1, this is the appearance edit instruction sent with the video and reference images.","example":"add a red hat to the speaker"},"prompt_image_uris":{"description":"Reference image URLs for appearance editing generations. API consumers can pass direct reference images here, or pass the imageUrl returned by POST /v2/appearence/preview.","example":["https://example.com/appearance-preview.png"],"type":"array","items":{"type":"string"}},"i2v_prompt":{"type":"string","description":"Prompt for image-to-video generation. Defaults to none.","example":"make the subject smile and look at the camera"},"model_mode":{"type":"string","enum":["lips","face","head"],"example":"face","description":"mode of the model to use for animation.","default":"face"},"temperature":{"type":"number","example":0.5,"description":"generation temperature randomness between 0 and 1. note: only works for lipsync-2 based models."},"sync_mode":{"type":"string","enum":["cut_off","bounce","loop","silence","remap"],"example":"bounce","description":"lipsync mode when audio and video durations are out of sync.","default":"bounce"},"reasoning_enabled":{"type":"boolean","description":"Whether to analyze and correct frames with artifacts, occlusions, or extreme poses during generation, slows down generation speed.","default":false},"refinement_enabled":{"type":"boolean","example":false,"description":"Whether to enable the refinement pass for the generation.","default":false},"blending_mode":{"enum":["default","advanced","disabled"],"type":"string","example":"default","description":"Controls how blending is applied during generation.","default":"default"},"active_speaker_detection":{"description":"Active speaker detection configuration","allOf":[{"$ref":"#/components/schemas/ActiveSpeaker"}]},"face_boxes_url":{"type":"string","example":"https://example.com/face-boxes.json","description":"URL for precomputed face bounding boxes."},"occlusion_detection_enabled":{"type":"boolean","example":true,"description":"Whether to detect occlusion during generation, slows down generation speed."},"output_bucket_name":{"type":"string","example":"my-bucket","description":"Name of the output bucket"},"active_speaker":{"type":"boolean","example":true,"description":"Whether to detect active speaker and apply generation to them.","deprecated":true},"pads":{"example":[0,5,0,0],"description":"Padding values","default":[0,5,0,0],"deprecated":true,"type":"array","items":{"type":"number"}},"speedup":{"type":"number","enum":[1,2,3,4],"example":1,"description":"downscale inputs for faster generations. used to preview changes.","deprecated":true},"output_format":{"type":"string","enum":["mp4","mov"],"example":"mp4","description":"format of the output media that is generated.","default":"mp4","deprecated":true},"fps":{"type":"number","example":25,"description":"Frames per second (FPS) for the output video","deprecated":true},"output_resolution":{"example":[1280,720],"description":"Resolution of the output video [width, height]","deprecated":true,"type":"array","items":{"type":"string"}}}},"GenerationSegmentItem":{"type":"object","properties":{"startTime":{"type":"number","description":"Segment start time in seconds"},"endTime":{"type":"number","description":"Segment end time in seconds"},"startFrame":{"type":"number","description":"Segment start frame (0-indexed)"},"endFrame":{"type":"number","description":"Segment end frame (0-indexed)"},"audioInput":{"description":"Audio Input for this segment","allOf":[{"$ref":"#/components/schemas/SegmentAudioItem"}]}},"required":["audioInput"]},"DubDto":{"type":"object","properties":{"providerName":{"type":"string","enum":["elevenlabs"],"description":"Provider to use for dubbing. Defaults to ElevenLabs.","example":"elevenlabs","default":"elevenlabs"},"targetLang":{"type":"string","description":"Target language code for dubbing (e.g., \"es\" for Spanish, \"fr\" for French).","example":"es","enum":["en","gu","no","sl","pa","ta","az","gl","is","sw","my","fi","el","he","lt","ms","sv","fr","ca","hr","lv","ro","sd","th","tn","pl","ceb","da","hu","mr","tl","ug","wo","zu","zh","hi","as","ha","kk","ki","rn","ky","st","te","war","ak","be","cs","ka","mn","bo","ts","ar","ss","nl","tr","af","bs","et","rw","ne","ko","it","es","sq","eu","kn","sk","su","ve","pt","am","hy","doi","de","jv","mk","ja","vi","cy","nso","uk","bg","id","lg","yo","ml","fa","tg","ur","uz","ru","fil"]},"sourceLang":{"type":"string","description":"Source language code. Defaults to \"auto\" for automatic detection.","example":"en","default":"auto","enum":["auto","en","gu","no","sl","pa","ta","az","gl","is","sw","my","fi","el","he","lt","ms","sv","fr","ca","hr","lv","ro","sd","th","tn","pl","ceb","da","hu","mr","tl","ug","wo","zu","zh","hi","as","ha","kk","ki","rn","ky","st","te","war","ak","be","cs","ka","mn","bo","ts","ar","ss","nl","tr","af","bs","et","rw","ne","ko","it","es","sq","eu","kn","sk","su","ve","pt","am","hy","doi","de","jv","mk","ja","vi","cy","nso","uk","bg","id","lg","yo","ml","fa","tg","ur","uz","ru","fil"]},"numSpeakers":{"type":"number","description":"Deprecated and ignored by Dubbing v2; speaker count is detected automatically.","example":1,"deprecated":true,"default":0,"minimum":0,"maximum":10}},"required":["targetLang"]},"GenerationDto__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"$ref":"#/components/schemas/GenerationDto__schema0"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/GenerationDto__schema0"}}],"nullable":true},"PaginatedProjectsResponseDto__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"$ref":"#/components/schemas/PaginatedProjectsResponseDto__schema0"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PaginatedProjectsResponseDto__schema0"}}],"nullable":true},"ProjectDto__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"$ref":"#/components/schemas/ProjectDto__schema0"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProjectDto__schema0"}}],"nullable":true},"ProviderItem":{"type":"object","properties":{"name":{"type":"string","example":"elevenlabs"},"voiceId":{"type":"string","example":"voice123","description":"Sync voice ID (copied from cloned voices in the Studio) or ElevenLabs voice ID. Required."},"script":{"type":"string","example":"make some magic"},"stability":{"type":"number","example":0.5,"description":"Voice stability (0-1). Lower = more expressive, higher = more stable."},"similarityBoost":{"type":"number","example":0.75,"description":"Voice similarity boost (0-1). Lower = more creative, higher = stricter adherence."}},"required":["name","voiceId","script"]},"ActiveSpeaker":{"type":"object","properties":{"auto_detect":{"type":"boolean","default":false,"example":true,"description":"Whether to detect active speaker automatically and apply generation to them."},"use_v2":{"type":"boolean","deprecated":true,"example":true,"description":"Deprecated. ASD v2 is now the default; use v3 to opt into ASD v3."},"v3":{"type":"boolean","example":true,"description":"Whether to use asd v3"},"frame_number":{"type":"number","example":123,"description":"Frame number selected for speaker selection"},"coordinates":{"example":[10,20],"description":"Pixel coordinates [x, y] in the source video frame identified by frame_number. Coordinates are forwarded as-is to active speaker selection; they are not normalized ratios.","type":"array","items":{"type":"number"}},"face_image":{"type":"string","example":"data:image/webp;base64,...","description":"Base64 encoded face image for selected speaker (128x128 WebP)"}}},"SegmentAudioItem":{"type":"object","properties":{"refId":{"type":"string","description":"Reference to an audio input by refId"},"startTime":{"type":"number","description":"Start time (seconds) to crop audio"},"endTime":{"type":"number","description":"End time (seconds) to crop audio"}},"required":["refId"]}}},"security":[{"apiKey":[]}]}