ElevenLabs · Speech · API

ElevenLabs API — live pricing and a 5-minute setup

ElevenLabs API: text to speech with v3, Multilingual v2 and Turbo through one Zerocoder key. OpenAI audio.speech format, MP3 output, priced per character.

ElevenLabs makes speech synthesis models with natural intonation: they voice text in English, Russian and other languages with voices from a ready library. Through Zerocoder, ElevenLabs v3, Multilingual v2, Turbo 2.5 and v4 Turbo are one POST to /api/v1/audio/speech in the OpenAI audio.speech format — no ElevenLabs account needed.

You pay per character: a rate per thousand characters of text with a minimum per call, charged at request time and refunded if no audio comes back. The response is a ready MP3 file. Below are the live model prices, a calculator and code samples.

Models and prices

The live GET /v1/models price list in US dollars. Minimum per call: $0.00556. Endpoint: /v1/audio/speech

Model prices in US dollars; where we are cheaper, the vendor's official price for the same unit is struck through
ModelPriceUnit
ElevenLabs v3recommendedeleven_v3 · ElevenLabsalso: eleven-v3, elevenlabs-v3
$0.107per 1K characters
ElevenLabs Multilingual v2eleven_multilingual_v2 · ElevenLabsalso: eleven-multilingual-v2, elevenlabs-multilingual-v2
$0.107per 1K characters
ElevenLabs v4 Turboeleven_v4_turbo · ElevenLabsalso: eleven-v4-turbo, elevenlabs-v4-turbo
$0.0533per 1K characters
ElevenLabs Turbo 2.5eleven_turbo_v2_5 · ElevenLabsalso: eleven-turbo-v2.5, eleven-turbo-2.5, elevenlabs-turbo-2.5
$0.0533per 1K characters
All prices are in US dollars; Zerocoder prices are converted at the internal rate.

Cost calculator

Pick a model and a volume — the calculator uses the same formulas as API billing.

per call$0.107
per month · 1,000$106.67

$0.107 per 1K characters · minimum per call: $0.00556

Prices from GET /v1/models in US dollars at the internal rate. Failed generations are not charged.

  1. Get a keyin the API dashboard
  2. Top up the walletby card or invoice
  3. Make the callPOST /v1/audio/speech, model eleven_v3
First request

Connect the ElevenLabs API: a key, a base URL and an MP3 file

An OpenAI audio.speech request: POST /v1/audio/speech with model, voice and input — the response is an MP3 file, and the charge and balance arrive in headers. The OpenAI SDK works with a swapped base URL and key; voices are listed by GET /v1/audio/voices.

Base URL
https://zerocoder.com/api/v1

Key — in the x-api-key or Authorization: Bearer header

Model in the samples — eleven_v3; any model from the table works

from openai import OpenAI client = OpenAI(    base_url="https://zerocoder.com/api/v1",    api_key="zc-sk-…",) r = client.audio.speech.create(    model="eleven_v3",    voice="Liam",    input="Hello! This is a test of text to speech.",)r.write_to_file("speech.mp3")  # MP3 only
import fs from "node:fs";import OpenAI from "openai"; const client = new OpenAI({  baseURL: "https://zerocoder.com/api/v1",  apiKey: "zc-sk-…",}); const r = await client.audio.speech.create({  model: "eleven_v3",  voice: "Liam",  input: "Hello! This is a test of text to speech.",});fs.writeFileSync("speech.mp3", Buffer.from(await r.arrayBuffer()));
curl https://zerocoder.com/api/v1/audio/speech \  -H "authorization: Bearer zc-sk-…" \  -H "content-type: application/json" \  -d '{"model": "eleven_v3", "voice": "Liam",       "input": "Hello! This is a test of text to speech."}' \  --output speech.mp3 -D -# body: MP3; headers: x-billing-charged-rub, x-billing-balance-rub# options: "speed": 0.7–1.2, "language_code": "ru",#          "stability" / "similarity_boost": 0–1# voices: curl https://zerocoder.com/api/v1/audio/voices -H "authorization: Bearer zc-sk-…"

How to connect the ElevenLabs API: first request in 5 minutes

From a key to production — six steps based on the real /api/v1 contracts. Each step links to the relevant docs section.

  1. 1

    Get a key in your account

    Sign up, open the API section of your account, top up the balance and create a zc-sk-… key. One key unlocks ElevenLabs and every other model in the catalogue.

    Read more →
  2. 2

    Send the first request

    POST /v1/audio/speech with model, voice and input — the OpenAI audio.speech shape: the response is an MP3 file voiced by ElevenLabs, and the charge and balance come in the response headers.

    Read more →
  3. 3

    Pick a voice and language

    GET /v1/audio/voices returns the voice list with ids; known voices can be passed by name (Liam, Callum, Laura, Brian). For single-language text pass language_code, set the pace with speed from 0.7 to 1.2. Save the response straight to an .mp3 file.

    Read more →
  4. 4

    Handle limits and errors

    30 requests per minute per key: on 429 wait and retry with a growing pause; 402 — top up the balance; 400 — check model against GET /v1/models. Failed generations are not charged, so retrying is safe.

    Read more →
  5. 5

    Watch the budget

    GET /v1/balance returns the balance and 30-day spend; every call's price comes back in the response — write it to your logs and set an alert threshold in your own monitoring.

    Read more →
  6. 6

    Ship to production

    Keep the key in server secrets, never in the frontend. For high ElevenLabs volumes contact us — the limit is raised individually and companies can pay by invoice. Check the observed stability on the status page.

    Read more →

No code

Any tool that can make an HTTP request can call our API: one POST with the x-api-key header.
HTTP Requestn8n

HTTP Request node: POST to the /api/v1 endpoint, x-api-key header and a JSON body built from workflow fields. For video add a Wait node and a second HTTP Request on GET ?id= in a loop until completed.

HTTP → Make a requestMake

HTTP “Make a request” module: POST, Body type JSON, x-api-key header. The response is parsed automatically — the image url or the answer text flows into the next modules.

Webhooks by ZapierZapier

Webhooks by Zapier → Custom Request action: POST, Data — JSON with model and prompt, Headers — x-api-key. Response fields are available to the following Zap steps.

Apps ScriptGoogle Sheets

In Apps Script use UrlFetchApp.fetch with method post, contentType application/json and a payload from the cells: prompts in one column, results written to the next one.

any bot frameworkTelegram bot

A bot on aiogram, grammY or Telegraf calls the same HTTP API: user message → model request → reply in the chat. For video — poll the status and send the file from the finished URL.

OpenAI-compatible base URLPython / Node SDK

For text models the official OpenAI and Anthropic SDKs work with a swapped base URL and our key — your application code stays the same. Images and video are a plain HTTP call from any language.

For business

We'll help bring AI into your business

More than a key: we help wire ElevenLabs and other models into your workflows — from audit to production, with invoice payment.

  • Process auditWe find where AI pays off in your workflows: support, sales, content, documents — and name specific scenarios and models.
  • Integration into CRM, website, Telegram, n8nWired through our API or ready no-code scenarios; one key and a shared balance for every model.
  • Payment by invoiceCompanies get an invoice for bank transfer, accounting documents and a top-up of the API balance.
  • Support and limitsHelp with prompts and architecture, request limits raised individually for your load.

Inputs, limits and refunds

  • POST /v1/audio/speech in the OpenAI audio.speech shape: model, input, voice (id or name from GET /v1/audio/voices)
  • input length per call: up to 5000 characters on v3, up to 10,000 on the other models
  • MP3 output only; the charge and balance come in the x-billing-charged-rub and x-billing-balance-rub headers
  • speed 0.7–1.2, stability and similarity_boost 0–1, language_code — a language code
  • Priced per 1000 input characters with a per-call minimum; no audio — refunded in the same request
  • 30 requests per minute per key (all endpoints combined)

Error responses and refunds

# 401 {"error":{"type":"authentication_error","message":"…"}}
# 402 {"error":{"type":"billing_error","message":"Not enough API balance: this call costs … (… characters × … per 1000) …"}}
# 429 {"error":{"type":"rate_limit_error","message":"…"}}   ← 30 requests/min per key
# 400 {"error":{"type":"invalid_request_error","message":"Unknown speech model \"…\". Use one of: …"}}
# 400 {"error":{"type":"invalid_request_error","message":"input is too long: … characters, … accepts up to …"}}   ← before any charge
# 400 {"error":{"type":"invalid_request_error","message":"Unknown voice \"…\". See GET /v1/audio/voices."}}
# 503 {"error":{"type":"model_unavailable","message":"…"}} + retry-after   ← no audio → the charge is refunded

Observed API stability and speech refunds

Numbers come from the public /status summary: the share of successful requests over a period for the whole API and for the category as a whole (the summary has no per-model breakdown), no SLA promises. Failed generations are not charged, so retrying is safe.

Developer APIoperational

—now (2 h window)
74.5%last 30 days
74%last 90 days

Refunds and charges

  • Charged at request time by input characters, never below the per-call minimum
  • No audio produced — refunded in the same request (503 or 400 with the reason)
  • Invalid parameters (voice, text length, format) — rejected before any charge

Tracking since Aug 8, 2026.

Use cases

1

Voicing articles, news and posts for podcasts and audio versions of a site

2

Voice-over for clips, Reels and presentations without a recording studio

3

Voice replies for Telegram bots and assistants

4

Audio lessons and narration for online courses

5

Narration for product cards and ads

6

Bulk voicing of notifications, prompts and IVR flows

Prompting tips

  • Use ElevenLabs v3 for expressive speech, Multilingual v2 for long texts and Turbo for quick, cheap phrases.
  • Pick a voice from GET /v1/audio/voices and pin it in code: Liam, Callum, Laura, Brian and more.
  • Pass language_code when the text is in one language — pronunciation is steadier.
  • Split long text into paragraphs under the model limit and join the MP3 files on your side.
  • Use punctuation and spell numbers out where pronunciation matters.
  • Change the pace with speed from 0.7 to 1.2 and voice steadiness with stability.

Ready-made prompts for ElevenLabs

Copy the prompt and the parameters into the request body — the fields are named exactly as in the /api/v1 contract. Replace the angle-bracket placeholders with your material.

Audio version of an article

<an article paragraph within the model limit>
model: eleven_multilingual_v2voice: Brianlanguage_code: en

Voice a long article paragraph by paragraph and join the files.

Expressive ad spot

Tired of waiting? Our new service delivers in an hour — try it today!
model: eleven_v3voice: Lauraspeed: 1.05

Bot voice reply

<a short bot reply to the user>
model: eleven_v4_turbovoice: Liam

Turbo models are faster and cheaper — good for short lines.

A lesson at a calm pace

<lesson text>
model: eleven_multilingual_v2voice: Callumspeed: 0.9stability: 0.7

Notifications in bulk

Your order is out for delivery. The courier will call an hour before arrival.
model: eleven_turbo_v2_5voice: Lauralanguage_code: en

Who the ElevenLabs API is for

Industries where this kind of generation becomes part of the workflow rather than an experiment.

Media & blogsAudio versions of articles and news — ElevenLabs voices text straight from your CMS.
EdTechNarrated lessons, vocabularies and exercises in many languages.
MarketingVoice-over for clips, Reels and ads without a recording studio.
Bots & assistantsVoice replies in Telegram bots and apps.
E-commerceAudio product descriptions and promo narration for marketplaces.
Call centresIVR prompts and notifications in bulk — ElevenLabs, one request per line.

FAQ

How much does voicing text with the ElevenLabs API cost?

ElevenLabs is billed per character: each model has its own price per 1000 characters of input text, shown in the table above and in GET /v1/models, plus a per-call minimum. The amount is charged at request time, and the actual charge and remaining balance come back in the response headers.

How do I turn text into speech with the ElevenLabs API from Python?

Use the OpenAI SDK: base_url zerocoder.com/api/v1, a zc-sk-… key, then call audio.speech with model, voice and input and save the response as an MP3 file. Without the SDK, POST /v1/audio/speech with the same JSON body via requests or curl. Samples are in the “First request” block.

Which ElevenLabs models are available and how do they differ?

ElevenLabs v3 gives the most expressive speech, Multilingual v2 steady narration of long texts in many languages, and Turbo 2.5 and v4 Turbo are fast, cheaper models for short phrases and bulk voicing. Exact ids and prices are in the table above.

Which voices and languages does the ElevenLabs API support?

The ElevenLabs API offers 67 library voices; GET /v1/audio/voices returns the full list with ids, and known voices can be passed by name — Liam (default), Callum, Laura, Brian. The models speak English, Russian and many other languages; set the language with language_code.

What text length and format limits does the ElevenLabs API have?

Per call ElevenLabs v3 takes up to 5000 characters and the other models up to 10,000; split longer text. The output is MP3 only. Set the pace with speed from 0.7 to 1.2, and voice stability and similarity with stability and similarity_boost from 0 to 1. The shared key limit is 30 requests per minute.

Can an organisation pay for ElevenLabs voicing by invoice?

Yes. Request an invoice in the API dashboard and pay from the company account; the credited balance is spent on ElevenLabs and every other model with the same key. Card top-ups are instant, and accounting documents are available on request. No ElevenLabs account needed.

Is money refunded if ElevenLabs returns no audio?

Yes. If the provider fails to voice the text, the charged amount goes back to the balance automatically in the same request, and the API answers 503 or 400 with the reason. Invalid parameters — an unknown voice, text that is too long, an unsupported format — are rejected before any charge.

Can the ElevenLabs API clone voices or stream audio?

No. The API voices text with ready library voices and returns a complete MP3 file; voice cloning, speech recognition and streaming audio output are not supported. For long material, voice the text in parts and join the files on your side.

AI API for your product

One key for every model, pay per call