ElevenLabs vs OpenAI TTS: Pricing, Limits and Which to Pick - NextGenBeing
Back to discoveries

ElevenLabs vs OpenAI TTS: Pricing, Limits and Which to Pick

ElevenLabs vs OpenAI TTS compared on official prices per 1M characters, request and concurrency limits, with a clear rule for which to pick.

Web Development 8 min read
Bekzod Erkinov

Bekzod Erkinov

Oct 21, 2026 • 0 views
Size:
Height:
8 min read 2,777 words Focus mode: Eye care:

Listen to Article

Loading...
0:00 / 0:00
0:00 0:00
Low High
0% 100%
⏸ Paused ▶️ Now playing... Ready to play ✓ Finished
Table of contents · 9 sections

ElevenLabs vs OpenAI TTS: Pricing, Limits and Which to Pick

The two TTS names everyone shortlists price in different units, cap requests differently and gate different things. Here are the published numbers in one unit.

Some links in this post are affiliate links; see our disclosure.

Quick verdict

Decision rule, using only figures from the vendors' pages:

  • Pick OpenAI tts-1 if your volume is small and a stock voice with English-first narration is good enough. At 250,000 characters a month the list rate is $3.75 on tts-1, versus $10 (Flash/Turbo) to $20 (v4) at ElevenLabs list rates. The smallest ElevenLabs plan that covers that volume is Creator at $22, which is the minimum you would actually pay.
  • Pick ElevenLabs if you need single requests longer than OpenAI's 4,096 characters (ElevenLabs lists 10,000 on v4 and Multilingual v2, 40,000 on Flash v2.5), you need the language coverage in its models doc (Flash v2.5: 32 languages, v4 Turbo: 90+), or voice is the product itself.
  • Skip both if you only need accessibility read-aloud or internal prototypes. The browser's built-in speech synthesis or an open-source local model costs nothing, and I haven't benchmarked those here.

The cost gap, with tiers named. ElevenLabs Flash/Turbo ($40 per 1M characters) versus OpenAI tts-1 ($15) is about 2.7x. ElevenLabs v4 ($80) versus tts-1-hd ($30) is also about 2.7x. These are list-price pairings, not proven equal-quality tiers; I didn't listen to either. gpt-4o-mini-tts is billed per token with no per-character figure, so "OpenAI is cheaper" is only shown here for tts-1 and tts-1-hd.

What I ran, and what I didn't

I read the vendor pricing pages, model docs and API reference on 2026-10-17. I did not call either API (no paid keys), so I make no quality claims. The one thing I ran is a small Python script that applies the published rates to a few monthly volumes (below).

Untested: this request shape comes from the OpenAI speech reference; I did not run it against the live API.

curl https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o-mini-tts","input":"Hello.","voice":"marin","instructions":"Speak calmly."}' \
  --output hello.mp3

Pricing in the same unit

OpenAI's pricing page lists tts-1 at "$15.00 / 1M characters" and tts-1-hd at "$30.00 / 1M characters". gpt-4o-mini-tts is billed per token ($0.60 per 1M text input tokens, $12.00 per 1M audio output tokens), so I can't convert it to characters without inventing a speech-rate assumption, and I won't. Estimate it with a sample of your own text.

ElevenLabs' API pricing page quotes per 1K characters. Converted to per 1M (multiply by 1,000):

Model Price per 1M characters Source unit
OpenAI tts-1 $15.00 $15.00 / 1M chars
OpenAI tts-1-hd $30.00 $30.00 / 1M chars
ElevenLabs Flash / Turbo $40 $0.04 / 1K chars
ElevenLabs v4 Turbo, v3 Conversational $40 $0.04 / 1K chars
ElevenLabs v4, v3, Multilingual v2 $80 $0.08 / 1K chars

Subscription allowances come out at the same rate (Starter $6 for 75,000 v4 characters is $80 per 1M), so the subscription doesn't discount the per-character cost. It buys a bundle and raises limits.

Feature comparison

Every cell is from the linked vendor page; "not found" means I did not find it in the pages I read, not that it doesn't exist.

OpenAI ElevenLabs
Max characters per request 4,096 (API reference) 10,000 (v4, Multilingual v2); 5,000 (v3); 40,000 (Flash v2.5) (models doc)
Languages About 57, "Whisper-like" (guide) 32 (Flash v2.5); 90+ (v4 Turbo) (models doc)
Streaming Yes, chunked transfer (guide) Not found in my notes
Tone / instructions instructions string on gpt-4o-mini-tts only; ignored on tts-1/tts-1-hd Not found in my notes
Voice cloning Custom voices from a consent recording (guide) Instant cloning listed on Starter; professional cloning on Creator and up (pricing page)
Vendor-stated latency None found for TTS Flash ~75ms, v4 Turbo ~100ms (models doc)
Commercial licence Not found Listed on Starter and up (pricing page)
API access by plan Pay as you go Pro lists "44.1kHz PCM audio output via API"; the page did not state API access for lower plans. Unverified, so check before you buy
Annual price n/a Not shown on the pricing page's plan cards; its FAQ reportedly equates annual billing to ten times the monthly price (so $60 / $220 / $990 / $2,990 / $9,900, as read through a page-fetch tool). Unverified

What that looks like at real volumes

The same arithmetic at five monthly volumes, plus the smallest ElevenLabs plan whose allowance covers each one, for v4 characters and for Flash/Turbo (whose allowance is double). Plan prices are the monthly-billing prices from the plan table below.

import math
# (name, monthly $, v4 chars included); Flash/Turbo allowance is double
plans = [("Free",0,10_000),("Starter",6,75_000),("Creator",22,275_000),
         ("Pro",99,1_238_000),("Scale",299,3_738_000),("Business",990,12_375_000)]
def el_plan(chars, mult=1):
    for n,p,c in plans:
        if chars <= c*mult: return f"{n} ${p}"
    return "above Business"
print(f"{'chars/mo':>11} {'tts-1':>8} {'tts-1-hd':>9} {'EL v4':>9} {'EL Flash':>9}  {'plan (v4)':<16}plan (Flash)")
for ch in [50_000, 250_000, 1_000_000, 5_000_000, 20_000_000]:
    print(f"{ch:>11,} {ch*15/1e6:>8.2f} {ch*30/1e6:>9.2f} {ch*80/1e6:>9.2f} {ch*40/1e6:>9.2f}  {el_plan(ch):<16}{el_plan(ch,2)}")
for doc in [3_000, 50_000, 400_000]:
    print(f"{doc:,}-char doc: OpenAI calls >= {math.ceil(doc/4096)}, ElevenLabs v4 (10k) >= {math.ceil(doc/10_000)}, Flash v2.5 (40k) >= {math.ceil(doc/40_000)}")

Output, produced by executing the script above with python -I cost.py (dollar columns are list-rate cost per month):

   chars/mo    tts-1  tts-1-hd     EL v4  EL Flash  plan (v4)       plan (Flash)
     50,000     0.75      1.50      4.00      2.00  Starter $6      Starter $6
    250,000     3.75      7.50     20.00     10.00  Creator $22     Creator $22
  1,000,000    15.00     30.00     80.00     40.00  Pro $99         Pro $99
  5,000,000    75.00    150.00    400.00    200.00  Business $990   Scale $299
 20,000,000   300.00    600.00   1600.00    800.00  above Business  Business $990
3,000-char doc: OpenAI calls >= 1, ElevenLabs v4 (10k) >= 1, Flash v2.5 (40k) >= 1
50,000-char doc: OpenAI calls >= 13, ElevenLabs v4 (10k) >= 5, Flash v2.5 (40k) >= 2
400,000-char doc: OpenAI calls >= 98, ElevenLabs v4 (10k) >= 40, Flash v2.5 (40k) >= 10

At low volume the bill is small either way. At 50,000 characters a month, OpenAI is $0.75 and ElevenLabs is $6 because you must buy the Starter bundle.

ElevenLabs bundles waste money in the gaps. A million v4 characters costs $80 at list rate, but the smallest plan that covers it is Pro at $99, because Creator stops at 275,000. At 5M characters the list rate says $400 and the v4 plan says $990. Flash/Turbo helps: 5M Flash characters fit Scale at $299 rather than Business at $990.

OpenAI scales linearly. There is no bundle step because there is no subscription; 20M characters is $300 on tts-1. In my table that volume is above the Business v4 allowance, and the pricing pages I read give no ElevenLabs TTS overage rate.

Plan table (read 2026-10-17)

ElevenLabs sources: pricing and the concurrency help article. All ElevenLabs prices below are monthly billing; the API pricing page shows no separate TTS overage rate. "Characters" are v4 characters; the Flash/Turbo figures are in brackets. I did not re-check the help-article concurrency figures against a live account.

Plan Monthly price Characters (Flash/Turbo) Concurrency (Flash/Turbo)
ElevenLabs Free $0 10,000 (20,000) 2 (4)
ElevenLabs Starter $6 standard; $1 first month 75,000 (150,000) 3 (6)
ElevenLabs Creator $22 standard; $11 first month 275,000 (550,000) 5 (10)
ElevenLabs Pro $99 1,238,000 (2,475,000) 10 (20)
ElevenLabs Scale $299 3,738,000 (7,475,000) 15 (30)
ElevenLabs Business $990 12,375,000 (24,750,000) 15 (30)
OpenAI API Pay as you go, no subscription 4,096 chars per request gpt-4o-mini-tts Build tier: 2,000 RPM / 150,000 TPM

Don't compare the last column across rows. ElevenLabs concurrency counts requests in flight at the same moment. OpenAI's 2,000 RPM counts requests started per minute, with a separate 150,000 tokens-per-minute cap, so the two numbers are different units and neither says which vendor handles more load. OpenAI's other rate-limit tiers for gpt-4o-mini-tts are Launch (10,000 RPM / 2,000,000 TPM) and Grow (10,000 RPM / 8,000,000 TPM), per its model page. I found no published rate limits for tts-1 or tts-1-hd.

The first-month prices are promotional; the cost script uses the standard $6 and $22. Business has the same concurrency as Scale, so the extra $691 buys allowance, not parallelism.

Pros and cons

ElevenLabs

  • Pros: up to 40,000 characters per request (Flash v2.5), 10,000 on v4 and Multilingual v2, but only 5,000 on v3, which is listed at $80 per 1M; 32 languages on Flash v2.5 and 90+ on v4 Turbo per the models doc; Flash stated at ~75ms and v4 Turbo at ~100ms, per that doc; a startup grant of 12 months and 33M characters is listed on the pricing page.
  • Cons: $40-$80 per 1M characters, about 2.7x the comparable OpenAI tier; capacity is gated by concurrency (Scale and Business both top out at 15, or 30 for Flash/Turbo); bundle steps mean you often pay above the list rate; Flash v2 is English only. Skip it if your volume is low and English narration is enough: you pay the 2.7x premium for capabilities you won't use.

OpenAI TTS

  • Pros: tts-1 at $15.00 and tts-1-hd at $30.00 per 1M characters; no subscription; gpt-4o-mini-tts takes an instructions string for tone; speed from 0.25 to 4.0; six output formats (mp3, opus, aac, flac, wav, pcm) and streaming via chunked transfer. The API reference lists 13 built-in voices, though the intro of the guide says 11; I did not reconcile the two, so check the reference for the current list.
  • Cons: 4,096 characters per call, so a 400,000-character book is at least 98 calls (a lower bound; each join is a place prosody could reset, which I haven't measured); instructions is ignored on tts-1/tts-1-hd; the guide points to Whisper-like language support (about 57 languages) and I didn't verify how well each is spoken; gpt-4o-mini-tts is token-billed, so cost needs a sample of your text; the guide requires telling end users the voice is AI-generated.

Voice quality was not tested by me for either vendor.

Who should buy

Buy ElevenLabs when long inputs, language coverage or a voice-led product is the feature customers pay for, and the 2.7x character cost is a small share of your revenue per user. Start on the free tier to audition voices; 10,000 characters is not much.

Buy OpenAI TTS when speech is a utility (notifications, read-aloud, voice replies in an app that already uses OpenAI) and cost per character dominates. Use gpt-4o-mini-tts if you need tone control via instructions; use tts-1 if you just want cheap.

Worth a look: ElevenLabs suits teams that need long inputs, many languages or voice-led products. Plan fit from the table above: Creator ($22) for ~250k characters a month, Flash on Scale ($299) for 5M. Who should skip it: anyone with low-volume, English-first needs, since the same text costs about 2.7x more than OpenAI tts-1 at list price (Flash/Turbo $40 vs $15 per 1M). Annual pricing and API gating are unverified in the table above; check the live page.

Related: the same break-even method applied to automation tools is in n8n vs Zapier: Self-Host n8n in Docker and Find the Break-Even.

What to do next

  1. Take 20 representative lines of your real text and run them through both APIs yourself; judge by ear, since I didn't.
  2. Compute your monthly characters, then price them at $15/$30 per 1M (OpenAI) and $40/$80 per 1M (ElevenLabs), and check which plan bundle you land in.
  3. Check peak simultaneous requests against the concurrency column before picking an ElevenLabs plan.
  4. If you use gpt-4o-mini-tts, measure tokens on a sample to get your real cost.
  5. Confirm annual pricing, overage and API gating on the live ElevenLabs page before committing.
Bekzod Erkinov

Bekzod Erkinov

Author

Founder of NextGenBeing. Software engineer working with Laravel, Python, and cloud infrastructure. Writes about patterns that actually hold up in production. Based in Tashkent, Uzbekistan.

Free guide

Get the AI-Assisted Developer's Field Guide

The workflow, prompts, and tools I use to ship faster with AI — free when you subscribe. Plus new deep-dives in your inbox. No spam, unsubscribe anytime.

Comments (0)

Please log in to leave a comment.

Log In

Related Articles

Don't miss the next deep dive

Get one well-researched tutorial in your inbox each week. No spam, unsubscribe anytime.