Checked November 4, 2026: the cheapest paid OpenRouter endpoint is openai/gpt-oss-20b on PrimeIntellect at $0.008 per 1M input tokens and $0.032 per 1M output tokens. It also supports tool calling, structured outputs and reasoning, so it is the cheapest choice in five of the ten capability tiers below. For image input, the cheapest is Qwen3.6 35B A3B ($0.01 / $0.092). For a 1M-token context, it's Qwen3.7 Flash ($0.03 / $0.13). For an agent that needs tools, a JSON schema, reasoning and 1M context together, it's GLM 5.3 Flash on OpenInference ($0.028 / $0.208).
The price on a model's OpenRouter page is not always the price you pay for the feature you need. For 53 of 335 paid models, a cheaper provider existed than the model's listed price. In other cases, the listed price comes from a provider that is unreliable or ignores the parameter you send. We ranked providers, not models, for that reason.
This guide covers paid models. For models that cost nothing, see OpenRouter free models. For the most-used models and frontier prices, see OpenRouter top models.
The cheapest endpoint for each capability
As of 2026-11-04 from OpenRouter's models API and each model's /endpoints API. Prices are USD per 1M tokens, input / output.
| You need | Cheapest model | Provider | Price, in / out | Context | Weights | 1-day uptime |
|---|---|---|---|---|---|---|
| Any text model | openai/gpt-oss-20b | PrimeIntellect | $0.008 / $0.032 | 131,072 | fp4 | 100% |
| Tool calling | openai/gpt-oss-20b | PrimeIntellect | $0.008 / $0.032 | 131,072 | fp4 | 100% |
| Structured outputs (JSON schema) | openai/gpt-oss-20b | PrimeIntellect | $0.008 / $0.032 | 131,072 | fp4 | 100% |
| Tools + structured outputs | openai/gpt-oss-20b | PrimeIntellect | $0.008 / $0.032 | 131,072 | fp4 | 100% |
| Reasoning | openai/gpt-oss-20b | PrimeIntellect | $0.008 / $0.032 | 131,072 | fp4 | 100% |
| Image input | qwen/qwen3.6-35b-a3b | PrimeIntellect | $0.01 / $0.092 | 262,144 | fp8 | 99.9% |
| Video input | qwen/qwen3.6-35b-a3b | PrimeIntellect | $0.01 / $0.092 | 262,144 | fp8 | 99.9% |
| Audio input | xiaomi/mimo-v2.6-flash | GMICloud | $0.112 / $0.224 | 1,050,000 | bf16 | 97.8% |
| 1M+ token context | qwen/qwen3.7-flash | Alibaba | $0.03 / $0.13 | 1,000,000 | not stated | 100% |
| Tools + structured + reasoning + 1M context | z-ai/glm-5.3-flash | OpenInference | $0.028 / $0.208 | 1,048,576 | fp4 | 99.3% |
How we computed it: we took every paid model with text output (335 after exclusions) and every standard-tier, realtime provider endpoint for it (1,231). We kept endpoints with at least 95% uptime over the previous day and a normal status, checked tools, structured outputs and reasoning against that endpoint's supported parameters, and ranked by a 3:1 mix of input to output tokens, (3 × input + 1 × output) / 4. Image, video and audio input come from the model's listing, because OpenRouter doesn't report input types per provider. We left out batch variants, flex and priority service tiers, ~ alias IDs, OpenRouter's own routers and two task-specific APIs (ScaleDown Summarize and Extract).
The ranking says nothing about quality. A cheaper model that fails your task twice costs more than a dearer one that passes once.
Runners-up in the tiers people ask about
Tool calling
| # | Model | Provider | Price, in / out | Context | Weights | 1-day uptime |
|---|---|---|---|---|---|---|
| 1 | openai/gpt-oss-20b | PrimeIntellect | $0.008 / $0.032 | 131,072 | fp4 | 100% |
| 2 | mistralai/mistral-nemo | Io Net | $0.017 / $0.022 | 128,000 | fp16 | 100% |
| 3 | qwen/qwen3.6-35b-a3b | PrimeIntellect | $0.01 / $0.092 | 262,144 | fp8 | 99.9% |
| 4 | inclusionai/ling-3.0-flash | Novita | $0.021 / $0.063 | 262,144 | not stated | 100% |
| 5 | nvidia/nemotron-3.5-lightning | Darkbloom | $0.025 / $0.12 | 262,144 | int4 | 99.8% |
Image input with tool calling
| # | Model | Provider | Price, in / out | Context | Weights | 1-day uptime |
|---|---|---|---|---|---|---|
| 1 | qwen/qwen3.6-35b-a3b | PrimeIntellect | $0.01 / $0.092 | 262,144 | fp8 | 99.9% |
| 2 | qwen/qwen3.7-flash | Alibaba | $0.03 / $0.13 | 1,000,000 | not stated | 100% |
| 3 | google/gemma-4-26b-a4b-it | Darkbloom | $0.04 / $0.15 | 131,072 | not stated | 100% |
| 4 | z-ai/glm-5.3-flash | OpenInference | $0.028 / $0.208 | 1,048,576 | fp4 | 99.3% |
| 5 | qwen/qwen3.5-9b | PrimeIntellect | $0.07 / $0.102 | 262,144 | bf16 | 99.7% |
1M-token context with tool calling
| # | Model | Provider | Price, in / out | Context | Weights | 1-day uptime |
|---|---|---|---|---|---|---|
| 1 | qwen/qwen3.7-flash | Alibaba | $0.03 / $0.13 | 1,000,000 | not stated | 100% |
| 2 | z-ai/glm-5.3-flash | OpenInference | $0.028 / $0.208 | 1,048,576 | fp4 | 99.3% |
| 3 | minimax/minimax-m3.1-flash | Tenstorrent | $0.05 / $0.20 | 1,000,000 | fp8 | 99.7% |
| 4 | deepseek/deepseek-v4-flash-0731 | Relace | $0.07 / $0.14 | 1,048,576 | fp4 | 100% |
| 5 | deepseek/deepseek-v4.1-flash | Morph | $0.032 / $0.288 | 1,048,576 | fp8 | 99.3% |
Same method as the first table. Qwen3.7 Flash's Alibaba endpoint did not list structured outputs, which is why GLM 5.3 Flash wins the full agent tier.
The cheapest model from each lab
Many teams can only use models from a lab they've approved. This is the cheapest endpoint with tool calling for each, by the same rules.
| Lab | Cheapest with tool calling | Provider | Price, in / out | Context | Image input |
|---|---|---|---|---|---|
| OpenAI, open weights | openai/gpt-oss-20b | PrimeIntellect | $0.008 / $0.032 | 131,072 | No |
| OpenAI, API models | openai/gpt-5-nano | Azure and OpenAI | $0.05 / $0.40 | 400,000 | Yes |
| Anthropic | anthropic/claude-haiku-5.5 | Anthropic and Google | $0.10 / $0.50 | 1,000,000 | Yes |
| Google, open weights | google/gemma-4-26b-a4b-it | Darkbloom | $0.04 / $0.15 | 131,072 | Yes |
| Google, Gemini | google/gemini-2.5-flash-lite | Google AI Studio | $0.10 / $0.40 | 1,048,576 | Yes |
| Qwen | qwen/qwen3.6-35b-a3b | PrimeIntellect | $0.01 / $0.092 | 262,144 | Yes |
| Z.ai | z-ai/glm-5.3-flash | OpenInference | $0.028 / $0.208 | 1,048,576 | Yes |
| Mistral | mistralai/mistral-nemo | Io Net | $0.017 / $0.022 | 128,000 | No |
| MiniMax | minimax/minimax-m3.1-flash | Tenstorrent | $0.05 / $0.20 | 1,000,000 | Yes |
| DeepSeek | deepseek/deepseek-v4-flash-0731 | Relace | $0.07 / $0.14 | 1,048,576 | No |
| Moonshot AI | moonshotai/kimi-k2.6 | Chutes | $0.39 / $1.80 | 262,144 | Yes |
| xAI | x-ai/grok-build-0.1 | xAI | $1.00 / $2.00 | 256,000 | Yes |
Lab means the model's maker, not the provider serving it. An open-weights model on a third-party provider doesn't run on the maker's servers or under the maker's data terms.
Why the listed price misleads
The listed price isn't always the lowest. For 53 of the 335 models, at least one provider charged less than the price on the model's listing. openai/gpt-oss-20b is listed at $0.03 / $0.13; PrimeIntellect serves it at $0.008 / $0.032. Among the 177 models with more than one provider, the median gap between the cheapest and dearest provider was small (1.1×), but the extremes were wide: 20.7× for Qwen3.6 35B A3B and 9.4× for gpt-oss-20b.
The cheapest provider may not support your parameter. For 14 models, the cheapest provider didn't list structured outputs although another provider did; for 8 models, the same was true of tool calling. OpenRouter's provider routing docs say that by default such a provider "can still receive the request, but will ignore unknown parameters". You'd get free-form text back where you expected JSON.
The cheapest provider may be unreliable. GLM 5.3 Flash shows the whole problem in one model. Its listed price, $0.0269 / $0.0996, comes from Relace, which had 70% uptime over the previous day and no structured outputs. The cheapest reliable endpoint with structured outputs was OpenInference at $0.0283 / $0.208. Z.ai's own endpoint charged $0.15 / $0.50 and didn't list structured outputs either. Across all models, 135 of the 1,231 endpoints were below 95% uptime for the day or reported an abnormal status.
The cheapest provider is often quantized. Of the 177 multi-provider models, the cheapest endpoint ran 4-bit weights (fp4, int4, mxfp4 or nvfp4) for 23, 8-bit fp8 for 31 and 16-bit for 17. For 106 the provider didn't state a precision. A quantized endpoint can score lower than the maker's benchmark numbers.
What a real job costs
Take 10,000 support tickets to classify, each about 2,000 input tokens and 300 output tokens: 20M input and 3M output tokens in total.
| Model and provider | Price, in / out | Cost for the job |
|---|---|---|
| gpt-oss-20b on PrimeIntellect | $0.008 / $0.032 | $0.26 |
| Qwen3.7 Flash on Alibaba | $0.03 / $0.13 | $0.99 |
| GLM 5.3 Flash on OpenInference | $0.028 / $0.208 | $1.19 |
| GPT-5 nano on OpenAI | $0.05 / $0.40 | $2.20 |
| Claude Haiku 5.5 on Anthropic | $0.10 / $0.50 | $3.50 |
| GLM 5.3 Flash on Z.ai | $0.15 / $0.50 | $4.50 |
Cost = 20 × input price + 3 × output price, before caching, reasoning tokens or retries. Reasoning models bill their thinking as output tokens, so the real cost of a reasoning run can be several times this.
At this scale, every option costs less than a few dollars. Choose on accuracy and reliability first, then price. The price gap matters when the job runs every day, or on millions of documents.
Batch is half price if you can wait a day
OpenRouter's Batch API runs requests within a 24-hour window. On November 4, 73 paid :batch variants were listed. For the 68 we could compare with the same provider's realtime price, the median batch price was 50% of it, ranging from 29% to 80%.
Batch is half of that provider's price, not necessarily the cheapest price for the model. For 5 of 70 batch models, another provider's reliable realtime endpoint was already cheaper. openai/gpt-oss-20b:batch on DeepInfra costs $0.024 / $0.112, about three times PrimeIntellect's realtime price.
How to actually get the cheapest provider
OpenRouter's default routing balances price against throughput, latency and reliability, so it won't always pick the cheapest provider. To prefer price and require your parameters, set both in the request:
{
"model": "z-ai/glm-5.3-flash",
"provider": {
"sort": "price",
"require_parameters": true
},
"response_format": { "type": "json_schema", "json_schema": { "...": "..." } }
}
Appending :floor to the slug (z-ai/glm-5.3-flash:floor) also sorts by price, and OpenRouter says it adds flex-tier endpoints to the pool. You can exclude 4-bit endpoints with provider.quantizations, cap the price with provider.max_price, and pin providers with provider.only. Each provider has its own data policy, shown on the model's OpenRouter page. Read it before you send customer data to the cheapest one.
Prices change daily. To re-check the cheapest providers for one model:
curl -s https://openrouter.ai/api/v1/models/z-ai/glm-5.3-flash/endpoints | jq -r '.data.endpoints[]
| [.provider_name, .pricing.prompt, .pricing.completion, .quantization, .uptime_last_1d,
(.supported_parameters | index("structured_outputs") != null)] | @tsv' | sort -t$'\t' -k2 -g
Run a cheap model on real work in Teamday
GLM 5.3 Flash, the cheapest endpoint in the full agent tier above, is one of four OpenRouter models in Teamday's model picker, alongside Kimi K3, GLM 5.3 and DeepSeek V4 Pro. Save your OpenRouter key in runner settings, and usage bills to your own OpenRouter account. Teamday doesn't choose the OpenRouter provider for you, so the price you pay depends on OpenRouter's routing for your account. The other models in this guide aren't in the picker. See current pricing.
Put a cheap model to work with your own key. Connect OpenRouter, pick GLM-5.3 Flash, and give Sarah, Maya, or Max a real task. Your token usage bills to your OpenRouter account.
Use my OpenRouter key in Teamday →