Schedule Changes API
/schedule-changes returns flights whose filed schedule changed: a new time, a new flight number, a flight that disappeared, or a flight that was added.
/advanced-flights-schedules and /advanced-future-flights still return the flight list. This endpoint returns the changes.
Send since or cursor, not both. Send at least one of airline_iata, iataCode (departure or arrival) or flight_iata.
date_from and date_to limit the flight dates. change_type is retimed, renumbered, removed or added.
min_minutes defaults to 5 and applies to time changes. limit defaults to 100 and cannot be higher than 500.
A flight is one airline, flight number, local date, origin and destination. A codeshare that the timetable lists under its own airline and flight number is its own flight, so a time change on the operating flight also shows on each of those marketed numbers. A marketed number that only appears as a remark on the operating flight does not produce a separate change.
previous and current contain only the fields that changed. An added flight has no previous. A removed flight has no current.
A renumbered flight puts the old number in previous.flight_iata and the new number in current.flight_iata. The same airline and the same airport pair qualify only when the times stay within 30 minutes; otherwise the feed returns a removal and an addition.
A flight that leaves the timetable is removed. It is not described as cancelled.
Times are the local time at the airport, HH:MM. detected_at is UTC.
data_source is direct when the airline publishes the schedule itself, and aggregated otherwise. When an airline has a direct schedule, that one is the feed for that airline.
The last 90 days can be queried. Older changes stay stored and are not returned. An empty data array with success: true means nothing changed. That response does not spend a call. It still counts toward the plan rate limit.
Pro, Premium, Elite and Enterprise read the full 90 days. Trial, Starter and Basic can call the endpoint for the last 7 days, with one airline or one airport per request.
A missing filter, a missing since/cursor, or a since older than the window you can read, returns 400.
Example API Request:
Use Edit parameters to customize the call, then run it and review the live response below.
API Response Objects
A successful response lists the changes. data is an empty array when nothing changed.
| Field | Description |
|---|---|
change_id
|
Stable id of this change. Pass the page cursor, not this id, to continue. |
change_type
|
retimed, renumbered, removed or added. |
detected_at
|
When the change was detected, in UTC (ISO 8601). |
flight_date
|
Local flight date. For a renumbered flight this is the new flight number's date, which is the same date. |
airline_iata
|
Airline IATA code. |
flight_iata
|
Flight number, including the airline code. On a renumbered flight this is the new number. |
dep_iata
|
Departure airport IATA code. |
arr_iata
|
Arrival airport IATA code. |
previous
|
Only the fields that changed, before the change. Omitted when the flight was added. |
current
|
Only the fields that changed, after the change. Omitted when the flight was removed. |
data_source
|
direct when the airline publishes the schedule, aggregated otherwise. |
next_cursor
|
Pass this as cursor to read changes after this page, without repeats or gaps. |
has_more
|
true when another page is available at this cursor. |
Example response
{
"success": true,
"data": [
{
"change_id": "ch_01HZX3",
"change_type": "retimed",
"detected_at": "2026-11-27T03:20:00Z",
"flight_date": "2027-03-08",
"airline_iata": "LH",
"flight_iata": "LH400",
"dep_iata": "FRA",
"arr_iata": "JFK",
"previous": { "dep_time": "10:55", "arr_time": "13:35" },
"current": { "dep_time": "11:20", "arr_time": "14:00" },
"data_source": "direct"
}
],
"next_cursor": "eyJpZCI6MTIzNDV9",
"has_more": false
}