Docs/Account & billing

How billing works

Understand token pricing, cache discounts, per-call web search and what is not billed.

On this page

The basic formula

text
cost = input tokens × input rate + output tokens × output rate
rates are quoted in USD per million tokens ($/M)

Input and output are priced separately, with output typically 3–5× input. Actual rates are the ones shown on each model's page in the model plaza.

Cache pricing

On models with prompt caching, repeated prefixes — system prompts, long documents, few-shot examples — hit the cache and bill at a lower rate:

CategoryRelative to inputNotes
Cache read≈ 0.1×Input tokens served from cache
Cache write≈ 1.25×One-off premium when the cache is populated

So putting stable content at the front of the prompt and variable content at the end cuts cost markedly — most of all in multi-turn chat and document Q&A.

Other billable items

Web searchper call

Models with search bill each search separately, on top of token cost.

Image inputtoken equivalent

Converted to input tokens by resolution; the formula follows the vendor.

Tiered pricingby context

Some models switch to a higher rate past a context threshold; tiers are on the model page.

Pay as you go vs. subscription

There are only two things to know:

  • Top-ups carry no bonus: pay $100, get $100 in balance. It never expires. Flexible, but no discount.
  • Subscriptions give you extra credit: pay $99, get $120 in credit, for example. The credit lands in full at purchase and is valid for 30 days; whatever is left at expiry lapses.

Plan credit vs. balance

An account has two separate pools: the subscription credit (in $, granted in full at purchase and valid for 30 days) and the prepaid balance (your personal balance, or the workspace balance for a team; also in $, never expires). They are never merged or transferred. Web chat and API key calls pick a pool in this order:

  • Personal workspace with allowance left on the current plan: billed to the allowance by default. You can switch a message to pay-as-you-go from the billing selector in the composer.
  • Allowance used up, plan expired, or no plan: falls back to pay-as-you-go from your balance. A reply that already started stays on the plan; the mode never changes mid-reply.
  • Team workspace: there is no personal plan here, so everything is pay-as-you-go from the workspace balance.
  • API keys: same order as web chat. In a personal workspace they draw from the subscription allowance first, then fall back to pay-as-you-go from your personal balance; at $0 balance requests return an insufficient-balance error and stop, with no negative balance. Team-workspace keys are always pay-as-you-go from the workspace balance.
Note

The billing mode is fixed when a message is sent. Changing the mode or the workspace later never rewrites the cost of finished replies.

What is never billed

  • Rejected requests (4xx) — auth failures, bad parameters, rate limits.
  • Failed attempts during failover.
  • Gateway errors (5xx) that returned no content.
  • Models marked free (the “Free” tag in the plaza).
Important

A stream that is interrupted midway still bills the tokens already produced — the upstream generated them. That is exactly why silent full retries are expensive.

Auditing one call

The response's usage gives the token counts; search the request ID (the X-Maxx-Request-ID response header) in console › Usage › Request log to see exactly what the call cost.

Four ways to spend less

  1. Push high-frequency simple tasks down to small models.
  2. Move stable prefixes to the front of the prompt to maximise cache hits.
  3. Set max_tokens on every call so no single answer runs away.
  4. Allow each key only the models it needs, so an anomaly stays inside one workload.

Contact us

Something unclear, or need a human? Pick the channel that fits your question.