What looks wrong?

We say this article was researched and checked. If it is wrong, we want the counter-example.

Skip to content
Marielos Chévez

Nov 4, 202614 min read

According to Amazon Web Services, Polly bills pay-as-you-go per million characters, and the rate depends on the engine, which matters if you're wiring it into a workflow builder like Activepieces. Standard is $4, Neural is $16, Generative is $30 and Long-form is $100.

Quote a client without naming the engine and you've quoted nothing, because the spread from cheapest to dearest is 25x.

Per the AWS Polly pricing page, Standard is $4 per million characters, so it sets the floor. Neural at $16 is four times that, and Generative at $30 is 7.5 times, which means your bill multiplies with engine choice.

Coin piles of rising height next to a pricing page

At $100, Long-form is 25 times Standard. That's the line item a shared account hides when one team's audiobook narration rides on the same bill as another's notification voice, so neither team can attribute costs to their own work.

The free allowance never covers the expensive engines in any useful volume.

Engine Price per 1M characters Free tier Limits Check date
Standard $4 5M characters a month Cheapest; the 1x baseline Nov 2026
Neural $16 1M characters for 12 months 4x Standard Nov 2026
Long-form $100 500K characters for 12 months 25x Standard Nov 2026
Generative $30 100K characters for 12 months 7.5x Standard Nov 2026

Pick the engine per job, not per account, and put the engine name on the invoice line. Otherwise the cheap workloads quietly subsidize the Long-form ones.

What counts as a billable character

Because you pay for the characters you send, every request is billed again even when the text is identical to one sent yesterday.

A greeting synthesized 10,000 times is billed 10,000 times, and at Long-form rates that repetition is the waste to remove, because caching the audio once costs a single synthesis.

The orchestration around that cache should not add a second meter: Activepieces charges 1 credit per flow run however many steps it has, so a ten-step flow with a cache check, a Polly call, a storage step and a write-back costs the same as a two-step shortcut.

Unlimited flows on every plan, including free, means splitting the work into small, reliable steps is never what raises the bill.

Amazon Polly free tier allowances and expiry

Next to the rates above, the free allowances are small. Standard's 5M characters a month is the only one that renews, while Neural's 1M and Long-form's 500K run for 12 months.

At the $100 rate, half a million Long-form characters is worth $50, so it covers a pilot, not a retainer. Budget from the paid rate, and treat the free tier as a one-off credit that ends on a known date.

What Polly costs at realistic monthly volumes

With the free tier set to zero and everything priced at the paid rate, Polly's monthly bill runs from 12 cents to $500 depending on workload and engine, so the actual cost can be computed from character volume.

Monthly bill for a 5M-character IVR on each Polly engine

The table uses $4, $16 and $100 per million characters for Standard, Neural and Long-form, and shows that the engine barely matters until volume arrives, making engine choice a decision you can defer.

Table sheet with blog pages and coins in three columns

Workload Characters per month Standard ($4/M) Neural ($16/M) Long-form ($100/M)
Blog narration 30,000 (4 posts × 7,500) 0.03 × 4 = $0.12 0.03 × 16 = $0.48 0.03 × 100 = $3.00
E-learning library 500,000 0.5 × 4 = $2 0.5 × 16 = $8 0.5 × 100 = $50
IVR 5,000,000 5 × 4 = $20 5 × 16 = $80 5 × 100 = $500

On the IVR row, the figures match AWS's published pricing: $20, $80 or $500 for the same 5M characters, confirming the advertised rates hold up in practice. The last row is the one most worth arguing about on an invoice.

Even Long-form costs $3.00 on four posts of 7,500 characters, which is 30,000 characters a month.

That means no client will notice the difference between $0.12 and $3.00, and you should pick the engine on sound quality alone. Don't spend an hour on cost modelling for a workload this small.

Polly pricing for e-learning and audiobooks

$50 on Long-form is still small, but it's 25 times the Standard figure, and it recurs if you regenerate the whole library every month, turning it into a significant recurring cost.

A 500,000-character library costs $2 on Standard and $8 on Neural, which means you can use this to estimate costs at other volumes.

Generate each lesson once, store the audio file, and serve it from storage. Then you pay for narration once, not on every playback or every re-render.

Polly pricing for IVR and chatbot traffic

At five million characters a month, the bill is $20 on Standard, $80 on Neural and $500 on Long-form.

Choose Long-form for a phone menu and you add $480 a month over Standard, or $5,760 a year, for audio that callers hear in short fragments.

On a shared account, that gap quietly lands on whoever else is paying the AWS bill unless you bill it back to the IVR client.

Choose Long-form for a phone menu and you add $480 a month over Standard, or $5,760 a year, for audio that callers hear in short fragments.

Because most IVR text is repetitive prompts such as greetings, menu options and confirmations, you can cache those, and only genuinely dynamic sentences reach Polly.

The same caller traffic can then cost a fraction of the table's figure, and that saving beats any plan or free tier.

If you are running this arithmetic for your own team, see what the same workload costs on Activepieces.

Hidden Polly costs and limits people hit

Whether a run costs what you quoted the client depends on five limits and side charges, not on the per-character rate alone. Each has a fix, and most of them come down to not paying twice.

These five are where a quote most often drifts from the bill, so check each against your own traffic before pricing:

  • Synchronous requests cap at 3,000 billed characters and 6,000 total, with markup tags counting toward the total but not the bill, so long scripts fail unless you split them at sentence boundaries.
  • Asynchronous tasks cap at 100,000 characters, so anything longer needs chunking before submission, or the job is rejected after you've queued it.
  • Regenerating identical text is billed in full each time, so hash the text, voice and engine and serve the stored audio on a match.
  • S3 storage, requests and data transfer sit outside Polly's line item, so set expiry on stored audio and price delivery separately.
  • Not every voice exists in every region, so confirm your voice in the region you run before you commit to it.

Script page cut into strips feeding a speech machine

On a shared account, each of these is easy to absorb silently, which is how one client's retries end up on another client's invoice.

How Polly bills SSML, retries and repeated text

Markup tags are not billed, but they still count toward the total request limit, so heavily tagged text hits the ceiling sooner than its billed length suggests.

Retries are the bigger leak. When a failed downstream step re-submits the same text, you pay for the synthesis again, and so does every "regenerate" button.

Cache by a hash of the text, voice and engine, and tag each cache entry with the client it belongs to, so repeat traffic costs nothing and the spend you do incur is attributable.

Polly request length and rate quotas

Keep synchronous calls for short prompts. Long-form narration belongs in an asynchronous task, which writes its output to S3 rather than returning it to you.

Rate quotas throttle bursts, so queue requests and back off on throttling errors rather than looping retries, because a retry loop is a repeat-billing loop.

If your voice is missing where your workload runs, you either change voice or call across regions, and the second adds latency and transfer. Voice availability by region matters here too.

Surrounding AWS charges: S3, transfer, Lambda

For as long as you keep audio files in S3, they cost storage and request fees. Delivering them to listeners adds transfer charges, which a content delivery network in front can reduce.

If a Lambda function waits on an asynchronous task, you pay for that waiting time, so trigger it from the completion event instead. None of these appear under Polly, so put them on the quote as their own lines.

Amazon Polly versus Google, Azure and ElevenLabs pricing

At $4 per million characters, Polly's cheapest voice ties Google's. On price alone Polly isn't the expensive option, and any quote that lists a rival as cheaper is comparing a different tier.

Two vendors share the floor and the other two sit well above it; the table shows what $100 buys on each provider's cheapest voice.

Provider Cheapest tier Price per 1M characters Characters per $100 Checked
Polly Standard $4 25,000,000 2026-11-04
Google Cloud TTS Standard $4 25,000,000 2026-11-04
Azure Speech Neural $15 6,666,667 2026-11-04
ElevenLabs Flash $40 2,500,000 2026-11-04

Characters $100 buys on each provider's cheapest voice

$100 buys 25,000,000 characters on Polly Standard, according to Benpicks and AWS pricing. Polly's Long-form engine costs 25x that rate, so the cheap figure only holds if the voice you pick is Standard.

Per $100, Google Standard also buys 25,000,000 characters, the same figure Benpicks and AWS pricing gives for Polly. A tie means price won't decide between them for basic voices.

Decide on voice quality and on which cloud the client already pays for, because moving a client across clouds adds a line nobody budgeted.

Microsoft Azure Speech

On Azure's cheapest voice, Neural, $100 buys 6,666,667 characters. That's about a quarter of what Polly Standard buys.

Don't read that as like for like: Azure's floor is a neural voice, while Polly's and Google's floors are Standard. If the client insists on neural quality, compare Azure against Polly's neural tier, not its Standard one, or you'll overstate Polly's advantage.

ElevenLabs pricing compared with Polly

One-tenth of the Polly and Google figure: that is what ElevenLabs Flash buys, at 2,500,000 characters per $100. Charging a client at that rate for volume work means paying ten times the floor price for every character.

Reserve ElevenLabs for the narrow set of deliverables where the voice itself is what the client is buying, and keep bulk narration on a cheaper engine. Otherwise the high-value work quietly subsidizes the routine work.

Automating Polly audio with Activepieces on Monday

Start with a billing audit, then add a cache, then automate so the cheap path is the default and the expensive engine needs a person's sign-off. Caching only pays if every job passes through one place, and a workflow tool is that place.

Monday audit: usage, engine, cache

Run them in order, because each step tells you whether the next is worth the effort. Together they show where the spend sits, what you can cut without a client noticing, and what a repeat request should cost afterward.

  1. Open Cost Explorer, filter to Polly, and group by usage type. That grouping separates Standard, Neural, Generative and Long-form characters, so you see which engine is driving the invoice instead of guessing from the total.
  2. Switch engines wherever quality allows. Read the biggest line item aloud against a cheaper engine. If the client wouldn't hear the difference, the move costs nothing. If they would, that job is a candidate for a higher rate on their invoice.
  3. Add a cache keyed on the text and the voice, with the engine included in the key. The same sentence in a different voice is a different file, and without that rule you'll serve the wrong audio or pay twice for the right one.
  4. Build the workflow below, so every request goes through the cache and Long-form runs only after approval.

If you share one AWS account across clients, the audit also shows who is quietly being subsidized. Tag each job with a client, or the heaviest Long-form user is billed at the average.

A workflow that turns new content into audio

Here, Activepieces' MIT-licensed core runs the same steps every time a row lands, and a self-hosted copy has no per-run fee at all. Its 747 integrations include the storage and spreadsheet tools this flow touches.

The trigger is a new or changed row in your CMS or a spreadsheet. The next step checks the cache by text and voice.

On a miss, a step calls Polly with the engine chosen for that row. The resulting MP3 is stored, and its location is written back to the row so the next request finds it.

When a row asks for Long-form, the flow pauses and waits for a named person to approve before it calls Polly. That approval step carries the cost control.

Standard and Neural rows skip the pause. Nobody spends the expensive rate by accident, and whoever approves can ask who is paying for it.

On Activepieces Cloud, a flow that runs on every row costs 1 credit per run however many steps it has, and the free plan includes 1,000 credits a month.

At that rate a 1,000-row backlog fits inside one month of the free allowance, so the orchestration adds nothing to the retainer.

Frequently asked questions

Is Amazon Polly free to use? Only within a free tier allowance, and only for a limited window. Past that, Polly is pay-as-you-go by characters, and the rate depends on the engine.

If you're pricing a client project, treat the free tier as a testing budget and quote from the paid rate of the engine you'll actually run in production.

Does Amazon Polly charge for SSML tags? No. AWS bills on the text characters you send, and the markup wrapped around them isn't counted. That makes heavy SSML cheap to add.

The catch is that the text inside the tags still bills, so a script rewritten longer to sound better costs more, however tidy the markup is.

Can I use Polly audio commercially?

Yes. AWS lets you use, store, and redistribute the audio Polly generates, including in paid products, subject to the AWS service terms. That's what makes caching legitimate: you can render a line once and serve the file repeatedly.

What you feed in is your responsibility, so a client's licensed script or a third party's text needs its own permission.

Is Polly cheaper than ElevenLabs?

It depends on which Polly engine you compare against. Standard is the low-cost end of the market, and Long-form moves much closer to premium-voice pricing.

Billing differs too: Polly charges per character used, while ElevenLabs sells subscription plans with included allowances. Compare your real monthly volume against both models before quoting a client, because a flat plan can look cheap at high usage and wasteful at low usage.

Does the free tier come back every month?

Don't assume it does. Polly's Neural, Long-form and Generative free allowances are tied to your account's first 12 months, and AWS has changed how free tiers work for new accounts over time.

Check the Free Tier page for your account type before planning around it.

If a shared account hosts several clients, a free allowance used up by one project quietly raises the cost of every project after it, so budget each client at paid rates from the start.

Share

Running the numbers

See what the same workload costs here.

Free forever plan, and every paid plan self-hosts at no extra cost.

See pricing Talk to sales