What it detects
| Event | When it is reported |
|---|---|
| Emergency squawks | An aircraft sets transponder code 7500 (unlawful interference), 7600 (radio failure) or 7700 (general emergency) |
| Emergency status | An aircraft broadcasts an ADS-B emergency status without the matching squawk |
| Rapid descent | Sustained descent of 5,000 ft/min or more, above 5,000 ft |
| GPS interference | In one area, at least two aircraft, and at least 15% of those there, broadcast degraded satellite navigation (NIC or NACp below the ADS-B minimums) |
| Circling | Two or more full circles in 15 minutes, 5,000 ft or more above the ground |
| Holding | A racetrack pattern for 20 minutes or more, 5,000 ft or more above the ground |
| Loitering | 30 minutes within 30 km without orbiting, 5,000 ft or more above the ground |
| Turnback | A steady course reversed by 120° or more at cruise |
| Vessel distress | An AIS search-and-rescue transmitter (AIS-SART, man overboard or EPIRB) is active, or a vessel broadcasts a safety message beginning MAYDAY. Test transmissions are ignored |
Every aircraft is reported, military and private included. ADS-B is broadcast in the clear by the operator's choice, and the same data is already public. Each event carries the aircraft's open-data flags (military, privacy programmes such as PIA and LADD) so you can filter on them.
How sure is it?
Every event shows a tier, and the facts behind it: which aggregator confirmed it, how many independent stations agreed, and who reviewed it. It never shows a score.
- Flash Seconds old and not yet confirmed. Treat it as a lead.
- Fixed Confirmed independently: another aggregator saw the same, or separate stations agreed.
- Assessed Reviewed by a verifier with an earned record, or by a trusted organisation.
Data relayed from an aggregator is never trusted on its own. It stays Flash until a different aggregator confirms it.
The API
Past events can be searched, filtered and exported. Sign in with any AT Protocol account (a Bluesky account works) at api.ionosphere.network/login to get a free API key. Ionosphere stores your DID and a hash of the key, and no email address or password.
curl -H "Authorization: Bearer ion_…" \
"https://api.ionosphere.network/v1/events?tier=fixed&flag=military&bbox=38,-78,40,-76"
| Endpoint | Returns |
|---|---|
GET /v1/events | Events, newest first. Filter by from, to, kind, tier, flag, cell (H3), bbox, icao24, text q; page with limit and cursor |
GET /v1/event?uri= | Every version of one event, oldest first |
GET /v1/export?format= | The same selection as GeoJSON, CSV, JSON Lines or Parquet, each row citing its signed record |
GET /v1/stats | What the index holds |
The records
Every event is a chain of network.ionosphere.sounding records. Each new version supersedes the last, and none is ever changed, so any version can be cited. Soundings are built from network.ionosphere.ping records, and each sounding names the exact pings it used. You can read them directly from the publishing accounts' repositories, or follow them live through any AT Protocol relay, without using this site at all.
| Account | Publishes |
|---|---|
did:plc:v7jck74ank374heibwj27dd6 | Soundings: the fused events |
did:plc:oceu7ngnuokgxzcxvsinexhj | Pings relayed from adsb.fi, each marked as relayed |
did:plc:n24fgkf2mpydooqp3rzped26 | Vessel pings relayed from aisstream.io, each marked as relayed |
curl "https://pds.ionosphere.network/xrpc/com.atproto.repo.listRecords?repo=did:plc:v7jck74ank374heibwj27dd6&collection=network.ionosphere.sounding"
Status
This is the first version. It runs on a single machine with no availability target, so expect outages. The records are published to Ionosphere's own AT Protocol server on that machine, so they are unavailable while it is down. But each record is signed, so any copy someone has kept stays verifiable, and this page stays up regardless. It currently relays aircraft data for the area around Washington, DC, and vessel distress worldwide, as far as aisstream.io's receivers reach. Vessel events have only this one source so far, so they stay at the flash tier. Stations that publish their own receivers' data can join at any time: their reports count as independent observations.
Credits
- Aircraft data relayed from adsb.fi, under its terms. Confirmations are checked against adsb.lol (ODbL 1.0) and adsb.fi.
- Vessel data relayed from aisstream.io, under its terms.
- The map's live traffic layer is drawn from those same two feeds. It is a view, not evidence: nothing in it is signed or stored, and only events become records.
- Map by OpenFreeMap, with data © OpenStreetMap contributors.
- Terrain from NOAA's ETOPO 2022 global relief model.