Skip to main content
GET /api/live-data/fast Returns moving entities that are refreshed in the background every 60 seconds. Supports optional bounding-box filtering to reduce payload size for a specific map viewport.
Rate limit: 120 requests per minute per IP.

Query parameters

s
number
South bound of the bounding box (latitude, −90 to 90). All four bbox parameters must be provided together for filtering to apply.
w
number
West bound of the bounding box (longitude, −180 to 180).
n
number
North bound of the bounding box (latitude, −90 to 90).
e
number
East bound of the bounding box (longitude, −180 to 180).

Response

commercial_flights
object[]
Commercial airline flight state vectors. Filtered by bbox when provided.
military_flights
object[]
Military aircraft state vectors.
private_flights
object[]
General aviation / private aircraft state vectors.
private_jets
object[]
Tracked private jet subset with enriched ownership data.
tracked_flights
object[]
Small set of specifically tracked aircraft. Always returned in full (not bbox-filtered).
ships
object[]
AIS vessel positions. Filtered by bbox when provided.
cctv
object[]
Live CCTV camera locations (TfL, LTA Singapore, Austin TX, NYC DOT). Filtered by bbox.
uavs
object[]
Detected UAV / drone positions.
liveuamap
object[]
LiveUAMap conflict events. Filtered by bbox.
gps_jamming
object[]
GPS jamming / spoofing detections. Filtered by bbox.
satellites
object[]
Real-time satellite positions computed from NORAD TLEs (SGP4 propagation). Filtered by bbox.
satellite_source
string
Source label for the satellite data ("celestrak", "spacetrack", or "none").
freshness
object
ISO 8601 timestamp for each data source indicating when it was last successfully fetched.

ETag caching

This endpoint returns an ETag header. The ETag incorporates both the payload hash and the bbox parameters, so a full-world request and a filtered request generate different ETags. Send If-None-Match: <etag> on subsequent requests. If the data has not changed, the server returns HTTP 304 Not Modified with no body.

Examples

curl http://localhost:8000/api/live-data/fast
{
  "commercial_flights": [
    {
      "icao": "4B1A2C",
      "callsign": "BAW123",
      "lat": 51.47,
      "lng": -0.46,
      "altitude": 35000,
      "speed": 480,
      "heading": 270
    }
  ],
  "military_flights": [],
  "private_flights": [],
  "private_jets": [],
  "tracked_flights": [],
  "ships": [],
  "cctv": [],
  "uavs": [],
  "liveuamap": [],
  "gps_jamming": [],
  "satellites": [],
  "satellite_source": "celestrak",
  "freshness": {
    "flights": "2024-01-15T12:00:00",
    "ships": "2024-01-15T12:00:01",
    "satellites": "2024-01-15T12:00:02"
  }
}

Build docs developers (and LLMs) love