Speed Test
Grok API thumbnail

How fast is the Grok API? Real grok-4.6 time to first token from 5 regions

We ran real, authenticated streaming completions against xAI's grok-4.6 — with reasoning effort set to "low" — from Amsterdam, San Francisco, Montreal, Singapore and Tokyo, 20 per city, parsing the token stream itself and timestamping the moment the first visible token arrived.

Independent measurement by LatencyRadar. Not affiliated with xAI. · Last updated August 2026.

Quick take

Grok answered all 100 requests, and where you call it from barely matters: the first visible token arrived in 2.08 seconds (Amsterdam) to 2.43 seconds (Singapore) — a 17% spread, the flattest regional profile we've measured for an LLM API. The stream itself opens fast, in 0.15–0.29 seconds, and grok-4.6 starts emitting reasoning deltas around 0.7 seconds in; the rest of the wait is the model thinking, now directly visible in the stream. Even at the "low" reasoning effort we requested, and for a trivial prompt, plan on roughly two seconds before the first visible word — and the slowest requests we observed took 2.9 to 4.8 seconds.

  • 100 out of 100 streaming completions succeeded (grok-4.6, reasoning effort "low")
  • First visible token: 2.08–2.43 s in every city — regions sit only 17% apart
  • The stream opens in 0.15–0.29 s and reasoning deltas start ~0.7 s in — the rest of the wait is the model thinking in-stream
  • The slowest requests we observed took 2.9–4.8 s for the same trivial prompt, depending on city

Where in the world is it fast?

Amsterdam was fastest at 2.08 s to the first visible token, then Montreal (2.14 s), San Francisco (2.23 s), Tokyo (2.26 s) and Singapore (2.43 s). A 349 ms spread on a two-second wait means geography is nearly irrelevant for grok-4.6: when the model spends most of the time thinking, moving closer to the servers buys you very little.

Amsterdam 3257msSan Francisco 2940msMontreal 2659msSingapore 3080msTokyo 2972msSlowest region: Amsterdam
Amsterdam
p50: 2079 ms
p95: 3257 ms
Error rate: 0.0%
Legend
Fast - < 200ms
Moderate - 200-500ms
Slow - > 500ms
Error / request failed
No latency measurement

Marker size and color reflect p95 latency by region.

Where is the time actually going?

Measured from the stream itself, one grok-4.6 call has three acts: the stream opens in 0.15–0.29 s (that part is network and edge), reasoning deltas start arriving around 0.7 s, and the first visible token lands at 2.1–2.4 s — with the trivial answer completing within about 20 ms after it. Unlike the ChatGPT API, which holds its response until the first token is ready, Grok's wait happens inside an open stream. The first visible word is what a user actually sees appear, so that's the headline number here — the transport phases below are supporting detail, and the long "download" phase is the in-stream reasoning, not bytes on the wire.

ConnectTLSServer waitDownload
Amsterdam
2095 ms
San Francisco
2234 ms
Montreal
2143 ms
Singapore
2429 ms
Tokyo
2282 ms

DNS resolution is measured once per region before the requests run, so it sits outside these bars: Amsterdam 2 ms · San Francisco 50 ms · Montreal 3 ms · Singapore 7 ms · Tokyo 5 ms

Phases come from the typical (median) request, so they add up to its total.

How is it delivered?

api.x.ai resolved to a single Cloudflare IP from all five cities, and our delivery verdict — computed from stream-open times rather than the inference-dominated totals — reads as anycast/edge with a 142 ms spread. First-visible-token times are nearly flat across cities, which says serving capacity, not network distance, sets the pace. This run's slowest observation was 4.8 s (Tokyo); an earlier run saw a single 12-second response from Amsterdam. One-off outliers happen, and so far they haven't followed geography — though single runs can't pin down where they originate.

anycast or edge1 distinct server IP142 ms spread between regions

All 5 regions resolved to one IP address and latency is uniform (142ms spread). Traffic appears to be served from an anycast or edge network.

Region metrics

Start with the headline number for each city. Open the technical breakdown only if you want to see where that time is coming from.

Fastest region

Amsterdam

20 requests · 100% successful

First token, typical
2079 ms
On a slower request
3257 ms
Consistency
Can spike
Slowest observed: 3970 ms
Biggest delay: DownloadReliability: 100%
Technical breakdown (typical request)
DNS resolve
2 ms
Connect
11 ms
TLS
13 ms
Server wait
282 ms
Download
1789 ms
Stream open
263 ms
First token
2079 ms
Full answer
2095 ms
Region result

San Francisco

20 requests · 100% successful

First token, typical
2228 ms
On a slower request
2940 ms
Consistency
Some slower moments
Slowest observed: 3005 ms
Biggest delay: DownloadReliability: 100%
Technical breakdown (typical request)
DNS resolve
50 ms
Connect
5 ms
TLS
11 ms
Server wait
123 ms
Download
2095 ms
Stream open
147 ms
First token
2228 ms
Full answer
2234 ms
Region result

Montreal

20 requests · 100% successful

First token, typical
2142 ms
On a slower request
2659 ms
Consistency
Some slower moments
Slowest observed: 2915 ms
Biggest delay: DownloadReliability: 100%
Technical breakdown (typical request)
DNS resolve
3 ms
Connect
3 ms
TLS
10 ms
Server wait
113 ms
Download
2017 ms
Stream open
183 ms
First token
2142 ms
Full answer
2143 ms
Slowest region

Singapore

20 requests · 100% successful

First token, typical
2428 ms
On a slower request
3080 ms
Consistency
Some slower moments
Slowest observed: 3807 ms
Biggest delay: DownloadReliability: 100%
Technical breakdown (typical request)
DNS resolve
7 ms
Connect
3 ms
TLS
11 ms
Server wait
337 ms
Download
2078 ms
Stream open
289 ms
First token
2428 ms
Full answer
2429 ms
Region result

Tokyo

20 requests · 100% successful

First token, typical
2263 ms
On a slower request
2972 ms
Consistency
Some slower moments
Slowest observed: 4806 ms
Biggest delay: DownloadReliability: 100%
Technical breakdown (typical request)
DNS resolve
5 ms
Connect
2 ms
TLS
8 ms
Server wait
303 ms
Download
1969 ms
Stream open
236 ms
First token
2263 ms
Full answer
2282 ms

What stands out

  • The flattest regional profile we've measured for an LLM API: first visible token in 2.08–2.43 s, a 349 ms spread between the best and worst city.
  • xAI streams its reasoning: unlike OpenAI, Grok opens the stream in ~0.2 s and emits reasoning deltas from ~0.7 s — a chat UI can show real "thinking…" progress more than a second before the first visible word.
  • Roughly 85–90% of every call is model time, nearly identical everywhere — switching regions won't make grok-4.6 feel faster.
  • Slowest observed: 4.8 s (Tokyo) and 4.0 s (Amsterdam) against ~2.1–2.4 s medians — the slow cases don't follow geography.
  • All measurements used reasoning effort "low" — the fastest setting grok-4.6 offers; real workloads at higher effort will take longer still.

Why 'on a bad day' matters for reasoning models

The typical two-second first token is predictable — but the slowest requests we observed took 2.9 to 4.8 seconds, and an earlier run saw a single response take twelve, for the same trivial prompt at the same low reasoning effort. A closer region or a smaller prompt doesn't appear to fix that kind of outlier. If you build on a reasoning model, design for it: stream partial output as it arrives — with Grok you can even surface the reasoning phase as live progress — show that the request is in progress, and set timeouts generously enough that a slow-but-successful answer isn't killed at the finish line.

How we ran this test

We ran real, authenticated streaming completions — POST /v1/chat/completions with stream: true — against xAI's grok-4.6 from servers in Amsterdam, San Francisco, Montreal, Singapore and Tokyo, 20 per city, all with the same fixed prompt. We parsed the SSE token stream and timestamped each event as it decoded: when the stream opened, when the first reasoning delta arrived, when the first visible token arrived (the headline number on this page), and when the response completed — alongside the usual DNS, connect and TLS phases. xAI opens the response stream immediately and reasons inside it, and the timestamps show it directly: headers in ~0.2 s, reasoning from ~0.7 s, first visible token at 2.1–2.4 s.

Model: grok-4.6, reasoning effort "low", max_tokens 256, default temperature
Prompt: "Say 'ok' and nothing else." — identical across every city and every LLM API we benchmark
Request: authenticated streaming POST /v1/chat/completions (worker-held API key)
Cities tested: 5 · 20 requests per city · 100 total
Timings from parsing the token stream, measured from request send; percentiles computed per city

How fast is your API compared to xAI's?

Run a free speed test from multiple cities and find out where your users are waiting — no setup, no account required.

Test my API

Takes about 30 seconds.

More public benchmarks →