Free 3 min read

Is OpenRouter Down?

Check live OpenRouter status — the unified API gateway for 200+ LLMs. See recent incidents and set up free email alerts for outages.

OpenRouter live status

OpenRouter — live status

Updated every 5 minutes. Full incident history at prismix.dev/service/openrouter.

Full status →

Quick check: is OpenRouter down right now?

  1. Prismix: prismix.dev/service/openrouter — live status + 30-day uptime + incidents.
  2. OpenRouter's own page: openrouter.ai/status — direct from the OpenRouter team.
  3. API call test: curl https://prismix.dev/api/v1/statuses | jq '.services[] | select(.id=="openrouter")'

Set up free OpenRouter status alerts

  1. 1

    Sign in

    Go to prismix.dev/sign-in — email OTP or GitHub sign-in.

  2. 2

    Star OpenRouter

    On prismix.dev/service/openrouter, click the ☆ star icon.

  3. 3

    Alerts are live

    You'll get an email within minutes of any status change — gateway down or upstream provider issue.

Check OpenRouter status programmatically

from openai import OpenAI

# OpenRouter is OpenAI-compatible — just change base_url
client = OpenAI(
    api_key="YOUR_OPENROUTER_KEY",
    base_url="https://openrouter.ai/api/v1",
    default_headers={
        "HTTP-Referer": "https://yourapp.com",
        "X-Title": "Your App Name",
    },
)

try:
    resp = client.chat.completions.create(
        model="openai/gpt-4o-mini",
        messages=[{"role": "user", "content": "ping"}],
        max_tokens=1,
    )
    print("OpenRouter operational")
except Exception as e:
    # 503 from OpenRouter = gateway issue
    # 503 with model in message = upstream provider issue
    print(f"OpenRouter error: {e}")
// JavaScript / Node.js
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENROUTER_API_KEY,
  baseURL: "https://openrouter.ai/api/v1",
  defaultHeaders: {
    "HTTP-Referer": "https://yourapp.com",
    "X-Title": "Your App Name",
  },
});

const status = await fetch("https://prismix.dev/api/v1/statuses")
  .then(r => r.json())
  .then(d => d.services.find(s => s.id === "openrouter"));

if (status.indicator !== "none") {
  console.warn("OpenRouter degraded:", status.description);
}

OpenRouter API not working? Common causes

  • Wrong base URL — the correct endpoint is https://openrouter.ai/api/v1. OpenRouter is OpenAI-compatible: set base_url to this and your existing OpenAI SDK code works without further changes.
  • Specific model returning 503 while others work — OpenRouter routes to upstream providers. If anthropic/claude-3-5-sonnet returns 503 but openai/gpt-4o works, the issue is Anthropic's API, not OpenRouter. Check Anthropic status directly.
  • "No endpoints available" error — some models require a minimum credit balance. Free models (marked :free) work with zero balance; paid models need a positive credit balance. Top up at openrouter.ai/credits.
  • Missing HTTP-Referer header — OpenRouter's terms require passing HTTP-Referer and X-Title headers. Missing them won't block requests but can trigger increased rate-limit scrutiny on new accounts.
  • Context window exceeded — OpenRouter passes context_length_exceeded errors through from upstream providers. The error message includes the model's actual limit. Truncate your messages array or switch to a model with a larger context window.
  • Streaming cuts off mid-token — OpenRouter streams from the upstream provider. If the upstream drops the connection, the SSE stream ends early without an error event. Implement retry with exponential backoff on SSE disconnect rather than treating a closed stream as successful completion.
🔔

Know before your LLM gateway breaks

Free email alert when OpenRouter changes status. 2 minutes to set up, no credit card.

Monitor the upstream providers too

Full status dashboard: prismix.dev/status