GuidesHosting choices

Does your AI agent's server region matter? We timed it

Model calls through OpenRouter timed from servers in Germany, Finland, the US and Singapore at once: what each place added to Claude, GPT and Gemini calls.

October 23, 2026The Everpod team
The short answer

Through OpenRouter, yes, by a few tenths of a second on a short model call. On October 23, 2026 we timed 1,500 short calls through OpenRouter to Claude Haiku 5.5, GPT-6 Luna and Gemini 3.1 Flash Lite, from five servers at the same time. For all three models the answer started soonest on the two US servers and latest in Singapore, 0.42 to 0.52 seconds apart at the median, with the servers in Germany and Finland 0.14 to 0.30 seconds behind the faster US one. With an agent’s worth of context in each call, only Gemini kept that order. Every server reached OpenRouter’s and the labs’ API addresses in 1 to 14 milliseconds, so the gap opens further along the way. On GPT-6 Luna the model’s own variation was larger than the place’s: a fifth to two fifths of its calls took over two seconds, wherever they came from.

How it was measured

Five small cloud servers, with one or two vCPUs each on Ubuntu 24.04, ran the same Python script at the same time, between 11:48 and 12:14 UTC: one each in Germany, Finland, the US east coast, the US west coast and Singapore. Every call went to OpenRouter’s chat completions API at its list prices, pinned to the model’s own lab (Anthropic, OpenAI or Google AI Studio) with OpenRouter’s fallback to other providers turned off, and every response named the lab that served it.

From each server, each model got 100 short calls two seconds apart, the three models taking turns. Each call was a one-line request answered in a word (two to six tokens), with reasoning off, streamed over one HTTPS connection kept open between calls. Time to first token is measured from sending the request to the first word of the answer; the whole answer arrived 14 to 39 milliseconds after it, so the table gives the first token. Each model then got ten calls carrying an agent’s worth of context, and each server timed 100 new connections to OpenRouter and to each lab’s own API address. The 1,650 model calls cost $0.19.

How long a short call took from each place

Median time to first token in milliseconds, with the 10th to 90th percentile in brackets under it, over 99 or 100 calls each:

ServerClaude Haiku 5.5GPT-6 LunaGemini 3.1 Flash Lite
US east coast
682
(555 to 1,234)
1,188
(685 to 3,940)
543
(466 to 712)
US west coast
762
(571 to 1,239)
1,049
(756 to 3,319)
469
(376 to 586)
Germany
913
(736 to 1,303)
1,260
(888 to 5,211)
605
(536 to 743)
Finland
888
(750 to 1,288)
1,353
(920 to 2,950)
661
(581 to 805)
Singapore
1,104
(949 to 1,638)
1,567
(1,144 to 6,462)
913
(835 to 1,095)
Slowest place less fastest
422518444

The order held for every model: the two US servers first, Singapore last, Germany and Finland between. From Europe a call took 136 to 304 milliseconds longer than from the faster US server.

GPT-6 Luna varied far more from call to call than the other two. Between 21 and 40 of its 100 calls in each place took more than two seconds to start answering, and its slowest call in each place took 8 to 17 seconds. Claude Haiku 5.5 had at most five calls over two seconds in a place, and Gemini 3.1 Flash Lite at most one, though one Gemini call from Singapore took 50 seconds. None of the 1,500 calls failed.

The first hop is short from everywhere

Median TCP connect time in milliseconds, which is one network round trip, over 100 new connections from each server:

Serveropenrouter.aiapi.anthropic.comapi.openai.comgenerativelanguage.googleapis.com
US east coast
1111
US west coast
1114
Germany
1414144
Finland
2223
Singapore
1112

Each name led to the same addresses from all five places, and a round trip of one or two milliseconds cannot cross an ocean, so each address is answered by a network edge close to whoever calls it. The TLS handshake on top took 5 to 20 milliseconds, which is what a new connection adds to a call; a connection kept open pays it once. OpenRouter also answered a small request that runs no model, a read of the key’s own details, in a median of 9 to 26 milliseconds from every place.

So the hundreds of milliseconds between places arise beyond that first hop, on the way from the edge to wherever the model is served. An order with the US first fits the three models being served from the US, but a test from outside cannot see where any lab runs them.

With an agent’s worth of context

An agent’s call carries far more than one line: its instructions, its tools and the conversation so far. Each model also got ten calls with 36,000 to 53,000 tokens of context (the same text, counted by each model’s tokenizer), a text of each server’s own, so the first call missed every cache and the other nine read it from cache. The German server started these about a minute and a half before the other four, which ran together.

Gemini 3.1 Flash Lite kept the short calls’ order, from a median of 0.62 seconds on the US west coast to 1.24 seconds in Singapore. Over nine cached calls, Claude Haiku 5.5 and GPT-6 Luna did not sort by place. Haiku’s medians ran from 1.54 to 2.03 seconds. For three minutes, Luna’s calls from Finland took 6 to 14 seconds, while the same calls from the US and Singapore took 0.9 to 4.5. The first, uncached call took 1.6 to 4.2 seconds, apart from Luna’s from Finland at 9.2. One of the 150 calls failed: Google answered a Gemini call from Singapore that the model was “currently experiencing high demand”, and with fallbacks off nothing retried it elsewhere.

What it adds up to for an agent

An agent does a job as a chain of model calls, each waiting on the one before. As arithmetic from the short-call medians, not a measured job: twenty calls on Gemini 3.1 Flash Lite, the one model whose agent-sized calls kept the same order, would spend about 2.7 seconds longer waiting from Germany than from the US west coast, and about 8.9 seconds longer from Singapore, on top of the time the model spends writing. Claude Haiku 5.5’s and GPT-6 Luna’s agent-sized calls did not show the gap, so the same sum for them rests on short calls alone. Set against a job that runs for minutes, that is a small share; on a reply someone is waiting for, it is part of the wait.

Where an agent’s server is placed is usually decided by other things: price and the law it runs under (what an OpenClaw server needs), or the websites it can reach from there (which sites block a cloud server). On this route, a short call took up to half a second longer from the farthest place.

What the test does not show

Give your AI agents a permanent cloud computer.

We set it up and secure it, so all you do is use them. Run Claude Code, Codex or any agent you use, more at once than your laptop can hold, and keep them working when it’s closed. Or have OpenClaw set up and run for you.

See the developer pod

From $24/mo · your own plan or API key

Get your OpenClaw agent

$29/mo, cancel anytime · model usage included