Guide
Virouter plans deliver a token balance that you spend as you make requests. The quota is what you see in the dashboard and what shows up in x-virouter-tokens-* response headers.
Every successful Lemon Squeezy checkout for a paid package, every verified trial, and every redeemed gift code increases your wallet balance by the package's declared token amount. The wallet stores raw token counts and every API surface and dashboard view is presented in tokens with compact unit suffixes (M million, B billion).
On a successful response, Virouter reads usage.input_tokens and usage.output_tokens from the upstream model and computes a token cost using configured input/output rates and the model multiplier. The wallet is decremented atomically and the gateway returns:
Tokens charged for the completed request.
Remaining token quota after the request was charged.
Legacy x-virouter-tokens-* headers are still emitted with the same numeric values for backward compatibility, but new integrations should use the x-virouter-tokens-* pair.
Virouter runs a max-cost preflight before forwarding a request upstream. If the preflight estimates the call will exceed your wallet, the request returns 402 Payment Required with a structured error body that includes the required and remaining token values. Top up from the Billing page and retry the request.