Is OpenRouter down?
Right now
No. OpenRouter is operational.
OpenRouter API edge answers UpButler's independent probe; no machine-readable official status.
No official machine-readable status
For agents
proceed
Proceed.
GET upbutler.com/status/openrouter/status.agent.json
MCP: upstream_status {"service":"openrouter"}
One API in front of hundreds of models. When it is down every model behind it is, whatever the model providers report.
What OpenRouter reports
status.openrouter.ai answers 403 to every machine-readable path; only the independent probe is shown.
Their status page: status.openrouter.aiUpButler's independent probe
API edge is answeringHTTP 401 · 16 ms
One request without credentials to openrouter.ai every two minutes. An answer (the expected "not authenticated") shows the edge, TLS and routing work. It does not prove that authenticated calls succeed.
Checked · up since 2026-10-10 01:23 UTC
OpenRouter incidents, last 90 days
Without a machine-readable source there is no incident history to show. OpenRouter keeps its own at status.openrouter.ai.
Tell your outage from OpenRouter's
Declare that your project depends on OpenRouter. When one of your monitors fails while OpenRouter 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:
- openroutercurl -s https://upbutler.com/status/openrouter/status.agent.json{
"schema": "upbutler.upstream-status/v1",
"service": "openrouter",
"verdict": "proceed",
"status": "operational",
"reason": "OpenRouter API edge answers UpButler's independent probe; no machine-readable official status",
"retryAfterSec": null,
"incident": null,
"probe": {
"state": "up",
"statusCode": 401
}
}Questions
- Is OpenRouter down right now?
- No. As of 2026-10-10 05:13 UTC, OpenRouter is operational. This page reads the status again every 2 minutes.
- Where does this status come from?
- status.openrouter.ai answers 403 to every machine-readable path; only the independent probe is shown.
- What does UpButler's own OpenRouter check prove?
- Every two minutes UpButler sends one request without credentials to the OpenRouter API edge (openrouter.ai). Any answer from the edge, usually HTTP 401, shows that DNS, TLS and routing work. It does not prove that authenticated requests succeed, so it can say "reachable" while OpenRouter 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 OpenRouter status?
- Fetch https://upbutler.com/status/openrouter/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":"openrouter"}, on https://upbutler.com/mcp/public.
- How do I know whether an outage is mine or OpenRouter's?
- Add "openrouter" to the dependencies of your UpButler workspace. When one of your monitors fails while OpenRouter 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 ai models and tooling
UpButler is not affiliated with OpenRouter. Status and incident text belong to OpenRouter and are read from their public status source; the probe result is UpButler's own measurement.