An LLM router that sends each request to the cheapest provider
Yes. OpenCheap is an LLM router that sends every request to the cheapest healthy provider of the model you name. You call one OpenAI-compatible API with one key; for each request it ranks the providers serving that model by price, skips any that are failing, and sends it to the cheapest one left. If that provider fails before the first byte, the next cheapest takes the same request. You pay the price of the provider that answered.
How the router picks a provider
The same four steps for every request, whether it is paid from a balance or per call in USDC.
- 1Rank by priceEvery provider serving the model is ranked by its price for this request: the prompt and the output it asks for, at that provider's rates.
- 2Skip the unhealthyCircuit breakers per provider and model, and test requests around the clock, keep a provider that is failing, slow to start or ignoring the output limit out of the ranking until it recovers.
- 3Fail over before the first byteThe cheapest provider left gets the request. If it errors or times out before answering, the next one takes the same request.
- 4Bill what that provider chargesYou pay the price of the provider that answered, and
usage.costin the response says what it was.
Same model, our price and its list price
Popular models, per million input and output tokens, as of 2026-11-15 02:18 UTC. The list price is the public rate the same model is listed at; the difference is on a 1 : 3 input : output blend.
| Model | OpenCheap / 1M in · out | List / 1M in · out | Difference |
|---|---|---|---|
| Claude Sonnet 5 | $0.540 · $2.70 | $2.00 · $10.00 | −73 % |
| Claude Opus 5.5 | $4.00 · $20.00 | $4.00 · $20.00 | same |
| GPT 5.5 | $2.10 · $13.00 | $5.00 · $30.00 | −57 % |
| Gemini 3.5 Flash | $0.012 · $0.068 | $1.50 · $9.00 | −99 % |
| DeepSeek V4 Flash | $0.090 · $0.120 | $0.090 · $0.180 | −29 % |
| Kimi K3 | $0.044 · $2.00 | $0.192 · $16.00 | −87 % |
| gpt-oss-120b | $0.00074 · $0.0032 | $0.150 · $0.600 | −99 % |
| GLM 5.3 Flash | $0.0035 · $0.0068 | $0.040 · $0.078 | −91 % |
| Llama 3.3 70B Instruct | $0.023 · $0.073 | $0.710 · $0.710 | −91 % |
| Grok 4.7 | $2.00 · $6.00 | $2.00 · $6.00 | same |
Some models cost the same as their list price, because every provider charges it; a few cost more. All models are on one page with every provider's price.
How other routers handle price
From each one's own docs, as of November 14, 2026.
| Cheapest provider by default? | How you run it | |
|---|---|---|
| OpenCheap | Yes, on every request: the cheapest healthy provider, then the next one if it fails before the first byte. | Hosted. One key and one balance for every model. |
| OpenRouter | Not by default: requests are spread across providers weighted by an effective price and by speed and reliability. Setting provider.sort to "price" tries the cheapest first. | Hosted. One key; credits bought with a fee. |
| LiteLLM | With routing_strategy: cost-based-routing, it picks the cheapest of the deployments you configured. The default is simple-shuffle. | Open source, self-hosted. You bring an account and a key for each provider. |
Try it
Any OpenAI SDK works: change the base URL and the key. The model id is the plain name (kimi-k3, claude-sonnet-5, gpt-oss-120b).
curl https://api.opencheap.si/v1/chat/completions \
-H "Authorization: Bearer $OPENCHEAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "kimi-k3", "messages": [{ "role": "user", "content": "Hello" }] }'
# The answer carries what it cost:
# "usage": { "prompt_tokens": 9, "completion_tokens": 12, "cost": 0.0000245, ... }Setup for Cursor, Claude Code, Codex and the common frameworks is in the quickstart; routing, fail-over and prices in how it works.
Questions, answered
Is there an LLM router that always sends a request to the cheapest provider?
Yes. OpenCheap does it on every request, with no setting to turn on: it ranks the providers serving the model you name by price, skips any that are failing their health checks, and sends the request to the cheapest one left. You pay that provider's price. It works through one OpenAI-compatible API at https://api.opencheap.si/v1.
Does the cheapest provider mean a worse model?
No. A model id always means that model and version, never a renamed or smaller substitute. Providers are tested around the clock, and one that fails, or ignores the output limit, loses its place automatically.
What happens if the cheapest provider fails?
If it errors or times out before the first byte, the next cheapest healthy provider takes the same request, and you are billed only for the one that answered. Circuit breakers per provider and model keep a failing provider out until it recovers. When every usual source for a model is down, a dearer one can answer, at its own price plus our margin.
How do I know what a request cost?
Every answer reports it: usage.cost in the response is what that request was charged, in USD. Each model's page lists every provider serving it, by name, with its own price, speed and uptime.
How is this different from OpenRouter's price sorting?
OpenRouter's default routing spreads requests across providers weighted by an effective price and by speed and reliability; you set provider.sort to "price" to try the cheapest first (its docs as of November 14, 2026). On OpenCheap the cheapest healthy provider is the default for every request.
Is there a monthly fee?
No. There is no plan and no monthly fee: you pay per token from a prepaid balance, and credits never expire. Adding credit costs 10 % + $0.30 by card, or 5.5 % in crypto or USDC.
More guides
One OpenCheap key calls models from Anthropic, Google, OpenAI, DeepSeek, Moonshot, Qwen and more through the OpenAI SDK you already use: change the base URL and the key.
An AI agent can pay OpenCheap for one completion in USDC on Base with x402: call with no key, read the 402 price, sign, and get the answer in the same request.
On OpenCheap every key can carry its own daily, weekly, monthly or lifetime limit that refuses requests once it is reached, so an agent left running overnight cannot spend more than you allow.
Point Claude Code at OpenCheap with three environment variables and pick the model per task: Claude at the provider's price, or open models that cost a fraction of it, all on one key with a spend limit.