
ElevenLabs Dubbing API: access, pricing and code
Summary
The ElevenLabs Dubbing API is on Runway Dev, running the official dubbing model from ElevenLabs.
It translates the speech in an audio file into one of 29 languages, and each speaker keeps their own voice in the new language.
You call it with the same API key, SDKs and credit balance as every other model on Runway Dev.
This page covers access, pricing, inputs, code and how a coding agent can build the integration for you.
When a video, podcast or voiceover has to reach another market, dubbing turns translation, casting and a recording session into one request per language.
What is ElevenLabs Dubbing?
ElevenLabs Dubbing is ElevenLabs’ speech translation model. It takes an audio file with one or more speakers, translates what they say into a target language and returns the dubbed audio, with each speaker’s voice cloned into the new language.
Runway Dev serves it as eleven_voice_dubbing, and the model catalog lists it as Voice Dubbing. It is built for localizing finished content, such as an ad’s voiceover, a product video, a podcast episode or a course, where the people speaking should still sound like themselves.
What are the ways to use ElevenLabs Dubbing on Runway Dev?
ElevenLabs Dubbing runs on Runway Dev four ways, all from one account:
| Way in | Best for | What you need |
|---|---|---|
| Playground | Trying a dub, then copying the request as code | A Runway Dev account |
| API and SDKs | Calling ElevenLabs Dubbing from your own code | An API key, plus the Node or Python SDK if you want one |
| Coding agent | Having Claude Code, Codex, Cursor or Grok Bot build the API integration into your product, tool or pipeline | The Runway Dev MCP and skills, and an API key for live calls |
| Workflows | Dubbing as one step with other models, run with one API call | A workflow built in the Runway app and published as an endpoint |
How do you get API access to ElevenLabs Dubbing?
You get API access to ElevenLabs Dubbing with a Runway Dev account and an API key:
- Create an account at https://dev.runway.com.
- Create an API key in your project’s dashboard.
- Add credits to your project’s balance.
- Store the key in your environment as
RUNWAYML_API_SECRET. - Send a request with
"model": "eleven_voice_dubbing", anaudioUriand atargetLangtoPOST /v1/voice_dubbing, with theX-Runway-Versionheader. The code below is ready to run.
How much does the ElevenLabs Dubbing API cost?
The ElevenLabs Dubbing API on Runway Dev is priced by the length of the audio you send, 1 credit ($0.01) per 2 seconds of input audio, and the rate is the same for every target language.
| Credits | USD |
|---|---|
| 1 credit per 2 seconds of input audio | $0.01 per 2 seconds of input audio |
Prices current as of November 5, 2026. 1 credit = $0.01.
How the billing works:
- The charge follows the input’s length, rounded up to a whole credit. Every dub on this page came from the same source, so each one cost the same.
- One request makes one language. Dubbing a file into three languages takes three requests, each billed for the full input.
- A task that fails input moderation (
SAFETY.INPUT.*) is still charged. See task failures for what each failure means.
Every rate is also listed in the docs pricing guide and on dev.runway.com/pricing.
What inputs does ElevenLabs Dubbing accept?
ElevenLabs Dubbing takes one audio file in audioUri and the language to dub it into in targetLang. The file can run up to 60 minutes and goes in as an HTTPS URL, a runway:// URI from an upload or a data URI, in one of the audio formats listed in inputs. Dubbing works on audio, so for a video you extract its audio track first and lay the dub back under the picture afterwards, as the editing and finishing guide shows with ffmpeg.
Here is every field:
POST /v1/voice_dubbing
| Field | Accepts |
|---|---|
model (required) |
eleven_voice_dubbing |
audioUri (required) |
One audio clip |
targetLang (required) |
One of en, hi, pt, zh, es, fr, de, ja, ar, ru, ko, id, it, nl, tr, pl, sv, fil, ms, ro, uk, el, cs, da, fi, bg, hr, sk or ta |
disableVoiceCloning |
true or false |
dropBackgroundAudio |
true or false |
numSpeakers |
Whole number |
Audio goes in as an HTTPS URL, a runway:// URI from an upload or a data URI; inputs lists sizes and formats. Each table shows what a field accepts on its own. Rules that combine fields are checked when the task is submitted, and the API reference has them in full.
Three optional fields change what comes back:
disableVoiceCloningreplaces the speakers’ cloned voices with a generic voice. Leave it out to keep each speaker sounding like themselves.dropBackgroundAudioremoves the background audio, such as music or room sound, from the dub, which suits a dub you will mix yourself.numSpeakerssets how many people talk in the file, as a whole number of at least one. Without it, the model detects the speakers on its own.
How do you use the ElevenLabs Dubbing API?
You use the ElevenLabs Dubbing API by sending eleven_voice_dubbing with the audio and a target language. This example request, in curl, Node and Python, dubs an English file into Spanish; replace the audioUri with a link to your own file:
curl
curl -X POST https://api.dev.runwayml.com/v1/voice_dubbing \
-H "Authorization: Bearer $RUNWAYML_API_SECRET" \
-H "X-Runway-Version: 2024-11-06" \
-H "Content-Type: application/json" \
-d '{
"model": "eleven_voice_dubbing",
"audioUri": "https://example.com/episode-en.mp3",
"targetLang": "es"
}'
# The response carries the task id. Poll the task until it finishes:
curl https://api.dev.runwayml.com/v1/tasks/$TASK_ID \
-H "Authorization: Bearer $RUNWAYML_API_SECRET" \
-H "X-Runway-Version: 2024-11-06"
Node.js
import RunwayML, { TaskFailedError } from '@runwayml/sdk';
// Reads your API key from RUNWAYML_API_SECRET.
const client = new RunwayML();
try {
const task = await client.voiceDubbing
.create({
model: 'eleven_voice_dubbing',
audioUri: 'https://example.com/episode-en.mp3',
targetLang: 'es',
})
.waitForTaskOutput();
console.log(task.output);
} catch (error) {
if (error instanceof TaskFailedError) {
console.error(error.taskDetails);
} else {
throw error;
}
}
Python
from runwayml import RunwayML, TaskFailedError
# Reads your API key from RUNWAYML_API_SECRET.
client = RunwayML()
try:
task = client.voice_dubbing.create(
model="eleven_voice_dubbing",
audio_uri="https://example.com/episode-en.mp3",
target_lang="es",
).wait_for_task_output()
print(task.output)
except TaskFailedError as error:
print(error.task_details)
Dubbing is asynchronous:
- The create request returns a task ID right away, and the dub is made in the background.
- Poll
GET /v1/tasks/{id}with backoff until the status isSUCCEEDED,FAILEDorCANCELLED.THROTTLEDmeans the task is waiting in a queue, not rejected. - The output is an audio file at a temporary URL, so download it when the task succeeds. See outputs. Each dub on this page came back exactly as long as its source, so it lines up when you lay it under the original picture.
- The SDKs poll for you.
waitForTaskOutput()andwait_for_task_output()raiseTaskFailedErrorwith the task’s details when it fails. They also stop waiting after a default timeout while the task keeps running, so for long files pass a longer timeout or keep polling the task ID. - For several languages, send one request per language at the same time. Each returns its own task.
Why does an ElevenLabs Dubbing API request fail?
An ElevenLabs Dubbing request is either rejected when you send it or fails later with a failure code that names the cause. The common ones:
- A validation error on
audioUri: the file is a video, or in an audio format the API doesn’t take. Extract the audio track and send it in one of the formats in inputs. - A validation error on
targetLang: the code isn’t in the list above. Codes are short language codes such asesorja, not regional ones such ases-MX. ASSET.INVALID: the file couldn’t be read as audio. Re-export it and retry.INTERNAL: the dub wasn’t made, for example because of an outage, load or an input ElevenLabs rejected. The task is refunded. Read the task’sfailuremessage, then retry after a delay, as the task failures guide advises; if the same file fails again, change the input before sending it again.- An output link that stopped working: output URLs expire. Download the audio when the task succeeds.
What does Runway Dev add when you call ElevenLabs Dubbing?
Runway Dev serves ElevenLabs Dubbing next to Runway’s own models and other labs’ models, behind one API key and one credit balance: you build with a single key and pay a single bill, instead of an account, a key and an invoice per lab. The model that voiced this page’s source, Eleven v4, and Voice Isolator, which strips noise from dialogue before you dub it, run on the same key.
A coding agent can do the ElevenLabs Dubbing integration for you on Runway Dev, end to end. Connect the Runway Dev MCP and the agent works from your live account: the models your project can call with their current prices and input limits, your credit balance and the record behind any task. It writes the integration against what the API accepts today, and when a task fails it looks up the reason and fixes it. The Runway Dev skills show the agent how to integrate with the official SDKs and how to build with models, Model Routers, Recipes and Workflows.
With Workflows, dubbing becomes one step of a larger pipeline: take the audio out of a video, dub it, put it back under the picture and chain it with Runway’s own models and other labs’ models, then run the whole pipeline with a single API call. Workflows don’t need to be built by a developer. A creative or marketing teammate builds and tests one visually in the Runway app (how Workflows work), then publishes it as an endpoint that your code calls. To localize a whole ad, headline and voiceover included, see the campaign localizer.
FAQ
How do I get API access to ElevenLabs Dubbing?
Create a Runway Dev account at dev.runway.com, make an API key and add credits. Then send eleven_voice_dubbing as the model to POST /v1/voice_dubbing, with an audioUri and a targetLang. To have a coding agent write the integration instead, connect the Runway Dev MCP and install the Runway Dev skills.
How much does the ElevenLabs Dubbing API cost?
On Runway Dev, ElevenLabs Dubbing costs 1 credit ($0.01) per 2 seconds of input audio, measured on the audio you send, for any target language. Each language is its own request. Prices are current as of November 5, 2026.
Is the ElevenLabs Dubbing API on Runway Dev the official model?
Runway Dev’s ElevenLabs Dubbing API runs the official dubbing model from ElevenLabs. You call it with your Runway Dev API key and the model ID eleven_voice_dubbing, like every other model on Runway Dev.
Which languages can ElevenLabs Dubbing translate into?
ElevenLabs Dubbing on Runway Dev dubs into 29 languages, set with targetLang: One of en, hi, pt, zh, es, fr, de, ja, ar, ru, ko, id, it, nl, tr, pl, sv, fil, ms, ro, uk, el, cs, da, fi, bg, hr, sk or ta.
Does ElevenLabs Dubbing keep the original speaker’s voice?
ElevenLabs Dubbing clones each speaker’s voice into the target language by default, so a two-person conversation comes back as the same two people. Set disableVoiceCloning to true to use a generic voice instead.
Can ElevenLabs Dubbing dub a video file through the API?
ElevenLabs Dubbing on Runway Dev takes audio. Extract the video’s audio track, dub it, then put the dubbed track back under the picture, for example with ffmpeg copying the video stream as it is.
Does ElevenLabs Dubbing handle several speakers?
ElevenLabs Dubbing detects the speakers in a file and dubs each one in their own voice. If you know how many there are, send numSpeakers to set it.
Can I use ElevenLabs Dubbing without writing code?
You can use ElevenLabs Dubbing on Runway Dev without writing code yourself. The playground sends a request from a form and gives it back as code, and a coding agent connected to the Runway Dev MCP writes the integration for you. A creative or marketing teammate can also build a workflow with a dubbing step in the Runway app and publish it as an endpoint your app calls.
Does the same Runway Dev API key work for ElevenLabs Dubbing and other models?
One Runway Dev API key calls ElevenLabs Dubbing and every other model your project can use, Runway’s own and other labs’, with the same SDKs, task flow and credit balance.
What is the ElevenLabs Dubbing model ID on Runway Dev?
The model ID is eleven_voice_dubbing, on POST /v1/voice_dubbing.
Can I use ElevenLabs Dubbing outputs commercially?
Commercial use of what you make on Runway Dev is covered in commercial use. You need the rights to the source audio, including the voices in it, before you dub it.


