OpenRouter Price Watch

Live pricing from the OpenRouter models API, ranked cheapest first. Prices are USD per 1M tokens.

Built by Mark VandeWettering with Claude Code, to understand what OpenRouter actually charges and how the costs compare — not just between model families, but between slugs inside one family, which can differ several-fold. Why a model id is a menu and not a price explains what sits behind these numbers.

loading…
Model Input Output Cache read Blended Est. avg Context Provider
How to read this table, how a slug is priced, and how the numbers are computed

Reading the table

A slug is a menu, not a price

A model id like deepseek/deepseek-v4-pro is not one product. Around eighteen different companies run those weights — StreamLake, Baidu, DeepSeek themselves, CoreWeave, Novita, Azure and more — each at its own price, quantization (fp8, bf16), context length and throughput. One company can list several endpoints for a slug, and first-party vendors also sell service tiers under the same name: openai/flex at half price, openai/priority at double.

You are billed by whoever served you

OpenRouter passes provider pricing through without markup and deducts credits based on the tokens the serving provider reports. So the cost of a request is the rate of the endpoint that handled it — two identical calls a minute apart can bill differently if they land on different providers. For deepseek/deepseek-v4-pro the roster spans about 5× from cheapest to dearest, so that difference is not academic.

How the default route is chosen

Unless you say otherwise, OpenRouter load-balances rather than always picking the cheapest: it drops providers that had an outage in the last 30 seconds, then chooses among the rest by price with inverse-square weighting — halving a price makes a provider four times as likely — falling back to the others on failure. You can override that with sort: "price" (the :floor suffix), :nitro for throughput, an explicit order list, only/ignore, max_price, or allow_fallbacks: false to pin the top choice.

What this page computes

Input, Output and Cache read are the rates of OpenRouter's default route — the endpoint whose price matches the models API listing, named in Provider. Blended weights input against output by your ratio, because output tokens usually dominate a real bill:

blended = (in × input + out × output) / (in + out)

Est. avg is what a request should cost on average across the whole roster, given that routing. With p a provider's blended price and u its 30-minute uptime, share of traffic w ∝ u / p², so the expected price is

E[p] = Σ(u_i / p_i) / Σ(u_i / p_i²)

Deranked endpoints (negative status) and opt-in tiers (flex, priority, batch, zdr) are left out, since default traffic never lands on them. Hover any Est. avg cell for the per-provider shares.

How much to trust it