Billing and usage
Each request costs the provider’s list price for the tokens or units it used. Nothing is added per request.
How a request is billed
- Before it runs, AI Runtime holds the most the request could cost from your balance. If the balance can’t cover it, the request is refused with
quota_model_budget_exceededand costs nothing. - When it finishes, the provider’s reported usage is priced at the list rate and the hold is settled to that amount. It is never more than the hold.
- Cached input (
usage.prompt_tokens_details.cached_tokens) is billed at the cached-input rate. Reasoning tokens are output tokens, billed at the output rate.
The cost on every response
Chat completions include airuntime.cost_usd_micros, the request’s cost in millionths of a US dollar (2150 is $0.00215). Speech responses carry it in the x-airuntime-cost-usd-micros header instead. Streams include it in the usage chunk when you set stream_options.include_usage.
Failed requests
- A request that fails outright, refused by the API or by the provider, releases its hold: you pay nothing.
- If the outcome is uncertain (the provider may have run it, or a stream stopped partway), the hold stays until it is reconciled with the provider’s usage. A stream that stops without a usage report is not settled as zero.
Peak hours
DeepSeek peak is Mon–Fri 01:00–04:00 and 06:00–10:00 UTC and costs double. Every other hour, and all weekend, is off-peak. The rate in force when a request runs is the rate you pay; model pages show both.