BYTETOOLS

GitHub Status API

Check whether GitHub is down from code. One small JSON request returns the overall indicator and description, with no token and no rate limit to worry about.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the GitHub Status API?

GitHub publishes its status as JSON at `https://www.githubstatus.com/api/v2/status.json`. The response contains an `indicator` of `none`, `minor`, `major` or `critical` plus a human-readable description such as `All Systems Operational`. No token is required.

When CI breaks, the first question is always whether the problem is yours or GitHub's. This endpoint answers it in a couple of hundred bytes, without a token, without touching your GitHub API rate limit, and without the risk that the outage you are investigating also blocks the check. That last point matters: `api.github.com` and `githubstatus.com` are deliberately separate systems.

Because it is a standard Statuspage deployment, the same host serves `components.json` for a per-service breakdown covering Git operations, Actions, Packages, Pages, Codespaces and Copilot, and `incidents/unresolved.json` for what is currently broken. Start with `status.json` for a binary answer and only fetch the larger payloads once the indicator says something is wrong.

Quick facts

Base URL
https://www.githubstatus.com/api/v2
Authentication
No token and no account. This endpoint is entirely separate from the GitHub REST API and does not consume its rate limit.
Rate limit
Not published. Status data is coarse, so poll at most once a minute.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the GitHub Status API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Check GitHub's overall status indicator

GET https://www.githubstatus.com/api/v2/status.json

curl
curl 'https://www.githubstatus.com/api/v2/status.json'
JavaScript (fetch)
const res = await fetch("https://www.githubstatus.com/api/v2/status.json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://www.githubstatus.com/api/v2/status.json", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "page": {
    "id": "kctbh9vrtdwd",
    "name": "GitHub",
    "url": "https://www.githubstatus.com",
    "time_zone": "Etc/UTC",
    "updated_at": "2026-08-21T06:14:50.142Z"
  },
  "status": {
    "indicator": "none",
    "description": "All Systems Operational"
  }
}

Parameters

ParameterTypeRequiredDescription
(endpoint)pathOptional`status.json` for the indicator, `components.json` for per-service health, `incidents/unresolved.json` for open incidents, `summary.json` for everything at once. status.json

Response fields

page.updated_atstring
ISO 8601 timestamp of the last status page update. Compare it with now to see how stale the answer is.
status.indicatorstring
`none` when everything is healthy, then `minor`, `major` or `critical`. This is the field to branch on, because it is a fixed vocabulary.
status.descriptionstring
Human-readable summary such as `All Systems Operational`. Display it, but never parse it: the wording changes.
(components.json) components[]array
Per-service rows for Git Operations, API Requests, Actions, Packages, Pages, Codespaces, Copilot and Issues, each with its own `status` string.

What you can build with the GitHub Status API

  • Print a warning in CI when a build fails while GitHub reports an incident
  • Add a GitHub health badge to a team dashboard or status wall
  • Gate a deployment script that depends on Actions or Packages being healthy
  • Post an automatic Slack notice when the indicator leaves `none`
  • Record incident history to explain a bad week in an engineering report

Common errors and how to fix them

404

The `.json` suffix was dropped from the path.

Fix: Request `/api/v2/status.json` exactly; the extension is part of the route.

indicator is `none` while your requests fail

The status page lags real impact, and partial or regional problems are often not reflected.

Fix: Combine it with your own request-level error rate rather than trusting it alone.

Confusing it with the GitHub API

`api.github.com` requires authentication for most calls and has a tight anonymous rate limit.

Fix: Status lives on `www.githubstatus.com` and is unauthenticated; do not check health through the main API.

GitHub Status API — frequently asked questions

How do I check if GitHub is down programmatically?

Request `https://www.githubstatus.com/api/v2/status.json` and read `status.indicator`. Anything other than `none` means GitHub has acknowledged a problem.

Does this count against my GitHub API rate limit?

No. The status page is a separate Statuspage-hosted system with no relation to `api.github.com` quotas.

Can I see which specific service is broken?

Yes. `components.json` on the same host lists Git Operations, API Requests, Actions, Packages, Pages, Codespaces, Copilot and Issues separately with individual statuses.

How fast is the status page updated?

Updates are published by GitHub's incident process, so there is usually a delay of several minutes between user-visible impact and a status change. Use it as corroboration, not as detection.

Tools that pair with this API

GitHub Status is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.