OpenRouter Pricing: The Real Cost Can Be 14x Higher
The same model on OpenRouter is hosted by multiple providers, each with its own rate. We tested 15 models and found the most expensive provider charges 14.5x more.

👁 122 reads
We use OpenRouter daily and assumed the price on a model’s card tells us what we’ll pay. While testing a Chinese model, we saw a bill five times higher than expected. So we checked fifteen popular models, provider by provider, and calculated the actual spread. The number we found was hard to predict: for one model, the most expensive provider charges fourteen and a half times more than the cheapest one hosting the exact same model.
Where the Price Difference Comes From
OpenRouter is not a model provider. It’s a middleman that can route the same request to one of a dozen or several dozen companies hosting the same model. Each has its own pricing, and the model card shows a single number.
That single number doesn’t tell you what it represents. For GLM 5.2, the card shows $0.88, and that’s exactly what the cheapest provider charges. For GLM 5.3, the card shows $4.40, but the cheapest provider charges $3.50 - less. Sometimes it’s the bottom of the range, sometimes somewhere in the middle. The only certainty is that underneath lies a dozen or several dozen different rates.
When you send a request without additional settings, it goes to whichever provider happens to be available. It might be the cheapest one. It might not.
Fifteen Models, Output Price Spread
We pulled the provider list for each model straight from the API and compared the lowest rate with the highest.
| Model | Cheapest Provider | Most Expensive Provider | Difference | Providers |
|---|---|---|---|---|
| DeepSeek V3.2 | $0.31 | $4.50 | 14.5x | 15 |
| GLM 5.2 | $0.88 | $7.26 | 8.2x | 33 |
| GLM 5.3 Flash | $0.25 | $1.36 | 5.4x | 26 |
| DeepSeek V4 Flash | $0.14 | $0.56 | 4.1x | 15 |
| DeepSeek V4 Pro | $1.20 | $3.83 | 3.2x | 16 |
| GLM 5.3 | $3.50 | $6.60 | 1.9x | 27 |
| Kimi K3 | $12.00 | $22.50 | 1.9x | 19 |
| Llama 4 Maverick | $0.70 | $1.15 | 1.7x | 5 |
| Qwen3.8 27B | $2.00 | $3.20 | 1.6x | 13 |
Prices per million output tokens, as of September 9, 2026. We omitted models with only one provider, since there’s no spread by definition.
The median came out to 1.9x. That means for half the models we checked, someone on the list charges at least twice as much as the company next to them for the exact same model.
The Number That Makes the Biggest Impression
In twelve models out of fifteen, the lowest rate is offered by exactly one provider. One out of fifteen, one out of twenty-six, one out of thirty-three. Everyone else charges more.
This flips how you think about the pricing. The lowest price isn’t typical or average. It’s the result you’ll get if and only if you land on one specific company from a long list. With random routing, your odds are one in thirty-three.
We Checked This on Our Own Bill
Theory from API data is one thing, so we sent the same question twice to the same model, GLM 5.2, specifying the cheapest provider once and one of the more expensive ones the other time.
| Provider | Response Length | Bill | Actual Rate |
|---|---|---|---|
| StreamLake | 501 tokens | $0.000444 | $0.87 / million |
| Together | 332 tokens | $0.001496 | $4.48 / million |
The second provider gave a response one-third shorter and charged 3.4 times more for it. Same model, same question, same card showing $0.88.
Earlier, in a test of three writing tasks (run in Polish, a heavily inflected language), a request to GLM 5.2 went by default to a provider charging $4.40 instead of $0.88. We wouldn’t have noticed if we hadn’t been reading the cost from the billing field the API returns with each response.
Context Has the Same Problem
The context window also comes from the best provider. In five models out of fifteen, the largest context is offered by one provider, and the rest give less.
The sharpest case is GLM 5.3 Flash. The card promises 1,310,720 tokens. Only Cloudflare gives that much. Twenty-four other providers give 1,048,576, one gives 262,144. If you build something for the promised 1.3 million, with a regular request you’ll hit the limit, and there will be no error on the service’s side.
What to Do About It
We tested three methods and all work. All involve adding a single provider field to the request.
Specify the provider and block fallbacks. The most definitive solution: you get exactly the price and context you ask for, or the request doesn’t execute.
"provider": { "order": ["StreamLake"], "allow_fallbacks": false }
Sort by price. More convenient when you don’t want to tie your code to one company.
"provider": { "sort": "price" }
Set a maximum rate cap. Cuts off expensive providers but leaves choice among the rest.
"provider": { "max_price": { "completion": 1.0 } }
Plus one thing that costs nothing but changes everything: ask the API for billing data and log it. Just add "usage": {"include": true}, and the response will bring the request cost and the name of the provider that handled it. Without this, you’re working from the card pricing but paying according to a different one.
When This Really Hurts
For a single request, we’re talking about fractions of a cent and nobody will notice. The problem starts with two things.
With automations that run around the clock. If something generates content or processes documents in a loop, a fivefold difference in output pricing turns a monthly bill from acceptable into one you have to explain to accounting.
With reasoning models. There, output tokens are mainly the model’s thinking, which in some models can’t be turned off. Output is the more expensive side of the pricing, so the provider multiplier hits exactly what there’s most of. We broke this down in numbers in our article on GLM 5.3, where reasoning accounted for up to 96 percent of all output tokens.
Is This a Criticism of OpenRouter
No. All this data is public, available in the API, and visible on the model page after expanding the provider list. Nobody is hiding anything and there are no hidden fees.
There is, however, a difference between “available” and “visible.” The model card shows one price and one context number, and below it a list of thirty-three companies with their own rates that nobody looks at. We didn’t look either, until we saw the bill.
If you’re comparing models by the card price, you’re comparing individual numbers that don’t tell you where your request will land. Real comparison only starts when you specify it yourself.
We collect data on individual models continuously in our model atlas, and our own quality and cost measurements in benchmarks.
What This Means in Practice
Provider price spread is one layer. The second is reasoning tokens, which in some models can’t be turned off. We calculated both together on a specific task: how much an AI-written article costs.
Google · Your sourcesQuantslant higher in your Google - one clickAdd to preferred sources →The Second Hidden Multiplier
Provider price spread is one layer. The second is reasoning tokens, which in some models can no longer be turned off. Both multipliers work in the same direction and both are invisible as long as you’re calculating from the price list instead of from the bill.
More on this from QUANTSLANT
benchmarks·I Built an AI Test for 11 Models. One Task Had a BugNine tasks, eleven models, automatic scoring. One model got perfect marks, the most expensive lost, and on one task my own test scored backwards.

