Skip to main content

Overview

Create Studio exposes three media generation capabilities:
  • Text-to-speech (TTS) — convert written text to audio using your chosen voice
  • Speech-to-text (STT) — transcribe an uploaded audio file
  • Dubbing — translate and re-voice a video into another language, with optional lip-sync
TTS and dubbing jobs are asynchronous — you submit the job, get an ID, and poll for status. See the polling pattern below. Required scopes: create_studio:read (read/list/status), create_studio:write (create/generate jobs)

Voices

GET /v1/create-studio/available-voices

Returns all voices available for TTS and dubbing.
Common errors: 403 missing create_studio:read scope

Text-to-speech

POST /v1/create-studio/text-to-speech

Submits a TTS job. The job processes asynchronously — use GET /v1/create-studio/text-to-speech/{id} to check status.
201 Created
Common errors: 400 validation error · 403 missing create_studio:write scope

GET /v1/create-studio/text-to-speech

Lists all TTS jobs for your organization.

GET /v1/create-studio/text-to-speech/{id}

Returns the status and output of a single TTS job.

DELETE /v1/create-studio/text-to-speech/{id}

Deletes a TTS job and its output.

Speech-to-text

POST /v1/create-studio/speech-to-text

Uploads an audio file and starts a transcription job. Send as multipart/form-data.
Common errors: 400 missing file or unsupported format · 403 missing create_studio:write scope

GET /v1/create-studio/speech-to-text

Lists all STT jobs.

GET /v1/create-studio/speech-to-text/{id}

Returns the result of a single STT job.

DELETE /v1/create-studio/speech-to-text/{id}


Dubbing

Dubbing translates and re-voices a source video into a target language. The workflow is:
  1. Create a dubbing project (POST /v1/create-studio/dubbing/create)
  2. Trigger generation (POST /v1/create-studio/dubbing/generate)
  3. Poll status until completed (GET /v1/create-studio/dubbing/status/{id})
  4. Download the output (GET /v1/create-studio/dubbing/download/{id}/{mode})

POST /v1/create-studio/dubbing/create

Creates a dubbing project. Send as multipart/form-data.
201 Created

POST /v1/create-studio/dubbing/generate

Triggers generation for an existing dubbing project. Pass the id from the create step.
201 Created
Common errors: 400 validation error · 403 missing create_studio:write scope · 404 project not found

GET /v1/create-studio/dubbing/status/{id}

Polls the status of a dubbing job. Poll every 5–10 seconds until status is completed or failed.
200 OK
Possible status values: pending · processing · completed · failed

GET /v1/create-studio/dubbing/download/{id}/{mode}

Downloads the completed output. Use mode to select the output format.
Common errors: 403 missing create_studio:read scope · 404 dubbing job not found or not yet completed

GET /v1/create-studio/dubbing/list

Lists all dubbing projects.

GET /v1/create-studio/dubbing/details/{id}

Returns full details for one dubbing project.

DELETE /v1/create-studio/dubbing/delete/{id}

Permanently deletes a dubbing project and its output files.

GET /v1/create-studio/download-file/{id}/{mode}

Downloads any Create Studio output file by its job ID and mode.

Async job polling

TTS and dubbing jobs process asynchronously. Use this pattern to wait for completion:
Subscribe to the dubbing.completed and tts.completed webhook events to avoid polling entirely. See Webhooks.