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
422 no_speech and isn’t charged.
Generate speech
"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
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 get402 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.