AI API status /

Is the OpenRouter API reachable right now?

A live probe of openrouter.ai from NetOkay’s edge, and how to tell an OpenRouter problem from an upstream model provider or your own network.

In short: The card below asks openrouter.ai/api/v1/models, a public endpoint that returns 200 without a key. If it answers here, OpenRouter’s front door is open; a stalled model request is then either the upstream provider or your path.

Last updated

Right now, from NetOkay’s edge

Loading the latest observation of openrouter.ai…

One keyless GET to https://openrouter.ai/api/v1/models, cached for a minute per Cloudflare location. On a healthy day this probe sees HTTP 200, because the models list is public.

What this probe shows, and what it does not

The NetOkay Worker resolves openrouter.ai through Cloudflare DNS, opens a TLS connection and sends one GET without credentials, following no redirects. Any HTTP status, including 401, 403 or 405, means the host answered. Several providers refuse keyless automated requests at their edge with a 403 in a few milliseconds; that still proves DNS, TLS and the front door, but it is the provider’s edge answering, not necessarily the API application behind it. The result is one observation from one Cloudflare location, refreshed at most once a minute and never stored.

It cannot see your API key, quota, region, model availability or account state, and it does not travel your network path. A healthy probe and a failing application are compatible; the sections below are for that case.

OpenRouter specifics

Reachable here but failing for you?

OpenRouter API status FAQ

My stream shows odd lines starting with a colon. Is that an error?

No. Lines beginning with a colon are SSE comments; OpenRouter uses them as keep‑alives while a provider is still generating. A correct SSE parser ignores them.

The probe is 200 but my model request hangs. What next?

The probe only proves OpenRouter’s host answers. A hang is usually the upstream provider or an idle limit on your path. Run the homepage idle stream check, then try the same model with a different provider preference.

Why is this probe 200 when other providers show 401?

OpenRouter’s models endpoint is public. Other providers require a key for every endpoint, so their healthy answer to a keyless request is 401 or 403.