POST
/v1/dubbing
ElevenLabs APIDub A Video Or An Audio File
- Base URL
- https://api.elevenlabs.io
- Auth
- xi-api-key: <ELEVENLABS_API_KEY>
- Last verified
- 2026-09-03 · upstream hash matched
Actions
Agents: curl -H "Accept: text/markdown" this URL
→ 215 tokens · Vary: Accept
→ 215 tokens · Vary: Accept
Critical gotchas
Authentication uses the non-standard xi-api-key header, not Authorization: Bearer. Sending a Bearer token returns HTTP 401.
Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (--output speech.mp3) rather than parsing it.
cURL
curl -X POST 'https://api.elevenlabs.io/v1/dubbing' \ -H "xi-api-key: $ELEVENLABS_API_KEY" \ -F 'file=@sample.bin' \ -F 'csv_file=@sample.bin' \ -F 'foreground_audio_file=@sample.bin' \ -F 'background_audio_file=@sample.bin' \ -F 'name=string' \ -F 'source_url=string' \ -F 'source_lang=auto' \ -F 'target_lang=string' \ -F 'target_accent=string' \ -F 'num_speakers=0' \ -F 'watermark=false' \ -F 'start_time=0' \ -F 'end_time=0' \ -F 'highest_resolution=false' \ -F 'drop_background_audio=false' \ -F 'use_profanity_filter=true' \ -F 'dubbing_studio=false' \ -F 'disable_voice_cloning=false' \ -F 'mode=automatic' \ -F 'csv_fps=0'Get a free ElevenLabs API key → sponsored
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| file | body | string | No | A list of file paths to audio recordings intended for voice cloning |
| csv_file | body | string | No | CSV file containing transcription/translation metadata |
| foreground_audio_file | body | string | No | For use only with csv input |
| background_audio_file | body | string | No | For use only with csv input |
| name | body | string | No | Name of the dubbing project. |
| source_url | body | string | No | URL of the source video/audio file. |
| source_lang | body | string | No | Source language. Expects a valid iso639-1 or iso639-3 language code. |
| target_lang | body | string | No | The Target language to dub the content into. Expects a valid iso639-1 or iso639-3 language code. |
| target_accent | body | string | No | [Experimental] An accent to apply when selecting voices from the library and to use to inform translation of the dialect to prefer. |
| num_speakers | body | integer | No | Number of speakers to use for the dubbing. Set to 0 to automatically detect the number of speakers |
| watermark | body | boolean | No | Whether to apply watermark to the output video. |
| start_time | body | integer | No | Start time of the source video/audio file. |
| end_time | body | integer | No | End time of the source video/audio file. |
| highest_resolution | body | boolean | No | Whether to use the highest resolution available. |
| drop_background_audio | body | boolean | No | An advanced setting. Whether to drop background audio from the final dub. This can improve dub quality where it's known that audio shouldn't have a background track such as for speeches or monologues. |
| use_profanity_filter | body | boolean | No | [BETA] Whether transcripts should have profanities censored with the words '[censored]' |
| dubbing_studio | body | boolean | No | Whether to prepare dub for edits in dubbing studio or edits as a dubbing resource. |
| disable_voice_cloning | body | boolean | No | Instead of using a voice clone in dubbing, use a similar voice from the ElevenLabs Voice Library. Voices used from the library will contribute towards a workspace's custom voices limit, and if there aren't enough available slots the dub will fail. Using this feature requires the caller to have the 'add_voice_from_voice_library' permission on their workspace to access new voices. |
| mode | body | string | No | The mode in which to run this Dubbing job. Defaults to automatic, use manual if specifically providing a CSV transcript to use. Note that manual mode is experimental and production use is strongly discouraged. |
| csv_fps | body | number | No | Frames per second to use when parsing a CSV file for dubbing. If not provided, FPS will be inferred from timecodes. |
Response 200 OK
{
"dubbing_id": "21m00Tcm4TlvDq8ikWAM",
"expected_duration_sec": 127.5
}