deepseek v4.1 flash (1017) is one of my daily models right now. it's fast, it's (very) cheap, and it works well. feel trustful using it.
i use openrouter - both personal and professional projects. the good thing is we're free to choose any provider, not locked into one. on openrouter the same model is served by about 30 providers. same weights, different prices, different speeds.
so i decided to benchmark them all to find what's the best one.
//the rules
we need rules for benchmarking. there are two limits, because i want it cheap and i don't want to wait:
- under $1 per million output tokens
- over 100 tokens a second
so in the first round, i've filtered out the providers that don't meet the criteria.
21 providers passed the price limit. each one got 8 streamed requests with a 12.8k-token prompt and 600 tokens of output, which is roughly what one coding-agent turn looks like. plus a 3-question quiz and one tool call, since an agent is useless if tool calls break.
here's every request a provider got, and what could go wrong with each:
one cold request, then every repeat from cache. every check passed.
- prompt
- 0 cached12,869 tokens
- time
- 1.03 s wait, not in tok/s3.58 s streaming
- speed
- 600 tokens ÷ 3.58 s = 168 tok/s
the prompt opens with a fresh random id, so nothing about it is cached yet. this one pays for every token.
//speed vs price
nine providers made it over the line.
- speed
- 183 tok/s
- middle half
- 175–213
- output
- $0.50/M
- per request
- $0.00041
fireworks is the fastest, but it's a spot tier and the most expensive of the top three. wafer is the sweet spot: almost as fast (at $0.50). i have never heard of this provider before, but it's a good one.
numbers on a chart are one thing. here's what they feel like when you wait for a turn:
//the price on the page !== the price you pay
cache is a crucial factor when you're running an agent. if you send the same long prompt again and again, and the provider caches it, you mostly pay for output. if it doesn't, you pay for the whole prompt every turn.
it's a big difference, and it's the first thing you should check before you trust the numbers on the page.
ionstream lists $0.60 output, the same as deepseek. but it only hit the cache 29% of the time, so one request cost $0.00316. wafer's cost $0.00041. almost 8× cheaper for the same model.
morph looks like the cheapest on paper, and for one turn it is. by turn five it isn't anymore.
and one more catch: deepseek's own price doubles to $1.20 during busy hours on weekdays.
//the full board
| # | provider | checks | |||||
|---|---|---|---|---|---|---|---|
| 1 | Fireworksspot | $0.84 | 198 | 0.81s | 100% | $0.00058 | ✓ |
| 2 | Wafermxfp4 | $0.50 | 183 | 0.66s | 100% | $0.00041 | ✓ |
| 3 | GMICloudfp8 | $0.72 | 157 | 2.15s | 86% | $0.00057 | ✓ |
| 4 | Relace | $0.50 | 137 | 0.87s | 100% | $0.00040 | ✓ |
| 5 | DeepSeek | $0.60 | 128 | 1.21s | 100% | $0.00042 | ✓ |
| 6 | Novitafp8 | $0.96 | 115 | 1.55s | 100% | $0.00065 | ✓ |
| 7 | AtlasCloudfp8 | $0.78 | 113 | 1.27s | 100% | $0.00053 | ✓ |
| 8 | Decartfp4 | $0.55 | 109 | 0.94s | 86% | $0.00037 | ✓ |
| 9 | Ionstream | $0.60 | 105 | 1.07s | 29% | $0.00316 | ✕ cache |
//what i use now
my only goes to two providers, in this order:
{
"provider.only": ["wafer/mxfp4", "relace"],
"provider.order": ["wafer/mxfp4", "relace"]
}
wafer first for speed, relace as the cheap backup and stable one.
this is one run, on one afternoon (oct 23, 16:36 utc). provider speed moves through the day, so run your own before you trust mine.
Wafer (mxfp4)
Fireworks (spot)
GMICloud (fp8)
Relace
DeepSeek
Morph (fp8)
OpenInference (fp4)
Ionstream