Skip to content

Outages ​

Probes disconnect all the time: a home router reboots, a cable gets pulled. An outage is when many of them disconnect together, in a way no amount of ordinary churn explains. Atlas watches for four kinds.

typewhat droppedwhat it usually means
controllerthe probes attached to one RIPE Atlas controllera problem with that piece of RIPE's infrastructure
fleetseveral controllers serving different kinds of probe, at oncesomething upstream of all of them — one event, listed once
countrya large share of one country's probes, usually across many networksa power cut, a shutdown, a cut cable — something hitting the place, not one network
asna large share of one network's probes, or of one place within a big networkan outage at that network, not at RIPE

A controller outage is also an outage in every network and country that controller serves. When one is under way, the network and country outages it causes are not listed separately — the controller entry already says it.

A network outage inside a country outage is listed as well: both are true, and they say different things. The network entry names the country outage it is part of (country_outage).

How it is decided ​

  • Controllers are judged against their own normal: a controller that usually loses one probe in five minutes is in trouble at ten; one that usually loses eleven is not. Counts are distinct probes, so a single probe flapping cannot trigger anything.
  • Networks are judged by the share of their connected probes that drop within fifteen minutes. The share it takes depends on the network's size: half of a ten-probe network, a fifth of a fifty-probe one, one in twenty of a thousand-probe one. A part of a big network in one place is judged as a network of its own size.
  • Countries are judged by how much of the country is still down: of the probes that were up an hour ago, the share that is down now. That catches a blackout where probes on batteries go one by one over hours, which a count of disconnects in a short window misses. The share it takes depends on the country's size: 60% of a country with ten probes up, 30% of one with fifty, 15% of one with a thousand. Once open, it stays open while the same figure over the last six hours is over the line. When many countries are down at once, it is not any one country's outage, and none is listed.
  • An outage ends when the probes come back — most of the ones that dropped reconnecting, not the disconnect rate calming down. It is measured from the first disconnect to the last probe back. One that has not recovered after a day is closed as expired. A country outage whose probes have been down for more than six hours without coming back is closed as faded: still down, no longer measured.

Live and reconstructed ​

Each outage says how it was recorded, in source:

  • live — detected as it happened, and posted to the Atlas fediverse account at the time.
  • scan — reconstructed afterwards from that day's connection events, judged by the same rules against the probes that were connected that day. This is how outages from before live detection existed are listed.

A reconstructed outage has the same fields. It names countries but not cities, and the network's name is today's.

The API ​

No key needed. Both endpoints may be cached for a minute.

GET /outages/                     newest first
GET /outages/{id}                 one outage, by the id the listing gave it
parameter
since_tsoutages still going, or that ended, at or after this (Unix seconds)
until_tsoutages that started before this
typecontroller (fleet events included), country or asn
sourcelive or scan
ccone country (two letters): its country outages, and network outages with probes there
limit1–200, default 50
json
{
  "id": "asn:3320:1788503100",
  "type": "asn",
  "status": "closed",
  "source": "live",
  "started_ts": 1788503112,
  "started_str": "2026-09-04 07:05:12",
  "closed_ts": 1788505630,
  "closed_str": "2026-09-04 07:47:10",
  "duration_s": 2518,
  "closed_reason": "recovered",
  "total_dropped": 31,
  "returned": 27,
  "recovered_fraction": 0.871,
  "asn": 3320,
  "holder": "Deutsche Telekom AG",
  "country": "DE",
  "scope": "network",
  "region": null,
  "places": {
    "countries": [{ "cc": "DE", "n": 31 }],
    "cities": [{ "city": "Munich", "cc": "DE", "n": 24 }],
    "unknown": 0
  },
  "reopened": 0
}

A country outage:

json
{
  "id": "country:PT:1745836800",
  "type": "country",
  "status": "closed",
  "source": "scan",
  "started_ts": 1745836560,
  "started_str": "2025-04-28 10:36:00",
  "closed_ts": 1745862000,
  "closed_str": "2025-04-28 17:40:00",
  "duration_s": 25440,
  "closed_reason": "faded",
  "total_dropped": 156,
  "returned": 20,
  "recovered_fraction": 0.1282,
  "cc": "PT",
  "country": "Portugal",
  "networks": {
    "asns": [
      { "asn": 2860, "holder": "NOS COMUNICACOES", "n": 98 },
      { "asn": 3243, "holder": "MEO", "n": 25 }
    ],
    "other": 33,
    "unknown": 0,
    "count": 14
  },
  "dominant": null,
  "places": { "subdivisions": [{ "name": "Lisboa", "n": 64 }] },
  "reopened": 0
}

All times are UTC: *_ts in Unix seconds, *_str the same moment as text. An outage still going has status: "open" and no closed_*.

field
closed_reasonrecovered, expired (most probes never came back within a day), faded (a country outage whose probes had been down six hours and were still down), or horizon (a reconstructed outage that ran past the end of what was scanned)
total_dropped, returnedprobes that dropped, and how many of them were back at the end
reopenedhow many times a network dropped again soon after recovering — counted as the same outage
controllerson a fleet entry: each controller, the kind of probe it serves, and its own count
scope, regionregion when the outage is one place inside a bigger network, named by city and country
networkson a country entry: the networks the dropped probes are in, the five largest by name and count, the rest counted
dominanton a country entry: the network, when one holds most of the drops — then it is mostly one carrier's outage, in one country
places.subdivisionson a country entry: where inside the country, by region name and count
country_outageon an asn entry: the id of the country outage it is part of, or null

No outage names a probe. For which probes were affected, look at the connection events for the window.

Atlas — built on RIPE Atlas data.