[warmly] Some places give you a room. Others give you a reason to stay. Open the curtains to the ocean. Let breakfast last a little longer. And leave your calendar somewhere you cannot hear it. [softly] The world can wait. Welcome to your next favorite escape.
ElevenLabs Eleven v4 API
ElevenLabs Eleven v4: expressive multilingual speech with audio tags, voice selection and delivery controls.
from$0.072/ 1K chars$0.0810% off
Model IDelevenlabs-tts-v4
Input
Text
Output
Audio
Provider
3 providers
Stability
0 – 1
Voice similarity
0 – 1
Seed
0 – 4294967295
Last 7 days · not enough recent requests for stats yet.
ElevenLabs Eleven v4 pricing
Prices are per unit; requests without a provider are routed to the cheapest provider that supports your parameters.
| Option | Price (USD) |
|---|---|
| All options | $0.072 / 1K chars 1 Credits |
Try ElevenLabs Eleven v4 before you integrate
Test output quality, compare provider prices and estimate cost before writing any code.
Input
Result
IdleProvider prices for this request
Enter a prompt to compare provider prices.
ElevenLabs Eleven v4 prompt examples
Ready-to-use prompts. Load one into the playground and tweak it.
5 prompts
[excited] Hello! Welcome to Eleven v4.
Resort escape ad
Advertising[warmly] Picture this: the curtains open, and there's nothing but ocean. Breakfast takes as long as you like. Work can wait. [softly] Welcome to your week off.
Documentary narration
NarrationDeep beneath the ice, the water is darker than any night. Yet here, against every expectation, life has found a way to thrive.
Excited game announcer
Character[excited] Ladies and gentlemen, the final round is about to begin! [whispering] And nobody saw this coming.
ElevenLabs Eleven v4 API reference
Endpoints, request fields and runnable examples for this model.
Base URL
https://01router.com/api/v1Quick start
Set API_KEY to your project key, then run a sample from your server. Replace example media URLs with your own public URLs.
Auto-routing chooses a provider that supports the request. Select a provider to see its input constraints and pinned request examples.
curl https://01router.com/api/v1/generations \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "elevenlabs-tts-v4",
"input": {
"prompt": "Welcome back. Let us get started.",
"voice": "Rachel",
"stability": 0.5,
"similarity_boost": 0.75,
"output_format": "mp3_44100_128",
"apply_text_normalization": "auto"
}
}
JSON
# Replace GENERATION_ID with the id returned above; poll until status is "succeeded" or "failed"
curl https://01router.com/api/v1/generations/GENERATION_ID -H "Authorization: Bearer $API_KEY"Endpoints
Only endpoints relevant to this model are listed. Paths below include /api/v1. Click an endpoint to read its usage.
/api/v1/generationsCreate a generation (charges credits) · API key required
/api/v1/generations/{id}Get a generation; polls the provider while running · API key required
/api/v1/generations/{id}/cancelCancel a running generation (credits refunded) · API key required
/api/v1/quotePrice a request on every provider (no charge, no key needed) · Public · no key
/api/v1/models/elevenlabs-tts-v4Get one model · Public · no key
Authentication
Send your API key as a Bearer token. Requests are billed to the key owner's credits.
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonInput
Send JSON with Content-Type: application/json. Model parameters belong inside input; model, provider and callback_url are top-level fields.
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | "elevenlabs-tts-v4" |
| provider | string | No | Pin a provider; omit to auto-route to the cheapest. One of: fal | wavespeed | openrouter |
| input | object | Yes | Model parameters, see the input fields below. |
| callback_url | string | No | Optional public HTTPS webhook URL. The final task result is signed and delivered here; polling remains available. |
input · input fields
Required fields are marked explicitly. Other fields use the listed defaults when omitted.
| Name | Type | Required | Values | Default |
|---|---|---|---|---|
| prompt* | string | Yes | maxLength: 5000 | — |
| voice | string | No | — | Rachel |
| stability | number | No | min: 0 · max: 1 | 0.5 |
| similarity_boost | number | No | min: 0 · max: 1 | 0.75 |
| language_code ISO 639-1, e.g. en or zh | string | No | — | — |
| seed | integer | No | min: 0 · max: 4294967295 | — |
| output_format | string | No | mp3_22050_32 | mp3_44100_32 | mp3_44100_64 | mp3_44100_96 | mp3_44100_128 | mp3_44100_192 | pcm_8000 | pcm_16000 | pcm_22050 | pcm_24000 | pcm_44100 | pcm_48000 | ulaw_8000 | alaw_8000 | opus_48000_32 | opus_48000_64 | opus_48000_96 | opus_48000_128 | opus_48000_192 | mp3_44100_128 |
| apply_text_normalization | string | No | auto | on | off | auto |
Output
Creating a task does not mean generation has finished. Keep its id, poll until succeeded or failed, then read outputs or error. Amounts below are illustrative; actual charges depend on the request.
Task submitted
{
"id": "gen_example",
"object": "generation",
"model": "elevenlabs-tts-v4",
"type": "audio",
"provider": "fal",
"status": "processing",
"input": {
"prompt": "Welcome back. Let us get started.",
"voice": "Rachel",
"stability": 0.5,
"similarity_boost": 0.75,
"output_format": "mp3_44100_128",
"apply_text_normalization": "auto"
},
"outputs": [],
"error": null,
"credits": 0,
"price_usd": 0,
"created_at": "2026-10-25T08:00:00.000Z",
"completed_at": null
}Task completed
{
"id": "gen_example",
"object": "generation",
"model": "elevenlabs-tts-v4",
"type": "audio",
"provider": "fal",
"status": "succeeded",
"input": {
"prompt": "Welcome back. Let us get started.",
"voice": "Rachel",
"stability": 0.5,
"similarity_boost": 0.75,
"output_format": "mp3_44100_128",
"apply_text_normalization": "auto"
},
"outputs": [
"https://example.com/output.wav"
],
"error": null,
"credits": 0,
"price_usd": 0,
"created_at": "2026-10-25T08:00:00.000Z",
"completed_at": "2026-10-25T08:01:00.000Z"
}Response fields
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Generation ID. Use it to query or cancel this task. |
| object | string | Yes | generation |
| model | string | Yes | elevenlabs-tts-v4 |
| type | string | Yes | audio |
| provider | string | Yes | Provider |
| status | string | Yes | queued → processing → succeeded / failed. Stop polling at either terminal state. |
| input | object | Yes | Model parameters, see the input fields below. |
| outputs | string[] | Yes | Result URLs. Empty while processing; read after succeeded and save the files promptly. |
| error | string | null | Yes | Failure reason, or null when no failure is reported. |
| credits | number | Yes | Credits charged for this request. |
| price_usd | number | Yes | Request price in USD. |
| created_at | string | Yes | Creation time in ISO 8601 format. |
| completed_at | string | null | Yes | Completion time in ISO 8601 format; null before completion. |
Get the result
Poll every few seconds until status is succeeded or failed. Output URLs are provider-hosted and may expire — download them promptly. Or pass callback_url to get the result pushed.
curl "https://01router.com/api/v1/generations/GENERATION_ID" \
-H "Authorization: Bearer $API_KEY"queued → processing → succeeded / failed. Stop polling at either terminal state. Result URLs. Empty while processing; read after succeeded and save the files promptly.
Cancel a task
Cancellation depends on provider support and task state. A confirmed cancellation returns status: failed and error: Canceled by user. Unsupported or completed tasks return 409 not_cancelable.
curl -X POST "https://01router.com/api/v1/generations/GENERATION_ID/cancel" \
-H "Authorization: Bearer $API_KEY"Quote
Same body as creating a generation. Returns every available provider sorted by price, plus the ones that cannot serve the request and why.
curl "https://01router.com/api/v1/quote" -H "Content-Type: application/json" --data-binary @- <<'JSON'
{
"model": "elevenlabs-tts-v4",
"input": {
"prompt": "Welcome back. Let us get started.",
"voice": "Rachel",
"stability": 0.5,
"similarity_boost": 0.75,
"output_format": "mp3_44100_128",
"apply_text_normalization": "auto"
}
}
JSONModel schema
This public endpoint returns the model parameters and each provider’s supported constraints and prices.
curl "https://01router.com/api/v1/models/elevenlabs-tts-v4"Errors
Check the HTTP status and error.message. Fix the request before retrying validation or authentication errors. A failed generation is reported in status and error on the task itself.
{
"error": {
"message": "Invalid or missing API key",
"code": "unauthorized"
}
}400Invalid body or parameter value
401Missing or invalid API key
402Not enough credits
404Unknown model or generation
409The task cannot be canceled (already finished, or the provider does not support canceling)
429Too many requests — retry after the given seconds
502Every provider rejected the task (credits refunded)
Use with AI
Give your coding assistant this model reference: endpoints, input constraints, output fields and request examples in plain text.
How does ElevenLabs Eleven v4 compare?
Specs and starting prices side by side. Test with the same prompt before you choose.
| ElevenLabs Eleven v4 | ElevenLabs Eleven v4 Turbo | Suno V6 | Gemini 3.8 Flash TTS | |
|---|---|---|---|---|
| Vendor | ElevenLabs | ElevenLabs | Suno | |
| Starting price | $0.072 / 1K chars | $0.036 / 1K chars | $0.045 / request | $0.041 / 1K chars |
| Input | Text | Text | Text | Text |
| Provider | 3 providers | 3 providers | 4 providers | 5 providers |
| Stability | 0 – 1 | 0 – 1 | — | — |
| Voice similarity | 0 – 1 | 0 – 1 | — | — |
| Seed | 0 – 4294967295 | 0 – 4294967295 | — | — |
ElevenLabs Eleven v4 API FAQ
What do stability and similarity_boost do?
Lower stability makes the delivery more expressive and varied; higher stability keeps it steady. similarity_boost controls how closely the output sticks to the chosen voice. Defaults are 0.5 and 0.75.
Can I direct emotion inside the text?
Yes. Inline audio tags such as [warmly], [whispering], [laughing] or [excited] steer the delivery of the words that follow. They guide the performance but are not guaranteed.
What is the difference between Eleven v4 and v4 Turbo?
v4 is tuned for the most expressive, consistent quality, which suits narration and character work. v4 Turbo trades a little quality for lower latency and about half the price, which suits prototypes and short-form content.
Which output formats and languages are supported?
You can choose MP3, PCM, Opus, μ-law or A-law with output_format (default mp3_44100_128). The model is multilingual; set language_code (ISO 639-1) to force a language.
How is it billed on 01router?
Per 1,000 characters of input text; spaces, punctuation and tags count. See the pricing table for current rates. Failed requests are refunded.
Related models
Other models you can call with the same API key.
ElevenLabs Eleven v4 Turbo
ElevenLabs Eleven v4 Turbo: expressive multilingual speech with audio tags, voice selection and delivery controls.
Suno V6
Suno V6 music generation: full songs with vocals or instrumentals from a description, or your own lyrics and style in custom mode. Each request returns two tracks.
Gemini 3.8 Flash TTS
Google Gemini 3.8 Flash TTS: expressive speech in 30 voices with natural-language style control and inline vocal events like <laugh>.