Historical flight status API
The flight already left.
Know exactly what happened.
A historical flight status API: query any past flight by number and date and get actual block times, aircraft and arrival delay — resolved into a single, boring, dependable record.
Live console
Real archived records, replayed exactly as the endpoint returns them.
Read-only replay of archived records · sign in to run a query
Departure
LGW
LGW (LGW)
Arrival
AGP
AGP (AGP)
Aircraft
A320 EC-MES
Registration
EC-MES
Record
Historical
Process
Three steps, zero ambiguity
Name the flight
Enter the carrier code and number — LH400, BA249, UA935. The parser normalizes spacing and case for you.
Pick the date
Any past departure date. The query resolves against the historical archive, not the live schedule.
Read the record
Actual departure and arrival, block time, aircraft and delay — returned as one immutable record.
Built like an instrument panel
Every leg, on record
Scheduled versus actual on both ends, aircraft, registration and carrier for each historical departure and arrival.
One query shape
Flight number plus a date. No airport codes, no carrier lookup tables, no pagination games.
Sealed resolve
You send a number and a date. You get a settled record. How we produce it stays ours — not a vendor list, not a walkthrough.
Built for audits
Settled records are frozen in Postgres with delay math included, ready for claims, invoicing and reconciliation.
API
One request, one record
The console on this page is the product. Send the same query with your key and you get one resolved record back — no SDK, no vendor accounts, no pagination.
lookup.sh
# resolve a settled flight
curl -sS 'https://flight-api.dev/api/v1/flights/status\
?flightNumber=LH400&flightDate=2026-03-12'\
-H 'x-api-key: flt_…'
# → 200
{
"selected": { "status": "delayed", "delayMinutes": 74 },
"meta": { "cached": true }
}Popular queries
Routes people look up most
Counted from the archive — long-haul records with compensation-relevant delays lead the charts.
1,240
Carriers
9,800
Airports
10 yrs
History
Sealed
Resolver
FAQ
Fine print, upfront
How far back does the archive go?
Roughly 10 years of departures and arrivals, across 1,240 carriers and 9,800 airports. Once a flight is more than three UTC days old and ended in a disruption, we freeze the record — so the answer you query today matches what you queried last quarter.
How is a record resolved?
A closed resolver we own. One request, one record. Internals are not part of the contract and do not ship in the payload.
What counts as a delay?
We compute drift on both ends: actual versus scheduled for departure and arrival. The headline delay is the arrival drift in minutes, which is what most compensation and audit rules reference.
Is this for live tracking?
No — deliberately. Flights inside the three-day settle window are resolved live but never cached, and a flight still in the air returns a clean not_found until the record finalizes.
Ready when you are
Start with one flight.
Create an account, mint a key and resolve your first record in a single request.
Get access