
elevenlabs/ eleven-v4-turbo
Text to SpeechA faster, lower-cost version of Eleven v4 for interactive apps and high-volume narration. Keeps v4's expressive delivery, inline audio tags and 90+ languages, with stability and similarity controls. Up to 5,000 characters per request.
38 / 5,000
38 characters · reserves $0.00152
More settings (7)
Range: 0 – 4294967295
$0.04 / 1K characters · billed by the characters of your text
[excited] Hello! Welcome to Eleven v4.
Pricing
Unit price $0.04 / 1K characters
Charged per 1,000 characters of input text, prorated to the exact length (spaces, punctuation and tags count).
Each request temporarily reserves the price of its own text ($0.04 per 1,000 characters, counted as Unicode characters and at least 1; at most $0.20 for the longest text; a request with an undeclared field, or other free text over 64 characters, reserves $0.20); you are charged for actual usage, usually within a minute: any unused amount is released and any usage above it is charged to your balance, even if that takes it below zero; while your balance is below zero, new requests are paused until a top-up covers it.
For example, 100 characters reserve $0.004; 1,000 characters reserve $0.04.
Your balance must be at least $0.01 and cover this reserve.
Failed generations are not charged.
API
Submit generation requests with this model ID.
/v1/model-taskselevenlabs/eleven-v4-turbo{
"model": "elevenlabs/eleven-v4-turbo",
"input": {
"apply_text_normalization": "auto",
"output_format": "mp3_44100_128",
"similarity_boost": 0.75,
"stability": 0.5,
"text": "[excited] Hello! Welcome to Eleven v4.",
"timestamps": false,
"voice": "Rachel"
}
}Input schema
| Parameter | Type | Requirement | Default |
|---|---|---|---|
| text | string | Required | — |
| apply_text_normalization | string | Optional | auto |
| language_code | string | Optional | — |
| output_format | string | Optional | mp3_44100_128 |
| seed | integer | Optional | — |
| similarity_boost | number | Optional | 0.75 |
| stability | number | Optional | 0.5 |
| timestamps | boolean | Optional | false |
| voice | string | Optional | Rachel |
Response
The API returns a result or a pollable asynchronous task. See the examples and Schema below for the response mode and result fields.
Code examples
Async submission returns a task ID. Poll until status is completed, then retrieve the generated content from the result. Get your API key in the console.
# Use a new directory for each new generation. Rerunning here continues this task.
set -eu
test -s model-task-id.txt || python3 -c "import uuid; print(uuid.uuid4())" > model-task-id.txt
REQUEST_ID=$(cat model-task-id.txt)
# Idempotent: resending the same bytes with the same ID never charges twice.
curl --fail-with-body --retry 3 --retry-connrefused --request POST 'https://api.musespan.com/v1/model-tasks' \
--header "Authorization: Bearer $MUSESPAN_API_KEY" \
--header "X-Request-Id: $REQUEST_ID" \
--header "Content-Type: application/json" \
--data '{"model":"elevenlabs/eleven-v4-turbo","input":{"apply_text_normalization":"auto","output_format":"mp3_44100_128","similarity_boost":0.75,"stability":0.5,"text":"[excited] Hello! Welcome to Eleven v4.","timestamps":false,"voice":"Rachel"}}'
# Poll every 5 seconds for up to 25 minutes until status is completed or failed.
# Still queued (with queue_position) 5 minutes after submission: failed with queue_timeout, not charged.
# No result 15 minutes after acceptance (or no confirmation 15 minutes after submission): failed with generation_timeout, not charged.
# Any failure is final: generate again in a new directory (a new X-Request-Id).
# A 404 means the POST did not arrive: rerun this script to resend it with the same ID.
curl --fail-with-body 'https://api.musespan.com/v1/model-tasks/'"$REQUEST_ID"'' --header "Authorization: Bearer $MUSESPAN_API_KEY"