Developer documentation

The same live feed behind every Mach 2, for your own code. Read the aircraft over any point on earth, follow a single flight gate-to-gate, and pull a live departure board — one key, plain JSON over HTTPS, no SDK required.

The feed pairs the airplanes.live ADS-B network with our route engine — a data layer the two of us developed together. You get positions at radio speed and routes already resolved; how the sausage is made stays our problem, not yours.

https://data.flighttrackerled.com/v1 · keys from your owner portal · data by airplanes.live × FlightTrackerLED
Quickstart — what’s overhead right now

Authentication

Every request carries a bearer key in the Authorization header — including playground calls on this page. Email us for a trial key (self-serve keys in the owner portal are coming); paid plans get production keys per app or environment so you can revoke them independently.

Authorization header
$ curl https://data.flighttrackerled.com/v1/flights/overhead \
  -H "Authorization: Bearer ftl_live_9x2kq7hd41m8"

Keys are shown once at creation. Treat them like passwords: call the API from your server, never from client-side code — a key in a browser bundle is a key you’ve published. A missing or revoked key returns 401 unauthorized.

Rate limits

Every key gets 60 requests per minute. Overhead snapshots are rebuilt about every 5 seconds server-side, so polling faster just returns the same snapshot — a 5–10 second interval is the sweet spot.

X-RateLimit-LimitYour per-minute ceiling (60).
X-RateLimit-RemainingRequests left in the current window.
X-RateLimit-ResetUnix time the window resets.

Past the limit you get a 429 with retry_after in seconds. Need a higher ceiling? The Fleet plan lifts it to 300 requests per minute, pooled across your keys.

Plans & pricing

The API is licensed for commercial use — two flat plans, no metering surprises, cancel monthly. Every plan includes all three endpoints, the playground, and keys managed in the owner portal.

Builder

$250 /month
  • Commercial license for one product
  • All endpoints — overhead, flights, departures
  • 60 requests / minute
  • 2 production keys
  • Email support
Start with Builder

Building something bigger — resale, embedded hardware, or a use the plans don’t cover? Write us and we’ll work it out.

GET/v1/flights/overhead

Overhead scanner

The live aircraft over a point, exactly as the Mach 2 sees them. Give it a coordinate and a radius, get every aircraft inside the circle — ident, resolved route, altitude, ground speed, and distance from your point, nearest first.

Query parameters

NameTypeDescription
latnumberREQUIREDLatitude of the center point, −90 to 90.
lonnumberREQUIREDLongitude of the center point, −180 to 180.
radius_miintegeroptionalScan radius in statute miles, 1–100. Default 15.
alt_min_ftintegeroptionalIgnore aircraft below this barometric altitude.
alt_max_ftintegeroptionalIgnore aircraft above this altitude.
dirstringoptionalHeading filter, e.g. 240-300 — only aircraft tracking within the arc.

Response

countAircraft in the snapshot.
freshness_sAge of the snapshot in seconds — usually under 5.
flights[].identCallsign or registration.
flights[].routeResolved origin → destination, or local for pattern work.
flights[].alt_ftBarometric altitude, feet.
flights[].gs_ktGround speed, knots.
flights[].dist_miDistance from your point, statute miles.
flights[].sourcenetwork, or local_adsb when the reading came off your own receiver (v1.5.4+).
GET /v1/flights/overhead

GET/v1/flights/{ident}

Track a flight

One flight, gate to gate. Pass a flight number (UA970, DL2214) or a tail number (N425PC) and follow it from pushback to arrival — schedule against actuals, live position, and how far along it is.

Response

identNormalized callsign.
statusscheduled · taxiing · enroute · landed · cancelled
aircraftICAO type designator, e.g. B77W.
originiata, scheduled and actual departure times.
destinationiata and current eta.
positionLat/lon, altitude, ground speed — live while enroute.
progress_pctHow far along the route, 0–100.

A flight that isn’t operating today returns 404 not_found — check the ident, or try the registration instead.

GET /v1/flights/UA970

GET/v1/airports/{iata}/departures

Departure board

The Departure Board scene, as JSON: upcoming departures for an airport with schedule, gate, and live status — ready to render on anything from a dashboard to a lobby screen.

Query parameters

NameTypeDescription
airlinestringoptionalICAO airline filter, e.g. UAL.
limitintegeroptionalRows to return, 1–50. Default 10, soonest first.

Response

airportEchoed IATA code.
departures[].identFlight callsign.
departures[].destDestination IATA.
departures[].schedScheduled departure, airport-local time.
departures[].gateGate, when the airport publishes one.
departures[].statuson_time · boarding · delayed · departed · cancelled
GET /v1/airports/ORD/departures

Playground

Fire a real overhead scan — the exact request the docs describe, against the live API, using the key from the sidebar. No key yet? Ask for a trial key, or run it keyless to see a clearly-marked simulated response.

Whatever the playground returns also lights up the LED panel at the bottom of the page.

Response
# Press “Send request” to scan the sky around that point.

Errors

Errors are JSON with a stable code and a human message; the HTTP status matches the code. Retry 429 and 503 after the wait — everything else means the request needs fixing.

HTTPCodeMeaning
400invalid_requestA parameter is missing or out of range — the message names it.
401unauthorizedMissing, malformed, or revoked API key.
404not_foundFlight not active today, or unknown airport code.
429rate_limitedOver 60 req/min — wait retry_after seconds.
503snapshot_unavailableThe upstream feed is rebuilding — retry in a few seconds.

Changelog

v1.5.4
Aug 2026

Added source on overhead aircraft — local_adsb entries come straight off your own receiver at ~1-second freshness.

v1.5.0
May 2026

New /airports/{iata}/departures endpoint with gate and status fields — the Departure Board, as JSON.

v1.4.2
Feb 2026

Heading filters (dir) on overhead scans; progress_pct on tracked flights.

2,048 pixels, same as the box on your desk — and it’s rendering the last API response on this page, the way a Mach 2 would. Run the playground and watch it pick up your flights; click the panel to cycle LED colors. Data by airplanes.live × FlightTrackerLED · © 2026