Skip to main content
Usage is billed against your plan and prepaid credits. This page explains what each product meters. The live pricing page is the source of truth for rates, included usage, and plan availability.
Omni, Agents, and managed telephony use distinct meters. Check the live pricing page before forecasting a deployment.

The units header

Billed responses carry an x-pyai-units header reporting exactly what was metered for that request, in that meter’s own unit. Read it to reconcile your own usage accounting against ours. Rounding differs by product, so read the header rather than your own clock: Dub bills completed generation jobs, with a one-second billing pulse. HTTP requests, polling and exports carry zero delivery units. Read the job’s billing receipt for its charged amount and source duration; downloads never add a charge. A transcription that produced no text is never billed: it answers 200 with x-pyai-units: 0 and x-pyai-transcript-empty: 1. A failed request (4xx or 5xx) on a request-metered product bills nothing at all.

Credits and spend caps

  • Account signup creates a sandbox key. It does not guarantee promotional credit.
  • Live keys consume prepaid credit. Phone verification may unlock promotional credit under the current graduated-signup rules.
  • Per-key budgets, set a monthly spend cap on any key in the console.
  • Org credit gate, when prepaid credit is exhausted, billed calls return 402 until you top up.

Sandbox tier (no billing)

A pyai_test_ key works instantly against production models with hard daily caps (requests/day, concurrent sessions, audio minutes/day) and never touches billing. Use it for evals and CI so a first call never hits the credit gate. For production rates and included usage, see the pricing page.

402 semantics

A 402 means a billing limit was reached, it is not a broken key: Do not retry a 402, the call will keep failing until the underlying limit changes. See Errors & limits for the full catalog.