Is npm down?
For agents
proceed
Proceed.
GET upbutler.com/status/npm/status.agent.json
MCP: upstream_status {"service":"npm"}
The npm registry and website. A registry incident fails installs in CI and in container builds.
What npm reports
Operational
Taken as is from npm's own status page API. Incident titles and component names below are theirs.
Open status.npmjs.orgUpButler's independent probe
Registry is answeringHTTP 200 · 181 ms
One request without credentials to registry.npmjs.org every two minutes. An answer shows the edge, TLS and routing work. It does not prove that authenticated calls succeed.
Checked · up since 2026-10-10 01:23 UTC
npm components
6 operational
- www.npmjs.com websiteOperational
- Package installationOperational
- Package publishingOperational
- Package searchOperational
- Security AuditOperational
- Replication FeedOperational
npm incidents, last 90 days
1 finished incident seen since UpButler started tracking on 2026-10-10.
| Started (UTC) | Incident | Impact | Lasted |
|---|---|---|---|
| Issues with npm package publish and private install | minor | 5 h 57 min |
Tell your outage from npm's
Declare that your project depends on npm. When one of your monitors fails while npm has an incident that began around the same time, UpButler tags your incident "likely upstream" with their incident linked, says so in the alert and the AI report, and tells your on-call agent not to change code.
npx upbutler init finds the dependency from your env var names and packages. The catalog, dependencies and upstream-aware incidents are on every plan, including Free.
# upbutler.yaml
dependencies:
- npmcurl -s https://upbutler.com/status/npm/status.agent.json{
"schema": "upbutler.upstream-status/v1",
"service": "npm",
"verdict": "proceed",
"status": "operational",
"reason": "No incidents reported",
"retryAfterSec": null,
"incident": null,
"probe": {
"state": "up",
"statusCode": 200
}
}Questions
- Is npm down right now?
- No. As of 2026-10-10 05:10 UTC, npm is operational. This page reads the status again every 2 minutes.
- Where does this status come from?
- From npm's own status page API at https://status.npmjs.org. UpButler reads it once for everyone (not once per visitor) every 120 seconds with conditional requests, and shows it unchanged: incident titles and component names are npm's words.
- What does UpButler's own npm check prove?
- Every two minutes UpButler sends one request without credentials to the npm Registry (registry.npmjs.org). Any answer from the edge, usually HTTP 200, shows that DNS, TLS and routing work. It does not prove that authenticated requests succeed, so it can say "reachable" while npm reports degraded service. It is useful the other way round: when the probe fails before their status page changes.
- How can my agent or app check npm status?
- Fetch https://upbutler.com/status/npm/status.agent.json: a small JSON document with a verdict (proceed, retry, fallback or pause) and retryAfterSec. No key is needed. The same answer is an MCP tool, upstream_status {"service":"npm"}, on https://upbutler.com/mcp/public.
- How do I know whether an outage is mine or npm's?
- Add "npm" to the dependencies of your UpButler workspace. When one of your monitors fails while npm has an incident that began around the same time, your incident is tagged "likely upstream" with their incident linked, and your on-call agent is told not to change code.
More in code, packages and workflows
UpButler is not affiliated with npm. Status and incident text belong to npm and are read from their public status source; the probe result is UpButler's own measurement.