Skip to content

Status badges and feeds

Put the live state of a service in a README, a wiki or a dashboard. Pick a service and copy the snippet. With no data the badge turns grey and says so; it never falls back to green.

Free to use, no key

The badge, in its six states

  • GitHub: Operational
  • GitHub: Minor incident
  • GitHub: Major incident
  • GitHub: Critical outage
  • GitHub: Maintenance
  • GitHub: No data

Drawn here by the same code the server uses. The served badge shows the state declared at that moment.

Copy the snippet

Choose a service and paste the Markdown, the HTML, or the address of the feed.

Read from https://www.githubstatus.com

Markdown

[![GitHub status](https://outages.watch/badge/github.svg)](https://outages.watch/is-github-down/)

HTML

<a href="https://outages.watch/is-github-down/"><img src="https://outages.watch/badge/github.svg" alt="GitHub status" height="20"></a>

RSS feed for GitHub

https://outages.watch/feed/github.xml

RSS feed for all services

https://outages.watch/feed.xml

JSON detail for GitHub

https://outages.watch/api/service/github.json

JSON snapshot of the whole board

https://outages.watch/api/status.json

All of these carry the state the provider declares on its own status page, re-read every 9 minutes, and the time of the reading. The addresses answer only on the published site; a local build has no collector behind them.

What the files contain

Badge. An SVG image, 20 pixels high, with the service name and one of six states: operational, minor incident, major incident, critical outage, maintenance or no data. It can be cached for up to 60 seconds.

RSS. One item per declared incident, updated when the provider posts an update. Each item links to the provider's own incident report. There is one feed per service and one for all services together.

JSON snapshot. /api/status.json lists every service with level, the provider's own description, the time of the last successful reading (checkedAt), the count of consecutive failed reads (failures), open incidents and a 90-character string with one code per day (0 no incident, 1 minor, 2 major, 3 critical, - no record).

JSON detail. /api/service/<id>.json adds the components, the incident record with the text of each official update, and the date from which that record is held (coverageSince).

If you display these states, keep the meaning of nodata: it is the absence of a valid answer. Treating it as operational would defeat the purpose. The method is described on the how it works page.

Questions and answers

What does the badge show when there is no data?

A grey badge with the words "no data". If the official page stops answering, or the collector has not confirmed a state in the last 25 minutes, the badge never falls back to green.

How often do the badge and the feeds change?

The collector runs every minute and reads 2 services each time, so every page is re-read every 9 minutes. Caches add a little on top: the JSON snapshot can be up to a minute old, the badge up to 2 minutes and the RSS feeds up to 4 minutes.

Are there usage limits or keys?

No key is needed. The files are small and cached. Please read them at most once a minute per client, which is as often as the data changes.