TL;DR / Key Takeaways
- Create a key at elevenlabs.io/app/settings/api-keys and send it in the xi-api-key header.
- Keys can be limited by endpoint scope, credit quota, IP allowlist and expiry.
- Text to speech costs $0.08 per 1,000 characters (v4, v3, Multilingual v2) or $0.04 (Turbo, Flash), on every plan.
- Concurrency is limited per plan: 2 Multilingual v2 requests on Free up to 15 on Scale and Business.
- The Free plan includes 10,000 v4 characters of API speech a month.
Short answer: to get an ElevenLabs API key, sign in, open your API keys settings, create a key and copy it, then send it in the xi-api-key header. API text to speech costs $0.08 per 1,000 characters on Eleven v4, v3 and Multilingual v2, and $0.04 on the Turbo and Flash models, at the same rate on every plan. The Free plan includes 10,000 v4 characters a month.
How we checked: the setup steps come from ElevenLabs' quickstart, API authentication and API keys docs; prices and limits from the API pricing page and the models documentation. All checked on elevenlabs.io on November 1, 2026. Some links are affiliate links: if you sign up, ElevenLabs may pay us a commission at no cost to you.
How to create an ElevenLabs API key
- 1. Create an account or sign in at ElevenLabs. A Free account is enough to get a key.
- 2. Open the API keys page. Go to your personal API keys settings (also linked from the Developers section of the dashboard).
- 3. Create a key. Give it a name you will recognise later.
- 4. Set restrictions (optional). Limit which endpoints it can call, set a credit quota, add an IP allowlist, or choose an expiry from 15 minutes to 30 days (the default is never).
- 5. Copy and store it as a secret, for example
ELEVENLABS_API_KEY=...in an.envfile. Never put it in browser or app code. - 6. Install an SDK:
pip install elevenlabsfor Python ornpm install @elevenlabs/elevenlabs-jsfor JavaScript. - 7. Make a test call.
curl https://api.elevenlabs.io/v1/models -H "xi-api-key: $ELEVENLABS_API_KEY"returns the models your key can use.
ElevenLabs also documents a shortcut for coding agents: running npx -y @elevenlabs/cli@latest onboard init signs you in through the browser, creates a key and saves it to your project's env file.
API key rules worth knowing
- Two key types. User keys belong to a person and need a Full Seat in the workspace. Service account keys belong to the workspace and suit production backends; they are available on multi-seat plans and do not expire.
- Restrictions. Every key can be scoped to specific endpoints, given a credit cap and locked to up to 100 public IP addresses or ranges. Requests from other IPs get a 403 error.
- Expiry. User keys can expire automatically; an expired key returns 401.
- Leaks. ElevenLabs takes part in GitHub's secret scanning program. A key pushed to a public repository is disabled automatically (by default on non-Enterprise plans) and must be rotated.
- Client-side apps. For browser connections ElevenLabs offers short-lived single-use tokens so the real key never leaves your server.
ElevenLabs API pricing by model
| Model | Price per 1,000 characters | Max characters per request | Languages |
|---|---|---|---|
| Eleven v4 | $0.08 | 10,000 | 90+ |
| Eleven v4 Turbo | $0.04 | not stated | 90+ |
| Eleven v3 | $0.08 | 5,000 | 70+ |
| Eleven v3 Conversational | $0.04 | not stated | 70+ |
| Multilingual v2 | $0.08 | 10,000 | 29 |
| Flash / Turbo (v2.5) | $0.04 | 40,000 | 32 |
API usage is billed in US dollars, not credits. Your plan fee works as included API spend, so the included characters are the plan price divided by the model rate:
| Plan | Price | v4 / v3 / v2 characters | Turbo / Flash characters | Scribe v2 hours |
|---|---|---|---|---|
| Free | $0 | 10,000 | 20,000 | 4.5 |
| Starter | $6 | 75,000 | 150,000 | 27 |
| Creator | $22 | 275,000 | 550,000 | 100 |
| Pro | $99 | 1,238,000 | 2,475,000 | 450 |
| Scale | $299 | 3,738,000 | 7,475,000 | 1,359 |
| Business | $990 | 12,375,000 | 24,750,000 | 4,500 |
Other API products: Scribe v2 transcription $0.22 per audio hour ($0.39 Realtime), music $0.15 a minute, sound effects, Voice Changer and Voice Isolator $0.12 a minute, Dubbing v1 $0.33 a minute with watermark ($0.50 without), Dubbing v2 $2.20 a minute. Past your plan's allowance, new accounts prepay with Pay As You Go top-ups from $5. You can track usage in the Analytics tab of the Developers dashboard.
Rate limits and concurrency per plan
ElevenLabs limits how many requests run at the same time, not how many you send per minute. Requests over the limit wait in a queue, which ElevenLabs says typically adds about 50ms.
| Plan | Multilingual v2 | Flash | Speech to text | Realtime STT | Music |
|---|---|---|---|---|---|
| Free | 2 | 4 | 8 | 6 | 0 |
| Starter | 3 | 6 | 12 | 9 | 2 |
| Creator | 5 | 10 | 20 | 15 | 2 |
| Pro | 10 | 20 | 40 | 30 | 2 |
| Scale | 15 | 30 | 60 | 45 | 5 |
| Business | 15 | 30 | 60 | 45 | 5 |
| Enterprise | Elevated | Elevated | Elevated | Elevated | Highest |
The docs note that a concurrency limit of 5 can typically serve around 100 simultaneous audio streams, because each request is short. Over the text to speech WebSocket, only the time spent generating audio counts toward the limit. Responses carry current-concurrent-requests and maximum-concurrent-requests headers so you can monitor it. One caveat: the pricing page's plan comparison lists 25 concurrent requests for Business, while the docs table says 15.
Character limits per request
Each text to speech request has a maximum length: 10,000 characters on Eleven v4 and Multilingual v2, 5,000 on v3, 40,000 on Flash v2.5 and 30,000 on Flash v2. Split longer scripts into chunks.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Which plan for API work
- Prototyping: Free, with 10,000 v4 characters and 2 concurrent requests.
- A small app or automation: Starter ($6) for a commercial license and 75,000 v4 characters.
- Production with real traffic: Pro or Scale, mainly for concurrency (10 to 15 Multilingual v2 requests) and higher output quality.
If you are comparing APIs for real-time voice, Inworld TTS is another developer-focused option. Our ElevenLabs pricing guide covers the app side of each plan.
Frequently asked questions
How do I get an ElevenLabs API key?
Sign in, open your API keys settings (elevenlabs.io/app/settings/api-keys, also reached through the Developers section of the dashboard), click to create a key, name it, set any restrictions, and copy it. Store it as a secret, for example as ELEVENLABS_API_KEY in an .env file.
Is the ElevenLabs API free?
There is a free allowance: the Free plan includes 10,000 characters of Eleven v4 speech (20,000 on Turbo and Flash models) and about 4.5 hours of Scribe v2 transcription. Free-plan output cannot be used commercially.
How much does the ElevenLabs API cost?
Text to speech costs $0.08 per 1,000 characters on v4, v3 and Multilingual v2, and $0.04 on v4 Turbo, v3 Conversational and Flash/Turbo. Speech to text is $0.22 per audio hour for Scribe v2 and $0.39 for Scribe v2 Realtime.
What are the ElevenLabs API rate limits?
ElevenLabs limits concurrent requests rather than requests per minute. Multilingual v2 allows 2 at once on Free, 3 on Starter, 5 on Creator, 10 on Pro and 15 on Scale and Business; Flash allows twice that. Requests above the limit are queued.
Where do I put the API key in a request?
In an HTTP header named xi-api-key. The official Python (elevenlabs) and JavaScript (@elevenlabs/elevenlabs-js) SDKs take it as api_key or apiKey when you create the client.
What happens if my API key leaks?
ElevenLabs is in GitHub's secret scanning program, so a key committed to a public repository is disabled automatically on most plans. Rotate it: create a new key, switch your app over, then delete the old one.

