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.
In a third-party test of 20 flights on six continents, not run by us, FlightByte reported touchdown first on 19. Nov 11, 2026
See the benchmark →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}
Official SDKs
The same calls, typed, in five languages.
Responses typed as the API sends them, an error class for each status, and webhook signatures verified in one call. Open source under MIT, with no dependencies outside the standard library except in Dart.
- Node.jsNode 20.19+, Bun, Deno, Cloudflare Workers, Vercel EdgeDocsnpmGitHub
npm install flightbyte - PythonPython 3.10+DocsPyPIGitHub
pip install flightbyte - GoGo 1.23+Docspkg.go.devGitHub
go get github.com/FlightByte-dev/flightbyte-go - RubyRuby 3.1+, Rails, Sinatra, any Rack appDocsRubyGemsGitHub
gem install flightbyte - DartDart 3.5+ servers and CLIs, and the backend behind a Flutter appDocspub.devGitHub
dart pub add flightbyte
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.