Flight data & API

JSON endpoints served by the local RADARX24 Node server. All paths are relative to your app origin.

GET /api/health

Service heartbeat and airport database size.

curl /api/health

GET /api/aircraft

Live merged aircraft near a point or bbox.

/api/aircraft?lat=32.62&lon=44.02&dist=300&world=1
Query: lat, lon, dist (nm), world=1|0, lamin/lomin/lamax/lomax, clip=0|1

GET /api/history · /api/history/snapshot · /api/history/track/:hex

Local per-flight trail archive (default TRACK_RETENTION_DAYS=7). Primary files: data/tracks/YYYY-MM-DD/{hex}.ndjson — not a map dump. Snapshot reconstructs positions from those trails; oldest day deleted wholesale. Keyless — uses the server’s existing ADS-B aggregation (no paid tokens).

/api/history
/api/history/snapshot?ts=1730900000000&lamin=&lomin=&lamax=&lomax=
/api/history/track/a835af?from=&to=&limit=2000
Env: TRACK_RETENTION_DAYS=7 · TRACK_HISTORY=0 to disable
Script: node scripts/record-flight-trails.mjs --smoke

GET /api/airports

Search and filter the OurAirports-derived database.

/api/airports?q=lhr&type=large&limit=50
Query: q, type (large|medium|small), limit, optional bbox

GET /api/airports/:code

Single airport by IATA or ICAO code.

/api/airports/EGLL

GET /api/airlines

Airline directory search.

/api/airlines?q=qatar&limit=100

GET /api/aircraft/:hex

Static aircraft metadata (registration, type, operator) via adsbdb.

/api/aircraft/a835af

GET /api/photo-src · GET /api/photo

Aircraft photos from free public sources only (Planespotters public API, adsbdb, airport-data CDN). No API keys or tokens are used or required. /api/photo-src returns a JSON CDN URL for instant img.src; /api/photo serves a cached file or 302-redirects to the free CDN.

/api/photo-src?hex=8940C9
/api/photo?hex=8940C9
/api/photo?reg=A9C-NG

GET /api/route/:callsign

Filed route origin/destination for a callsign.

/api/route/QTR123

GET /api/search

Unified search across airports, airlines, live flights, and hex metadata.

/api/search?q=BGW

GET /api/stats

Live traffic snapshot, database counts, and upstream feed attempt log.

/api/stats

GET /api/nearest-airport

Closest non-small airport to a coordinate pair (distance in nautical miles).

/api/nearest-airport?lat=51.47&lon=-0.45