Free for 3 flights a month, no sales call

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. It’s two requests.

POST https://yourapp.com/hooks/flights[ WEBHOOK ]
TK1848Turkish Airlines · ATH → IST
flight.updated
Status
Scheduled
Gate
A22
Departs
12:10
Arrives
13:45
Baggage
—
  • departure.gate.changed
next poll in 10 min · within 2h of departure
[ .JSON ]x-flightbyte-signature: t=1788853080,v1=5f1c9a…e3b2
{  "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"  }}
200 OK · delivered in 95 mssignature verified

Every number on this page is a property of the API, not a marketing figure.

2requests to integrate
23typed change events
3 mintightest poll, at the gate
12 hslowest poll, a week out
HMAC-SHA256on every delivery
8retries, with backoff
20failures before suspension
90 daysahead you can subscribe
5 minsignature tolerance
3flights a month, free
2requests to integrate
23typed change events
3 mintightest poll, at the gate
12 hslowest poll, a week out
HMAC-SHA256on every delivery
8retries, with backoff
20failures before suspension
90 daysahead you can subscribe
5 minsignature tolerance
3flights a month, free

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 →
[ 01 / 03 ]·Developer first
Developer first

Two requests. Every change.

One GET to look a flight up, one POST to watch it. Everything after that arrives at your endpoint, signed. With curl, or the official SDK for Node.js, Python, Go, Ruby or Dart.

1curl "https://api.flightbyte.dev/v1/flights/TK/1848/2026-09-12" \2  -H "x-api-key: $FLIGHTBYTE_KEY"
200 OK · trimmed[ .JSON ]
{  "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.

All SDKs

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.

[ 02 / 03 ]·Built for the receiving end
Built for the receiving end

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.

Cadence follows the flight

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 schedule
Every attempt on record

Signed, retried, logged. HMAC-SHA256 on every delivery, eight retries with backoff, a record per attempt.

See the delivery log
Honest at the edges

One number, two legs, no guessing. An ambiguous flight number gets a 400 with both legs, never a guess at one of them.

See the 400
Test before you ship

A real event, on demand. A test event through the real pipeline, signed with the real secret, readable back.

See a test event
Also: 23 typed change types, subscriptions 90 days ahead, suspension instead of spam.See every feature →
[ 03 / 03 ]·Use cases
On the receiving end

Built inside a product. Opened for yours.

The same subscription, three different messages: to a driver, to a passenger, to a front desk.

Each one is the integration as it runs, with the change types it subscribes to and why.All use cases →
Get started

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.