Guide
Virouter plans deliver Billing USD Quota that you spend as you make model requests. The quota is what you see in the dashboard and what shows up in x-virouter-*-usd response headers.
Every successful checkout for a paid package, every verified Telegram trial, and every redeemed gift code increases your wallet balance by the package's declared Billing USD Quota amount. The quota is internal Virouter usage value for model calls, not withdrawable cash.
Free Trial V2
Telegram verification activates 10 consecutive rolling periods. The first period starts when verification succeeds, not at midnight. Each period allows up to $5 of Billing USD Quota, for up to $50 total. Unused allowance expires when its period ends and never rolls over.
Total grant
$50
Each rolling period
$5 / 24h
Number of periods
10
What you can spend: The Billing dashboard shows both the amount available in the current period and the remaining amount across the whole grant. These are different numbers; a new trial starts with $5 available now and up to $50 remaining overall.
Funding order: Eligible text requests use the active promotional period first. If the request needs more quota, Virouter can continue with the main wallet when available. Image/video media is not funded by the unconverted trial entitlement.
Conversion: Pro and Scale users with a successful eligible payment may transfer remaining unspent, unexpired promotional quota to the main wallet. Free and Starter users must upgrade; expired, spent, revoked, or reversed promotional quota is not restored.
Example: if verification succeeds at 14:30, period 1 ends at 14:30 the next day. Any unused part of its $5 allowance expires then; period 2 starts immediately with a new $5 cap.
Paid packages convert a small cash payment into a larger Billing USD Quota balance. That means customers keep seeing normal model prices in requests and headers, but their prepaid quota gives them much more usable API value than paying the same provider rates directly.
| Plan | Customer pays | Quota received | Value multiplier | Effective cost | Estimated savings |
|---|---|---|---|---|---|
| Starter | $8 | $200 | 25× | $0.040 per $1 quota | $192 saved (96.0%) |
| Pro | $19 | $800 | 42× | $0.02375 per $1 quota | $781 saved (97.6%) |
| Scale | $45 | $2,000 | 44× | $0.02250 per $1 quota | $1,955 saved (97.8%) |
Example: if a model is priced at $5 per 1M input tokens and $30 per 1M output tokens, a $200 quota balance covers $200 of that catalogue-priced usage. The savings above compare the customer's cash payment with the quota value they receive; actual token volume depends on the selected model, input/output mix, and cache usage.
On a successful response, Virouter reads input, cached input, and output token usage from the upstream model and computes exact Billing USD cost using the configured model catalogue prices. The wallet is decremented atomically and the gateway returns:
Billing USD Quota charged for the completed request.
Remaining Billing USD Quota after the request was charged.
Token breakdown headers are also emitted as x-virouter-input-tokens,x-virouter-cached-input-tokens,x-virouter-cache-creation-input-tokens,x-virouter-output-tokens, andx-virouter-total-tokens.
Prompt caching lowers your cost when a model reuses a prompt prefix it already processed. Virouter reads the cache token fields the upstream provider returns and bills each token category at its own catalogue price, so cached tokens are never charged at the full input rate. The two upstream families report caching differently:
OpenAI reports total input under prompt_tokens and the cached portion under prompt_tokens_details.cached_tokens. Virouter charges the non-cached input at the standard input price and the cached input at the lower cached-input price.
cost = (prompt_tokens − cached_tokens) × input + cached_tokens × cached_input + output_tokens × output
Anthropic reports separate counters: fresh input under input_tokens, cache reads under cache_read_input_tokens, and cache writes under cache_creation_input_tokens. Each is billed at its own rate. Per Anthropic pricing, a cache read is cheaper than fresh input, while a cache write (5-minute TTL) costs 1.25× the input price.
cost = input_tokens × input + cache_read × cached_input + cache_creation × cache_write + output_tokens × output
The x-virouter-cached-input-tokens header reports cache-read tokens. The x-virouter-cache-creation-input-tokens header reports Anthropic cache-write tokens. Exact per-model input, cached-input, cache-write, and output prices are listed on the Models page.
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 Billing USD Quota values. Top up from the Billing page and retry the request.