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.

What is counted
FieldTypeDescription
Text generationtokensInput and output tokens, priced separately. Output usually costs several times more than input.
Reasoningoutput tokensThinking tokens are output tokens. Higher effort means a bigger bill — see Reasoning.
Text to speechcharactersCharacters of the input field, not tokens and not seconds of audio.
ImagesimagesOne generated image is one unit, whatever its size. n: 4 costs four units.
Cached inputdiscounted tokensWhere 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#

FieldTypeDescription
freeany accountUsable on every plan within the daily token allowance.
paidplan or balanceNeeds an active paid plan or a positive wallet balance.
premiumpaying accountsFlagship 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.

Chat Completions
"usage": {
  "prompt_tokens": 1024,
  "completion_tokens": 256,
  "total_tokens": 1280
}
Messages
"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.