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
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.
Markdown
[](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.xmlRSS feed for all services
https://outages.watch/feed.xmlJSON detail for GitHub
https://outages.watch/api/service/github.jsonJSON snapshot of the whole board
https://outages.watch/api/status.jsonAll 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.
Service pages to link to
Each badge points to one of these pages.
- Is ChatGPT down?status.openai.comChecking…
- Is Claude down?status.claude.comChecking…
- Is Cursor down?status.cursor.comChecking…
- Is Perplexity down?status.perplexity.comChecking…
- Is Cloudflare down?cloudflarestatus.comChecking…
- Is Vercel down?vercel-status.comChecking…
- Is Netlify down?netlifystatus.comChecking…
- Is DigitalOcean down?status.digitalocean.comChecking…
- Is Supabase down?status.supabase.comChecking…
- Is GitHub down?githubstatus.comChecking…
- Is npm down?status.npmjs.orgChecking…
- Is Twilio down?status.twilio.comChecking…
- Is Discord down?discordstatus.comChecking…
- Is Reddit down?redditstatus.comChecking…
- Is Zoom down?zoomstatus.comChecking…
- Is Dropbox down?status.dropbox.comChecking…
- Is Notion down?notion-status.comChecking…
- Is Figma down?status.figma.comChecking…
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.