OpenRouter lets you run identical weights on different companies' infrastructure with a one-line routing change. We pinned two open-weights models to seven providers each — fallbacks off, served provider verified on every sample — and measured time to first token from five cities. The result is the question every OpenRouter user actually has, answered per region: I've picked my model, so which provider should serve it?
Independent measurement by LatencyRadar. Not affiliated with OpenRouter or any provider · Measured on August 22, 2026.
Provider choice moved time-to-first-token by 2–3× for the same model and the same prompt — and the right answer depends on where your users are. For DeepSeek V4 Flash, Fireworks was fastest from all five cities this run. For GLM 5.2 only two providers answered our full burst, so its table is a two-provider comparison: DigitalOcean was faster from Europe and North America, Novita from Singapore and Tokyo.
Model deepseek/deepseek-v4-flash-0731 — identical request to every provider, time to first visible token (p50 of each region's samples).
| Provider | Amsterdam | San Francisco | Montreal | Singapore | Tokyo |
|---|---|---|---|---|---|
Fireworks pinned: fireworks | 658 msslowest observed 7166 ms · n=20 | 486 msslowest observed 6681 ms · n=20 | 616 msslowest observed 1825 ms · n=20 | 703 msslowest observed 6746 ms · n=20 | 751 msslowest observed 8600 ms · n=20 |
BaseTen pinned: baseten/fp8 | 432 msonly 2 of 20 answered — unranked | 577 msslowest observed 789 ms · n=5 | 457 msonly 2 of 20 answered — unranked | 810 msslowest observed 1037 ms · n=5 | 799 msonly 3 of 20 answered — unranked |
Together pinned: together | 809 msslowest observed 1125 ms · n=18 | 724 msslowest observed 986 ms · n=17 | 688 msslowest observed 899 ms · n=18 | 1132 msslowest observed 1677 ms · n=17 | 945 msslowest observed 1923 ms · n=19 |
DigitalOcean pinned: digitalocean | 785 msslowest observed 1083 ms · n=20 | 886 msslowest observed 1231 ms · n=20 | 632 msslowest observed 2076 ms · n=20 | 1199 msslowest observed 1907 ms · n=20 | 1279 msslowest observed 1912 ms · n=20 |
Cloudflare pinned: cloudflare | 674 msslowest observed 3973 ms · n=18 | 1016 msslowest observed 3666 ms · n=18 | 867 msslowest observed 4021 ms · n=18 | 1085 msslowest observed 3865 ms · n=18 | 1085 msslowest observed 3958 ms · n=18 |
Novita pinned: novita/fp8 | 1343 msslowest observed 1609 ms · n=20 | 1444 msslowest observed 3139 ms · n=20 | 1450 msslowest observed 2333 ms · n=20 | 1603 msslowest observed 1821 ms · n=20 | 1590 msslowest observed 1956 ms · n=20 |
SiliconFlow pinned: siliconflow/fp8 | 1094 msslowest observed 1700 ms · n=20 | 1269 msslowest observed 1827 ms · n=20 | 1512 msslowest observed 2344 ms · n=20 | 1722 msslowest observed 4017 ms · n=20 | 1467 msslowest observed 2374 ms · n=20 |
Quantization per endpoint — Fireworks, Together, DigitalOcean, Cloudflare: not listed by OpenRouter · BaseTen, Novita, SiliconFlow: fp8.
"Fastest this run" is a single-snapshot observation, not a standing recommendation — see the methodology for the rule we hold ourselves to before recommending a route.
Model z-ai/glm-5.2 — identical request to every provider, time to first visible token (p50 of each region's samples).
| Provider | Amsterdam | San Francisco | Montreal | Singapore | Tokyo |
|---|---|---|---|---|---|
DigitalOcean pinned: digitalocean | 711 msslowest observed 819 ms · n=20 | 670 msslowest observed 1208 ms · n=20 | 592 msslowest observed 703 ms · n=20 | 1087 msslowest observed 1801 ms · n=20 | 1196 msslowest observed 2072 ms · n=20 |
Novita pinned: novita/fp8 | 872 msslowest observed 973 ms · n=20 | 857 msslowest observed 1072 ms · n=20 | 853 msslowest observed 949 ms · n=20 | 1032 msslowest observed 1523 ms · n=20 | 1016 msslowest observed 1135 ms · n=20 |
Fireworks pinned: fireworks | 545 msonly 1 of 20 answered — unranked | 3024 msonly 1 of 20 answered — unranked | 3215 msonly 1 of 20 answered — unranked | 2964 msonly 1 of 20 answered — unranked | 708 msonly 1 of 20 answered — unranked |
Together pinned: together | 819 msonly 2 of 20 answered — unranked | 512 msonly 2 of 20 answered — unranked | 386 msonly 4 of 20 answered — unranked | 988 msonly 1 of 20 answered — unranked | 672 msonly 1 of 20 answered — unranked |
BaseTen pinned: baseten/fp8 | 525 msonly 1 of 20 answered — unranked | 1794 msonly 1 of 20 answered — unranked | 468 msonly 1 of 20 answered — unranked | 751 msonly 1 of 20 answered — unranked | 2023 msonly 1 of 20 answered — unranked |
Cloudflare pinned: cloudflare | 1058 msonly 1 of 20 answered — unranked | 1404 msonly 1 of 20 answered — unranked | 2838 msonly 1 of 20 answered — unranked | 1911 msonly 2 of 20 answered — unranked | 2847 msonly 1 of 20 answered — unranked |
SiliconFlow pinned: siliconflow/fp8 | 983 msonly 1 of 20 answered — unranked | 1163 msonly 1 of 20 answered — unranked | 1087 msonly 1 of 20 answered — unranked | 1541 msonly 1 of 20 answered — unranked | 1266 msonly 1 of 20 answered — unranked |
Quantization per endpoint — DigitalOcean, Fireworks, Together, Cloudflare: not listed by OpenRouter · Novita, BaseTen, SiliconFlow: fp8.
"Fastest this run" is a single-snapshot observation, not a standing recommendation — see the methodology for the rule we hold ourselves to before recommending a route.
Every provider × region cell is a claim, so a cell only shows a ranked number when the region completed, tokens actually streamed, and OpenRouter's in-stream provider report matched the provider we pinned on every counted sample. Everything else is labeled for what it is:
Every measurement is the same streaming POST to OpenRouter's chat completions endpoint, pinned to one provider with fallbacks disabled (provider.order + allow_fallbacks: false), so a silent failover can never publish one company's number under another's name. The body is identical across all providers and regions: prompt "Say 'ok' and nothing else.", max_tokens 256, temperature 0, reasoning disabled. Each region ran 20 measured requests (concurrency 2) after one discarded warm-up request per provider, and we parsed the token stream itself — the headline number is the time to the first visible token. OpenRouter reports which upstream actually served each response inside the stream; any sample not confirmably served by the pinned provider is excluded, and a region where that check fails is withheld entirely.
This page measures serving infrastructure and network path for a short completion — not model quality, not throughput on long generations, not price. Providers may serve the same weights at different quantizations; we disclose what OpenRouter's catalog lists per endpoint, including "unknown" where it says nothing. These numbers are a dated snapshot: provider load shifts by hour and by week, so we label per-region winners "fastest this run" and only call a route a standing recommendation once the same provider wins repeated runs by more than the run-to-run spread.
Run a free latency test from multiple cities and find out where your users are waiting — no setup, no account required.
Takes about 30 seconds.