Everything is paid for in credits. One credit is one US cent, so 1,000 credits is $10. Credits arrive two ways: a one-time grant when you sign up, or you top up. Credits are prepaid. When the balance runs out, paid models return 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 return 429 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.
A capacity limit is not the same as a per-organization limit. Beyond your own ceiling, a deployment’s realtime pool has a finite number of pipelines. When the pool is full, new sessions are refused rather than sharing degraded capacity with live ones.

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.