DEEPSEEK LATENCY BENCHMARK · Oct 2026
DeepSeek direct or via OpenRouter?
We tested both from six cities. The faster option depends heavily on where you call from.
What the data shows
Finding 1
Location matters more than the route
Direct was faster from Singapore and Mumbai. OpenRouter was often faster from Montreal.
- Singapore and Mumbai: direct 527–589 ms, routes 879–1,339 ms
- Montreal: routes 416–926 ms, direct 734 ms
Finding 2
DeepSeek's direct API was more consistent
DeepSeek's API varied less between locations: its slowest city was 39% above its fastest, against 81–208% through OpenRouter.
- City spread: 39% direct, 81–208% via OpenRouter
- Slow days: 0 direct, 0 via OpenRouter
Finding 3
Most of the wait isn't the network
Connection setup was only 14–15 ms. Most latency came after reaching the provider.
- Network: 14–15 ms
- First token: 693–1,030 ms
Time to first token, day by day
Show the numbers
| Day | DeepSeek direct | OpenRouter · Together | OpenRouter · DigitalOcean | OpenRouter · Cloudflare |
|---|---|---|---|---|
| 11 September 2026 | 611 ms | 697 ms | 705 ms | 729 ms |
| 12 September 2026 | 645 ms | 859 ms | 736 ms | 873 ms |
| 13 September 2026 | 676 ms | 689 ms | 843 ms | 650 ms |
| 14 September 2026 | 802 ms | 757 ms | 792 ms | 748 ms |
| 15 September 2026 | 902 ms | 687 ms | 752 ms | 1274 ms |
| 16 September 2026 | 733 ms | — | 695 ms | 714 ms |
| 17 September 2026 | 594 ms | — | 861 ms | 745 ms |
| 18 September 2026 | 732 ms | 5566 ms | 806 ms | 727 ms |
| 19 September 2026 | 630 ms | 663 ms | 789 ms | 631 ms |
| 20 September 2026 | 619 ms | — | 845 ms | 725 ms |
| 21 September 2026 | 700 ms | 1138 ms | 722 ms | 638 ms |
| 22 September 2026 | 638 ms | 814 ms | 881 ms | 637 ms |
| 23 September 2026 | 667 ms | 1772 ms | 946 ms | — |
| 24 September 2026 | 647 ms | 1074 ms | 729 ms | 774 ms |
| 25 September 2026 | 558 ms | 2822 ms | 826 ms | 602 ms |
| 26 September 2026 | 655 ms | 1120 ms | 871 ms | 658 ms |
| 27 September 2026 | 699 ms | 776 ms | 651 ms | 784 ms |
| 28 September 2026 | 641 ms | 792 ms | 752 ms | 1046 ms |
| 29 September 2026 | 662 ms | 751 ms | 845 ms | 904 ms |
| 30 September 2026 | 700 ms | 713 ms | 866 ms | — |
| 1 October 2026 | 647 ms | — | 844 ms | 916 ms |
| 2 October 2026 | 685 ms | 716 ms | 833 ms | 906 ms |
| 3 October 2026 | 711 ms | 618 ms | 772 ms | 699 ms |
| 4 October 2026 | 602 ms | 531 ms | 865 ms | 792 ms |
| 5 October 2026 | 648 ms | 1202 ms | 846 ms | — |
| 6 October 2026 | 657 ms | 4123 ms | 813 ms | 939 ms |
| 7 October 2026 | 654 ms | 944 ms | 770 ms | 986 ms |
| 9 October 2026 | 672 ms | 820 ms | 805 ms | — |
| 10 October 2026 | 558 ms | 585 ms | 817 ms | 1509 ms |
Does your location matter?
DeepSeek direct was faster from Singapore and Mumbai in our tests.
- DeepSeek direct
- OpenRouter · Together
- OpenRouter · DigitalOcean
- OpenRouter · Cloudflare
Show exact values
| City | DeepSeek direct | OpenRouter · Together | OpenRouter · DigitalOcean | OpenRouter · Cloudflare |
|---|---|---|---|---|
| Amsterdam | 700 msslower 918 ms | 779 msslower 4.6 s | 583 msslower 970 ms | 779 msslower 1.9 s |
| San Francisco | 728 msslower 936 ms | 582 msslower 5.3 s | 574 msslower 955 ms | 691 msslower 2.0 s |
| Montreal | 734 msslower 990 ms | 626 msslower 6.2 s | 416 msslower 741 ms | 926 msslower 1.7 s |
| Singapore | 527 msslower 752 ms | 879 msslower 4.8 s | 1008 msslower 2.0 s | 1016 msslower 2.1 s |
| Tokyo | 622 msslower 846 ms | 678 msslower 3.9 s | 1084 msslower 2.1 s | 968 msslower 2.3 s |
| Mumbai | 589 msslower 834 ms | 1055 msslower 3.6 s | 1280 msslower 2.0 s | 1339 msslower 2.7 s |
Bold is the lowest typical time in that city. "Slower" is the time 95% of the daily requests from that city finished within.
Where does the wait happen?
How much of the wait a closer server could remove, and how much is the provider’s own queue and model.
- DeepSeek direct
- Network setup
- 14 ms
- Waiting for the model
- 679 ms
First visible token after 693 ms in total.
- OpenRouter · Together
- Network setup
- 14 ms
- Waiting for the model
- 722 ms
First visible token after 736 ms in total.
- OpenRouter · DigitalOcean
- Network setup
- 15 ms
- Waiting for the model
- 848 ms
First visible token after 863 ms in total.
- OpenRouter · Cloudflare
- Network setup
- 14 ms
- Waiting for the model
- 1016 ms
First visible token after 1030 ms in total.
Network setup is finding the server, reaching it and setting up a secure connection. Waiting for the model is everything after that until the first visible token: queueing and the model’s own work.
Direct vs OpenRouter
27 September – 10 October 2026 · six test locations
| Metric | Direct | Together | DigitalOcean | Cloudflare |
|---|---|---|---|---|
| Typical TTFT | 661 ms | 729 ms | 796 ms | 947 ms |
| Location spread | 39% | 81% | 208% | 94% |
Direct uses deepseek-v4-flash; the OpenRouter routes use deepseek-v4-flash-0731. Methodology →
Show full benchmark details ↓
| Detail | DeepSeek direct | OpenRouter · Together | OpenRouter · DigitalOcean | OpenRouter · Cloudflare |
|---|---|---|---|---|
| Model | deepseek-v4-flash | deepseek-v4-flash-0731 | deepseek-v4-flash-0731 | deepseek-v4-flash-0731 |
| Slower requests, p95 (median city) | 882 ms | 4724 ms | 1470 ms | 2085 ms |
| Fastest location | Singapore · 527 ms | San Francisco · 582 ms | Montreal · 416 ms | San Francisco · 691 ms |
| Slowest location | Montreal · 734 ms | Mumbai · 1055 ms | Mumbai · 1280 ms | Mumbai · 1339 ms |
| Days when every city slowed together | 0 | 0 | 0 | 0 |
| Requests in this window | 390 over 13 daily runs | 355 over 12 daily runs | 390 over 13 daily runs | 300 over 10 daily runs |
| Latest controlled run | 27 September 2026 | 4 October 2026 | 4 October 2026 | 4 October 2026 |
How we test
We send the same streaming prompt from six cities to DeepSeek directly and through OpenRouter, then measure time to first visible token.
Same request on both sides: thinking off, temperature 0. The Fireworks and BaseTen routes are left out: one throttled us, the other never returned a visible token.
Full testing methodology →Good to know
- Network setup is the hop to OpenRouter's edge (14–15 ms from every city); the hop from OpenRouter to the provider's machines is counted as waiting for the model, which is why Mumbai still waits longer than Montreal.
- Direct sends deepseek-v4-flash, which DeepSeek has served with V4.1 Flash since 10 September (V4 Flash is retired), while the OpenRouter routes pin deepseek-v4-flash-0731, so the two sides have not been the same model since that day.
- Each OpenRouter request pins one provider with fallbacks off, and a city's run is discarded if any response came from another provider.
- The prompt is "Say 'ok' and nothing else." (max_tokens 256, temperature 0, thinking off), sent daily between 03:41 and 07:18 UTC, 5 requests per city after one discarded warm-up.
- We time the first visible token only; tokens per second, long prompts and thinking on are not measured.
How does your API compare?
Test your endpoint from the same 6 cities used here and see your response time next to these numbers.
No account required · Takes about 30 seconds.