Skip to main content
These routes need an API key or client token with the inference scope. Each call spends credits. A call that fails before producing anything isn’t charged.

Limits

To work with longer content, split it into separate requests. Per-key rate limits aren’t enforced yet. When the models are busy you’ll get 503 model_busy, with a Retry-After header.

Transcribe audio

Audio with no speech returns 422 no_speech and isn’t charged.
By default, Yoruba transcripts are corrected by a third-party language model. If your audio is sensitive, send fix=false to turn this off.

Generate speech

The response is audio, in WAV by default or raw PCM with "format": "pcm". The X-Credits-Charged and X-Sample-Rate headers give the cost and sample rate. See GET /v1/voices for the available voices.

Stream speech

Send "stream": true to receive server-sent events as the audio is generated: You’re charged for the audio generated, including when you disconnect early.

Translate text

See GET /v1/languages for the language codes.

Credits

Each call places a hold on your balance before it runs, then charges the actual cost when it finishes. If your balance can’t cover the hold, you’ll get 402 insufficient_credits. Check your balance with GET /v1/billing/balance, your prices with GET /v1/billing/rates and your spending with GET /v1/usage. These need the billing:read and usage:read scopes.