Speed Test
npm Registry thumbnail

How fast is the npm registry? Real-world speed from 4 regions

Every time you run npm install, your machine talks to registry.npmjs.org. We tested it from Amsterdam, San Francisco, Montreal and Singapore — 20 times each — to see how fast that actually is around the world.

Independent measurement by LatencyRadar. Not affiliated with npm or GitHub.

Quick take

The npm registry is fast — genuinely, impressively fast. Every single request came back successfully, and the typical response time was just 22 ms globally. That's quick enough that your npm install delays almost certainly aren't coming from the registry itself. If your installs feel slow, the bottleneck is somewhere else: the size of your dependency tree, your internet connection, or disk speed. The registry is doing its job well.

  • Loaded successfully every single time — 80 out of 80 requests
  • Typical response time: 22 ms globally — one of the fastest results we've measured
  • San Francisco was the fastest city at 21 ms, Amsterdam the slowest at 39 ms
  • Barely any difference between a fast and slow request — extremely consistent

The setup

We made a standard request to the npm registry from four cities, repeated 20 times each. This is the same request your machine makes when it checks the registry during npm install — so these numbers reflect what developers around the world experience every day when installing packages.

npm registry speed test setup and results overview

Where in the world is it fast?

Fast everywhere, with San Francisco and Singapore surprisingly close to each other despite being on opposite sides of the planet. Amsterdam was the slowest city but still clocked in at 39 ms typical — well within what anyone would consider instant. This kind of geographic consistency is the hallmark of a well-distributed global service.

World map showing npm registry response times by region

Region by region breakdown

San Francisco was fastest at 21 ms typical. Singapore was nearly identical at 22 ms — remarkable given the distance. Montreal came in at 26 ms. Amsterdam was slowest at 39 ms typical, occasionally climbing to 66 ms on a bad request. That 66 ms worst case is still faster than the typical load time of most websites. There's genuinely nothing to complain about here.

Bar chart comparing npm registry response times across regions

Where is the time actually going?

DNS lookup was instant in every city — zero milliseconds, consistently. Most of the time is split between connecting to the server and the server sending back the first byte of data. There's almost no download time because this is a lightweight API response, not a full page. The breakdown tells the story of a service that has been carefully engineered to be fast: nothing is wasted anywhere in the chain.

Chart showing where npm registry response time is spent

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.

Slowest region

Amsterdam

20 requests · 100% successful

Typical
39 ms
On a slower request
50 ms
Feels instant
Consistency
Very consistent
Rare spike: 66 ms
Biggest delay: Server responseReliability: 100%
Technical breakdown
DNS p95
0 ms
Connect p95
10 ms
TLS p95
11 ms
TTFB p95
32 ms
Download p95
0 ms
Region result

Montreal

20 requests · 100% successful

Typical
26 ms
On a slower request
41 ms
Feels instant
Consistency
Very consistent
Rare spike: 55 ms
Biggest delay: Server responseReliability: 100%
Technical breakdown
DNS p95
0 ms
Connect p95
5 ms
TLS p95
5 ms
TTFB p95
34 ms
Download p95
0 ms
Fastest region

San Francisco

20 requests · 100% successful

Typical
21 ms
On a slower request
26 ms
Feels instant
Consistency
Very consistent
Rare spike: 35 ms
Biggest delay: Server responseReliability: 100%
Technical breakdown
DNS p95
0 ms
Connect p95
6 ms
TLS p95
5 ms
TTFB p95
20 ms
Download p95
2 ms
Region result

Singapore

20 requests · 100% successful

Typical
22 ms
On a slower request
40 ms
Feels instant
Consistency
Mostly steady
Rare spike: 66 ms
Biggest delay: Server responseReliability: 100%
Technical breakdown
DNS p95
0 ms
Connect p95
6 ms
TLS p95
5 ms
TTFB p95
31 ms
Download p95
1 ms

What stands out

  • 100% reliability — not a single failed request across all 4 regions.
  • 22 ms global typical response time — among the fastest registries and APIs we've tested.
  • Singapore and San Francisco were nearly identical despite being 13,000 km apart — a sign of serious global infrastructure.
  • Amsterdam had the most variation, with occasional spikes to 66 ms — still faster than most websites load on a good day.
  • DNS was zero everywhere — npm's name resolution is essentially instant globally.

Why 'on a bad day' matters even when typical is fast

The typical response time tells you what most requests look like. But in a CI/CD pipeline running hundreds of npm installs a day, even occasional slow requests add up. Amsterdam's worst-case was 66 ms — that's nothing for a human, but in an automated build that runs npm install fifty times a day, consistency matters as much as raw speed. This is why we show both numbers.

How we ran this test

We made a standard request to registry.npmjs.org from servers in 4 cities: Amsterdam, San Francisco, Montreal and Singapore. Each city ran 20 requests. We measured how long each step took — DNS lookup, connecting, security handshake, and server response — then calculated typical and worst-case times from the results.

Request type: standard registry API request
Cities tested: 4
Requests per city: 20
Total requests: 80
Max wait time before timeout: 20 seconds

Your API probably isn't as fast as npm's. Want to find out?

The npm registry is one of the most-used APIs on the internet and it responds in 22 ms globally. Run a free speed test on your own endpoint and see how you compare — no setup, no account required.

Test my endpoint

Takes about 30 seconds.

More public benchmarks →