Pricing & billing
What each capability is measured in, and the rules that decide what lands on your bill.
Units of measurement#
Not everything is measured in tokens. Using the right unit per capability is what keeps the numbers honest.
| Field | Type | Description |
|---|---|---|
Text generation | tokens | Input and output tokens, priced separately. Output usually costs several times more than input. |
Reasoning | output tokens | Thinking tokens are output tokens. Higher effort means a bigger bill — see Reasoning. |
Text to speech | characters | Characters of the input field, not tokens and not seconds of audio. |
Images | images | One generated image is one unit, whatever its size. n: 4 costs four units. |
Cached input | discounted tokens | Where a provider supports prompt caching, repeated prefixes are billed at a reduced rate automatically. |
Plans and wallet#
Two ways to pay, and they cover different things.
- Subscription plan — a monthly price that includes spending allowances over rolling windows (for example a 5-hour and a 7-day window). Usage inside those windows is covered by the plan.
- Wallet — prepaid balance, charged per request. Used when you have no plan, and for capabilities a plan does not cover.
Images and speech charge the wallet, never the plan window
They consume a separate upstream resource measured in attempts rather than dollars. Letting them draw on the plan's spending window would let a small subscription buy an unlimited amount of it.
Free allowances#
- Free-tier models come with a daily token allowance on every plan, including the free one.
- Images include a number of free generations per rolling 24 hours. This is an allowance, not a wall: past it, images are simply charged to your wallet rather than refused.
- The window slides. It does not reset at midnight, which would create a rush at the same moment every day.
Model tiers#
| Field | Type | Description |
|---|---|---|
free | any account | Usable on every plan within the daily token allowance. |
paid | plan or balance | Needs an active paid plan or a positive wallet balance. |
premium | paying accounts | Flagship models. Available once the account has made a real payment — gifts and trials do not unlock this tier. |
What you are charged for#
Charged
- Every successful request, at the price of the model you requested.
- Tokens already generated when you cancel mid-stream. The work was really done upstream.
- Image jobs the provider refuses on content grounds — the attempt consumed real upstream capacity.
Not charged
- Requests that fail with a 5xx, or that never reach a provider.
- Requests rejected by validation — an unknown model, or input beyond the context window.
- A duplicate blocking request replayed from cache. See Idempotency & retries.
- Image jobs that fail or are cancelled.
You always pay the price of the model you asked for
If routing serves your request with a different model, the price does not change — up or down. That means a fallback can never cost you more than you expected, and the model field in the response always matches what you requested.
Tracking usage#
Every response carries token counts. Record them as you go rather than reconciling later — they are the same numbers your invoice is built from.
"usage": {
"prompt_tokens": 1024,
"completion_tokens": 256,
"total_tokens": 1280
}"usage": {
"input_tokens": 1024,
"output_tokens": 256
}When streaming, usage arrives on the final chunk — read to the end of the stream or you will record zero. The dashboard breaks the same data down by key, model and day.
Keeping spend predictable#
- Set a monthly limit per API key. One key per service turns a runaway loop into a capped incident instead of an empty wallet.
- Set
max_tokens. It is a hard ceiling on the most expensive part of a request, and xKiro never raises it on your behalf. - Choose the smallest model that passes your tests. The gap between tiers is several times the price, and usually smaller than the gap in your prompt quality.
- Turn reasoning off when you do not need it. Explicitly — omitting the field is not the same as disabling it.
- Cache. Identical prompts returning identical answers is money you can simply stop spending.
Current prices per model are listed in the pricing page, and per-key usage in the dashboard — which always reflects what your account is actually charged.
