How token pricing works
Usage is billed per token. Pricing is published per 1 million tokens (the industry-standard “per-1M” convention) and has two components:
Completion tokens are typically priced higher than prompt tokens. Different models have vastly different price points — a lightweight model may cost 50× less than a frontier reasoning model.
Token-priced models also publish per-1M rates for caching, batch, and other modalities where the provider supports them.
Non-token pricing units
Not every model bills by tokens. Speech, image, and video models publish their rate in the unit they bill in. Check thepricing object’s pricing_unit field (per_second, per_minute, per_hour, per_1k_chars, per_image, per_megapixel, or per_video).
For these models prompt_usd_per_1m and completion_usd_per_1m are null (a per-token figure would be meaningless), and the real rate is published in:
For token-priced models (
pricing_unit: per_1m_tokens) the per-unit fields simply mirror the per-1M values.
Flat per-call fees
A few capabilities are billed per call rather than per token. Web Search costs $0.005 to $0.016 per successful search, depending on the engine that answers, plus $0.001 per returned page when you ask for page content. Failed or empty searches are free. Budget these by call count, not token volume.Free vs. paid models
Free models (is_free: true) cost $0 for both prompt and completion tokens. They are rare: the moderation model openai/omni-moderation-latest is currently the only one, so plan on a paid model for testing too.
Paid models charge variable rates based on the model’s computational cost. Before using paid models, you need a positive credit balance.
You can list free models via the Dashboard → Models tab or with
GET /v1/models?free=true.Pre-paid balance
- Add credits in the Billing section of the Dashboard
- Credits are debited in real time as inference completes
- When your balance hits zero, paid model requests return
HTTP 402 Payment Requiredwith error codespend_limit_exceeded - Free models continue working regardless of balance, with a tighter limit of their own (20 RPM / 200 RPD per key)
Billing settles after a response is produced, because the true token count isn’t known until then. That means your balance can dip slightly below zero on the last request — it settles on your next top-up.
Auto-recharge
Turn on auto-recharge in Dashboard → Billing so a long job never dies mid-run with a402. It runs on a UPI AutoPay mandate charged in INR, so it is available only for UPI payments. Each recharge can be $5–$100, and you can have one active auto-recharge setup per account. It is managed in the dashboard only; there is no API-key equivalent.
Spend caps
Every API key can have an independent spend cap (a maximum USD amount). Once a key’s spend reaches the cap, further paid requests from that key are blocked until you raise or reset the cap. This is your primary protection against runaway costs — always set a cap on every key.Checking your balance
GET /v1/balance is read with your rsk_ API key.
reserved_usd is the portion held by in-flight operations — realtime sessions, background jobs, video generation — and available_usd is max(0, balance_usd − reserved_usd), the amount you can actually spend. reserved_breakdown lists only the categories currently holding funds and sums to reserved_usd. message is non-null only when an error condition is reported.
With an org context the org owner’s balance is returned — all members draw from one billing pool. See the Usage & Monitoring API for the full monitoring surface.