Planes are late.
You aren’t.
A flight status API with signed webhooks. Subscribe once, and every gate change, delay, departure and arrival reaches your endpoint.FlightByte is a flight status API with signed webhooks. Look a flight up, subscribe once, and every gate change, delay, departure, arrival and baggage belt reaches your endpoint, retried and logged. It’s two requests.
- Status
- Scheduled
- Gate
- A22
- Departs
- 12:10
- Arrives
- 13:45
- Baggage
- —
- departure.gate.changedDeparture gate changed from A11 to A22
{ "id": "evt_2f0c8a4e-6f1d-4d0d-9a3b-0f1e2d3c4b5a", "type": "flight.updated", "createdAt": "2026-09-08T07:38:00.000Z", "subscriptionId": "sub_7fd9fa92faf3475db99b", "flightKey": "TK1848:2026-09-08@ATH-IST", "flight": "{ …the full snapshot… }", "changes": [ { "type": "departure.gate.changed", "path": "departure.gate", "from": "A11", "to": "A22", "message": "Departure gate changed from A11 to A22" } ], "metadata": { "bookingId": "BK-1042" }}
Every number on this page is a property of the API, not a marketing figure.
Two requests. Every change.
One GET to look a flight up, one POST to watch it. Everything after that arrives at your endpoint, signed.
1curl "https://api.flightbyte.dev/v1/flights/TK/1848/2026-09-12" \2 -H "x-api-key: $FLIGHTBYTE_KEY"
{ "flightKey": "TK1848:2026-09-12@ATH-IST", "carrier": { "iata": "TK", "name": "Turkish Airlines" }, "status": { "code": "S", "label": "Scheduled", "phase": "scheduled", "delayed": false }, "departure": { "airport": { "iata": "ATH", "city": "Athens", "timezone": "Europe/Athens" }, "terminal": "M", "gate": "A11", "times": { "scheduledGate": { "utc": "2026-09-12T09:10:00.000Z", "local": "2026-09-12T12:10:00.000" } }, "delayMinutes": null }, "arrival": { "airport": { "iata": "IST", "city": "Istanbul" }, "baggage": null, "times": { "scheduledGate": { "utc": "2026-09-12T10:45:00.000Z" } } }, "equipment": { "tailNumber": "TC-LTP", "name": "Airbus A321neo" }, "alternates": [], "cached": false}
The watching, the diffing, and the delivering.
Pulled out of a product that runs on it, so the hard parts of a flight webhook are already written.
Three minutes at the gate, twelve hours a week out. The poll schedule tightens as departure nears and lets go after the baggage belt.
See the scheduleSigned, retried, logged. HMAC-SHA256 on every delivery, eight retries with backoff, a record per attempt.
See the delivery logOne number, two legs, no guessing. An ambiguous flight number gets a 400 with both legs, never a guess at one of them.
See the 400A real event, on demand. A test event through the real pipeline, signed with the real secret, readable back.
See a test eventBuilt inside a product. Opened for yours.
The same subscription, three different messages: to a driver, to a passenger, to a front desk.
Ready to watch a flight?
An API key, the docs, and two requests stand between you and your first webhook.
A free key in a minute, no card. Paid plans are paid by card in the dashboard.