Loading live status…
Loading live status…
isuptime reads 102 providers' own status feeds, in eleven different formats, and turns them into one comparable answer. This page is the method: what is read, what is done to it, and where the result stops being trustworthy.
isuptime does not test the services itself. It does not open a connection to GitHub and try a push, or send a prompt to an API to see whether it answers. It reads what the provider publishes about itself, which is a deliberate choice with a real cost — covered at the bottom of this page.
There is no standard for that. 89 of the 102 services here publish a Statuspage-style JSON document; the remaining 13 publish something of their own, and 7 of those do not publish a current status at all — only a list of incidents, from which the current state has to be inferred.
| Format | Services | What it gives us |
|---|---|---|
| Statuspage v2 | 89 | An aggregate indicator plus a list of components, each with its own status. The richest of the formats, and the most common. |
| Instatus | 2 | A single overall state for the whole page — up, has issues, under maintenance. No component detail is published, so none can be shown. |
| AWS RSS | 1 | An event feed rather than a status document. Each entry is one service in one region; entries from the last 48 hours are treated as current. |
| Azure RSS | 1 | A feed that is completely empty when nothing is wrong, so the presence of an entry is itself the signal. There is no status field, so the level is read from the wording of the entry. |
| Salesforce incidents | 1 | A list of currently active incidents, each graded by Salesforce as a degradation or a disruption with minor or major impact. Read instead of the per-instance list, which puts hundreds of instances into one incident. |
| Google incident feed | 3 | A shared feed across Google products, filtered to incidents naming the product in question. Anything without an end time is still open. |
| Firebase incidents | 1 | The same shape as Google's, on its own host. Status is derived from open incidents, since no live indicator is published. |
| Slack current | 1 | An overall state plus the list of currently active incidents. Slack shards workspaces, so an incident may be total for one team and invisible to another. |
| Heroku current-status | 1 | Two environments reported separately as colours. isuptime reads Production, and counts a maintenance window as degraded rather than as an outage. |
| Statping | 1 | A self-hosted monitor rather than a declared status: one boolean per service, set by the provider's own probes. Faster to admit a problem than a human process, and noisier, so the share of services affected decides the verdict. |
| PlayStation regions | 1 | One document per sales region, as a tree of countries, services and resources, with every level repeating the level below it. isuptime reads Europe and the Americas together and weighs an entry by how many countries and services it actually covers. |
Every request has a ten-second ceiling, and a page render will wait no more than nine seconds for the slowest provider before reporting that one as unreachable. A feed that could not be fetched is recorded as unreachable rather than as an outage — a request we failed to make is not evidence about the service behind it.
Providers describe themselves in their own vocabulary: “minor”, “critical”, “SERVICE_DISRUPTION”, “HASISSUES”, a colour, an RSS headline. To compare forty-four services on one screen, all of it has to collapse into the same small set.
Some information is lost in that collapse, which is why each service page also quotes the provider's own description verbatim underneath the verdict.
This is the part that most distinguishes what isuptime reports from simply repeating a headline, and it exists because repeating the headline turned out to be wrong often enough to matter.
A Statuspage aggregate indicator describes the worst thing currently happening, not how much of the service it touches. Those are very different claims. Elastic publishes a component for every combination of product, cloud provider and region — hundreds of them — and a problem confined to a single AWS region left its headline reading “Partial System Outage” for months. Taken literally, that renders as Is Elastic down? Yes, which was untrue for essentially every user.
Cloudflare is the sharper case. Its status page lists individual edge locations alongside its products, and there is almost always a point of presence somewhere — Guam, Arica, Baghdad — in maintenance or routing around a fault. That is an anycast network behaving exactly as designed. But it holds the aggregate indicator amber, and isuptime was reporting “Cloudflare is Degraded” directly against Cloudflare's own green “All systems operational”, on the strength of a number Cloudflare itself files under a separate tab.
So the verdict is checked against two things before it is published:
Two limits keep this honest. It only ever softens a verdict — isuptime never claims a provider is in worse shape than the provider says. And it softens by at most one step, so a service flying a major-outage flag with no incident posted is still reported as degraded, not waved through as fine.
The obvious way to build this is to check the providers whenever somebody loads the page. It is also wrong, and wrong in a way that is invisible until you look at the resulting number. Traffic-driven sampling means the uptime figure measures the hours when people happened to be watching. A quiet night produces no data, and no data reads as “nothing happened” rather than “everything was fine” — while an outage big enough to send people looking gets sampled far more heavily than a calm afternoon.
So a scheduled job does the checking and writes the history, on its own cadence, independently of traffic. A page load reads that history; it does not contribute to it.
The same job publishes a snapshot that page renders can serve directly, which is what makes a cold visit fast instead of making the first visitor wait out a fan-out across all 102 providers. If the scheduler itself stops, that snapshot is treated as stale after two missed runs and pages go back to fetching live — a dead scheduler should cost you speed, not correctness.
The figure on each card is labelled No outage reported, not uptime, and the distinction is the point. It is the share of recorded checks in which the provider's own feed was not reporting an outage, over a rolling 30-day window. Uptime, as the word is normally used, means the fraction of time a service actually worked — which is not something that can be derived from reading a status page. Three decisions inside that sentence are worth spelling out, because they are the difference between figures that look similar and mean different things.
Two consequences follow. A service can show 100% here after a genuinely bad week, because a month of degraded performance is not an outage. And a provider that leaves a real outage open for weeks — some do, for a single region — will show a low figure for the whole time it stays open.
Incident history and the list of affected components come from separate feeds, fetched for one service at a time when its page is opened. That is a deliberate narrowing: the page used to request the full cross-service report and discard everything but the one service it was about, which cost roughly eighty upstream requests to display the contents of two.
Incidents are shown for the last 30 days, newest first, and every link points back to the provider's own incident page. For AWS, where each RSS entry encodes a service and a region, the region is parsed out so regional impact can be shown separately.
All of the above sits on one foundation: providers write their own status pages. That is the ceiling on how good this can be, and no amount of processing raises it.
Each service page carries a section on what to check when its provider is green and you are still stuck, because the answer is different for every one of them. If something here looks wrong — a service misreporting, a feed that has moved — please get in touch.
Live status for all 102 services, or read more about why isuptime exists.
Open the live dashboard