ChatGPT Status API: Free JSON Endpoint, Uptime Data, and SVG Badge

Free public ChatGPT status API. JSON endpoint with real-time status, response time, uptime percentages, and an embeddable SVG badge for your dashboards.

Free Public ChatGPT Status API

Drop live ChatGPT status into your dashboard, monitoring tool, or website with a single HTTP GET. The endpoint returns a stable JSON payload driven by the same engine that powers this site — combining the official OpenAI status feed, independent HTTP probes, and (soon) user reports and regional probes.

Endpoint

GET https://ischatgptdown.chat/api/status

The endpoint is anonymous, CORS-enabled (Access-Control-Allow-Origin: *), and cacheable. Response is application/json; charset=utf-8 with Cache-Control: public, max-age=30, s-maxage=60.

Rate Limit

60 requests per minute per IP. Exceeding the limit returns HTTP 429 with a Retry-After: 60 header. Use the s-maxage value to cache aggressively if you hit the API from many callers.

Example Response

{
    "service": "ChatGPT",
    "status": "operational",
    "confidence": "high",
    "answer": "No — ChatGPT is currently operational.",
    "reason": "All monitored signals are nominal.",
    "response_time_ms": 39,
    "last_checked": "2026-04-22T08:54:21+00:00",
    "evaluated_at": "2026-04-22T08:54:22+00:00",
    "official_status": "operational",
    "independent_check": "operational",
    "user_reports": {
        "level": "unavailable",
        "reports_last_15_min": 0,
        "available": false
    },
    "regional": {
        "level": "unavailable",
        "available": false
    },
    "uptime": {
        "24h": 1,
        "7d":  0.9867,
        "30d": 0.9947
    },
    "incidents": {
        "active_count": 0,
        "last_30_days": 12
    },
    "links": {
        "homepage":       "https://ischatgptdown.chat/",
        "outage_history": "https://ischatgptdown.chat/outage-history/",
        "badge":          "https://ischatgptdown.chat/badge/chatgpt-status.svg",
        "docs":           "https://ischatgptdown.chat/status-api/"
    }
}

Status Values

  • operational — service is running normally
  • degraded — service responds but with elevated latency or errors
  • partial — some features or regions are failing
  • down — widespread outage
  • maintenance — planned downtime
  • unknown — no recent data (engine still warming up)

Confidence Levels

  • high — multiple independent signals agree
  • medium — some signals disagree or threshold-driven
  • low — only one signal available

Uptime Decimals

The uptime object returns decimals, not percentages. Multiply by 100 for a display-ready percentage: 0.9867 → 98.67%.

Code Examples

curl

curl -s https://ischatgptdown.chat/api/status | jq

JavaScript (fetch)

const res  = await fetch("https://ischatgptdown.chat/api/status");
const data = await res.json();

console.log(data.service, data.status, data.response_time_ms + "ms");
if (data.status !== "operational") {
    console.warn("ChatGPT is", data.status, "—", data.reason);
}

Node.js

import https from "node:https";

https.get("https://ischatgptdown.chat/api/status", (res) => {
    let body = "";
    res.on("data", (c) => (body += c));
    res.on("end", () => {
        const s = JSON.parse(body);
        console.log(s.status, s.confidence);
    });
});

Python

import requests

r = requests.get("https://ischatgptdown.chat/api/status", timeout=5)
s = r.json()

print(s["status"], s["response_time_ms"], "ms")

PHP

$json   = file_get_contents( "https://ischatgptdown.chat/api/status" );
$status = json_decode( $json, true );
echo $status["status"];

Embeddable Status Badge

A lightweight SVG badge that updates automatically — ideal for READMEs, tool directories, and internal dashboards.

ChatGPT status badge

HTML Embed

<a href="https://ischatgptdown.chat/" target="_blank" rel="noopener">
    <img src="https://ischatgptdown.chat/badge/chatgpt-status.svg" alt="ChatGPT status" />
</a>

Markdown Embed (README-friendly)

[![ChatGPT status](https://ischatgptdown.chat/badge/chatgpt-status.svg)](https://ischatgptdown.chat/)

BBCode

[url=https://ischatgptdown.chat/][img]https://ischatgptdown.chat/badge/chatgpt-status.svg[/img][/url]

CORS and Browser Use

The API responds with Access-Control-Allow-Origin: *, so it can be called directly from browser JavaScript on any origin.

Terms of Use

The API is free to use. Please cache responses (we serve with 30-second max-age) and back off if you get 429. Unfair traffic (scraping loops, no caching) may trigger a permanent block.

Frequently Asked Questions

How often does the status update?

Internally, our monitor runs every 5 minutes by default. The API response is cached for 30 seconds at the edge. In practice the API reflects reality within 30 seconds of a detected change.

Is the API free forever?

Yes, as long as use stays reasonable. The endpoint is backed by Cloudflare caching, so even heavy read traffic lands mostly on the CDN rather than our origin.

Can I get historical data through the API?

The /api/status endpoint includes 24h/7d/30d uptime decimals and a 30-day incident count. A dedicated incident-history endpoint is on the roadmap — ping us via the contact page if you need it sooner.