Disclosure: this is my own project.
If you call an open-weight model through an API, the price you pay depends heavily on who serves it. The same model, same weights, can cost several times more at one provider than at another.
I built a small monitor that checks this every 5 minutes. Here's how it works and what it's finding.
How it works
- Every 5 minutes it reads OpenRouter's public per-model endpoint data (no API key needed). That list includes every provider serving a model and its per-token price.
- For each provider it computes a blended cost per 1M tokens, assuming 3 input tokens for every output token.
- It excludes endpoints that are currently down (negative status or 0% recent uptime).
- It computes the median, mean and standard deviation per model, and flags providers that are 15% or more below the median.
- It warns when the cheapest provider uses a different quantization than the most expensive one, because fp4 vs fp16 is not a fair comparison.
It runs as an n8n workflow with a duplicate filter, so the same provider/model pair is not re-alerted for 6 hours unless the price moves by more than 5%.
What it's finding right now
| Model | Cheapest | Median | Providers | Note |
|---|---|---|---|---|
| Llama 3.3 70B | DeepInfra $0.155/M | $0.64/M | 9 | fp8 on both ends |
| Llama 3.1 8B | DeepInfra $0.025/M | $0.12/M | 4 | quantization differs |
| Gemma 3 27B | DeepInfra $0.10/M | $0.149/M | 4 | fp8 on both ends |
| gpt-oss-120b | ~$0.04-0.06/M | $0.20/M | 24 | cheapest are fp4/int4 |
When this is (and isn't) useful
If you route through OpenRouter's default settings, you are probably already getting the cheap end, since its default routing favours price.
It's more useful if:
- you're contracted directly with one provider and never compared,
- you pin providers manually for latency, context length or quantization and want to know what that choice costs,
- you're choosing where to self-serve volume.
Caveats
These are list prices. They ignore latency, throughput, rate limits and reliability, and a cheaper endpoint may have a shorter context window or lower precision. Check those, and the provider's terms, before switching.
Follow the alerts
Alerts are posted to a free Telegram channel: https://t.me/+CWPuVJAQrXozYTZk
Feedback on the methodology is very welcome, especially on better ways to weight input vs output tokens or to factor in throughput.
Top comments (0)