429 with
code: "insufficient_quota" — the same envelope OpenAI uses, so a typed SDK
error surfaces it — and in-progress calls end rather than being cut mid-sentence.
What things cost
Charges are metered on minutes of audio: generated TTS output, transcribed
input, and connected realtime duration. A session is billed from the moment the
upstream pipeline connects until the socket closes, so close it when you are
done — and a phone call that rings out never connects one, so it costs nothing
here. The carrier bills its own minutes separately. Cloning a voice is a
one-time 100-credit fee.
Pay as you go
There are no plans. You buy credits, usage draws them down at the rate above, and nothing expires with a billing cycle. New accounts start with a full day of audio — 1,440 minutes, granted once. Past that, top up from Settings → Billing. One credit is one cent, so at $0.001 per minute a credit is ten minutes of audio. The billing page shows the balance as remaining minutes rather than credits, because minutes are the unit the work is measured in. There is no automatic top-up. When the balance falls below roughly an hour of audio you get a warning in the console and an email; when it reaches zero, paid models return429 and in-progress calls end cleanly rather than being
cut mid-sentence.
Rate limits
Three different limits, and they fail in different ways — worth knowing which one you hit.
Requests per minute is a burst limit across the speech endpoints. Back off
and retry; it clears within the minute.
Concurrent realtime sessions is a fairness limit between organizations —
it is the most you can hold open at once, and it is raised per account rather
than bought. It refuses cleanly at
connect time rather than degrading sessions that are already running, which is
the behaviour you want when a live conversation is in progress.
Characters per generation bounds a single
POST /v1/audio/speech. Split
long text into several requests; there is no charge for a request that is
rejected.
Watching your usage
GET /v1/organizations/billing/credits returns the balance and the ledger.
Every charge is a ledger row naming what it was for, so a bill can always be
taken apart.
The platform shows the same thing under Billing:
balance, spend over the last 30 days, a daily burn rate, and every entry.
Going further
Billing
Credits, the ledger, top-ups and subscriptions.
Capabilities
What each model does, and the endpoint it serves.
Choosing a model
Whether the pro transcription tier is worth 3× to you, and the other forks.