SITA Flight Status Notification API Service
- 1 Revision History
- 2 Registration and API Sign Up
- 3 Flight Status Notification API
- 4 Error Response
- Appendix A - Status Codes
- Appendix B - Flight Status Notification Request Examples
- Appendix C - Flight Status Notification Response Examples
- Appendix D - Flight Status Notification Response Schema
- Appendix E - Diverted Flights
- Appendix F - Flight Status Notification Fields
1 Revision History
Date | Document Version | Description | Author |
---|---|---|---|
|
|
|
|
2 Registration and API Sign Up
To access the APIs you will need a registration key, also known as an API key. This can be obtained by creating an account on https://www.developer.aero/ and registering your interest for access to the API.
2.1 API Key Usage
The API key will be passed in an HTTP header as follows:
-
Name of header: x-apikey
-
Value of header: The API key as generated for the application.
2.2 Security
-
All incoming requests will be REST over HTTPS.
-
Users are authenticated using their API key.
-
Certain response payload elements will be filtered based on permissions associated with the x-apikey value used.
-
The API key used in the initial Flight Status Notification REST call will be included as the response header 'X-apikey' in the pushed update message returned to the end user.
3 Flight Status Notification API
3.1 Introduction
The SITA Flight Status Notification API is a REST-based subscription service which provides pushed updates for flights around the world.
A user may:
-
create flight update subscriptions in order to have real time flight updates issued to an endpoint of their choice
-
delete subscriptions which they have previously created
Flight Update notifications may be requested by issuing a POST with the relevant body payload to https://{env.url}/flifo/flightinfo/v2/notifications
For example:
https://flifo.api.aero/flifo/flightinfo/v2/notifications
https://flifo-qa.api.aero/flifo/flightinfo/v2/notifications
A user may subscribe for flight update notifications using any combination of airport, airline, flight number, arrival or departure and operation date.
Subscriptions may be made for flights with an operation date between 2 days prior and 14 days in advance of current UTC date.
If ‘operationDate’ is not provided the system will default to the current UTC date.
Example scenarios:
Scenario 1: User issues the below POST body.
'operationDate' is provided so the system will create a subscription for AA1 departing JFK on 2022-05-10 (local JFK date).
{
"operationDate": "2022-05-10",
"airlineCode": "AA",
"flightNumber": "1",
"airportCode": "JFK",
"arrivalDeparture": "D",
"notifyEndpoint": "https://dummy.endpoint/updates",
"view": "local",
"sendCurrentStatus": true
}
Scenario 2: User issues the below POST body on 2022-05-17 UTC.
'operationDate' is NOT provided so the system will use the 2022-05-17 UTC date as the operation date of the flight in the subscription. The end result is that a subscription will have been created for this user for AA1 departing JFK on 2022-05-17 (local JFK date).
{
"airlineCode": "AA",
"flightNumber": "1",
"airportCode": "JFK",
"arrivalDeparture": "D",
"notifyEndpoint": "https://dummy.endpoint/updates",
"view": "local",
"sendCurrentStatus": true
}
The user may also toggle the value of the ‘view’ parameter depending on their use case. Please see the Notes section for further details of the ‘view’ parameter.
The ‘sendCurrentStatus’ parameter can be set to true if a user wishes to be issued the current flight details at the time of subscription for any flights which match their subscription criteria.
Each update pushed to the subscribers notifyEndpoint will contain exactly one status change.
The changed status is reflected in the updateField element. Additionally, both the previous (if available) and current (new) data is reflected.
The table in Appendix F - 'Flight Status Notification Fields' enumerates the list of possible changed status fields.
Update types produced are dependent on the permissions associated with the apikey used in the initial flight notification subscription request.
Please see 'Appendix F - Flight Status Notification Fields' for details of fields for which notification update messages may be issued.
3.2 Resources - FlightInfo Notifications V2
This section describes the Flight Status Notification API service.
Detailed API structure, example requests and responses, JSON schema for request (where appropriate) and responses, and error response codes and formats are included.
3.2.1 POST Subscribe to Flight Updates
POST /flifo/flightinfo/v2/notifications
This resource enables users to subscribe to flight update notifications for any combination of airport, airline, flight number, arrival or departure and operation date.
operationDate
The operationDate is considered to be the local date on which the flight departed/arrived.
sendCurrentStatus
A user can set the sendCurrentStatus value to 'true' in order to request that they are issued with flight update message(s) at the time they issue the subscription request. The messages issued will be for the current flight status of any flights which match the users subscription criteria.
POST /flifo/flightinfo/v2/notifications
Request headers
Name | Optional | Description |
---|---|---|
Content-Type |
false |
Content type of this request. Required value is 'application/json' |
X-apiKey |
false |
Authorization header that contains the API key. |
Request fields
Path | Type | Description |
---|---|---|
|
|
Specify if a user wishes to have a copy of the current flight record(s) issued to them upon subscription. |
|
|
View 'full' or 'local' leg, based on direction. Default value is local. See notes for further details. |
|
|
Notification endpoint to send the Notification to. |
|
|
Local date of operation (yyyy-MM-dd). Defaults to current UTC date. |
|
|
1-character direction indicator (A/D). |
|
|
Flight number. |
|
|
2-character airline IATA code. |
|
|
3-character airport IATA code. |
Response fields
Path | Type | Description |
---|---|---|
|
|
Specify if a user wishes to have a copy of the current flight record(s) issued to them upon subscription. |
|
|
1-character direction indicator (A/D). |
|
|
Local operation date of the flight. |
|
|
Flight number used in the subscription request. |
|
|
IATA/ICAO code for the airline in the subscription request. |
|
|
IATA/ICAO code for the airport in the subscription request. |
|
|
Indicates whether or not the subscription request was successful. |
Curl request
$ curl 'https://flifo.api.aero/flifo/flightinfo/v2/notifications' -i -X POST \
-H 'Content-Type: application/json' \
-H 'X-apiKey: ff228ab88758a84637f1f88d86899365' \
-d '{
"airportCode" : "AMS",
"airlineCode" : "KL",
"flightNumber" : "1352",
"notifyEndpoint" : "http://endpoint.com",
"view" : "full",
"sendCurrentStatus" : false
}'
Request body
{
"airportCode" : "AMS",
"airlineCode" : "KL",
"flightNumber" : "1352",
"notifyEndpoint" : "http://endpoint.com",
"view" : "full",
"sendCurrentStatus" : false
}
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 148
{
"subscribedForUpdates" : true,
"airportCode" : "AMS",
"airlineCode" : "KL",
"flightNumber" : "1352",
"sendCurrentStatus" : false
}
3.2.2 DELETE Unsubscribe from Flight Updates
DELETE /flifo/flightinfo/v2/notifications
When a flight update is received for a flight for which a user subscription exists, a flight update notification message will be issued to the user.
Please see 'Appendix C - Flight Status Notification Response Examples' for update message examples and 'Appendix D - Flight Status Notification Response Schema' for the full notification message schema.
This resource provides the user with the ability to remove a flight update subscription from the system. This will result in the user receiving no further flight updates for the relevant airport/airline/flightNumber/operationDate combination.
operationDate
In this scenario the operationDate is considered to be the local date on which the flight departed/arrived.
The body of the DELETE request made must match exactly with the corresponding POST message body which was used to create the subscription
DELETE /flifo/flightinfo/v2/notifications
Request headers
Name | Optional | Description |
---|---|---|
Content-Type |
false |
Content type of this request. Required value is 'application/json'. |
X-apiKey |
false |
Authorization header that contains the API key. |
Request fields
Path | Type | Description |
---|---|---|
|
|
Specify if a user wishes to have a copy of the current flight record(s) issued to them upon subscription. |
|
|
View 'full' or 'local' leg, based on direction. Default value is local. See notes for further details. |
|
|
Notification endpoint to send the Notification to. |
|
|
Local date of operation (yyyy-MM-dd). Defaults to current UTC date. |
|
|
1-character direction indicator (A/D). |
|
|
Flight number. |
|
|
2-character airline IATA code. |
|
|
3-character airport IATA code. |
Response fields
Path | Type | Description |
---|---|---|
|
|
Specify if a user wishes to have a copy of the current flight record(s) issued to them upon subscription. |
|
|
1-character direction indicator (A/D). |
|
|
Local operation date of the flight. |
|
|
Flight number used in the subscription request. |
|
|
IATA/ICAO code for the airline in the subscription request. |
|
|
IATA/ICAO code for the airport in the subscription reques.t |
|
|
Indicates whether or not the subscription request was successful. |
Curl request
$ curl 'https://flifo.api.aero/flifo/flightinfo/v2/notifications' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'X-apiKey: ff228ab88758a84637f1f88d86899365' \
-d '{
"airportCode" : "AMS",
"airlineCode" : "KL",
"flightNumber" : "1352",
"notifyEndpoint" : "http://endpoint.com",
"view" : "full",
"sendCurrentStatus" : false
}'
Request body
{
"airportCode" : "AMS",
"airlineCode" : "KL",
"flightNumber" : "1352",
"notifyEndpoint" : "http://endpoint.com",
"view" : "full",
"sendCurrentStatus" : false
}
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 181
{
"subscribedForUpdates" : false,
"airportCode" : "AMS",
"airlineCode" : "KL",
"flightNumber" : "1352",
"flightDate" : "2020-01-22",
"sendCurrentStatus" : false
}
3.3 Notes
3.3.1 'view' parameter
'view' parameter
The 'view' query parameter can have the value 'local' or 'full' (default value is 'local'). The purpose of this parameter is to enable the user to decide if they wish to see just the 'local' view of the flight (e.g. only the departure details if 'direction' parameter provided was 'D') or the 'full' view which will return both departure and arrival details for the flight(s) if 'direction' parameter provided was 'D'.
See 'Appendix C - Flight Status Notification Response Examples' for sample 'local' and 'full' response payloads.
4 Error Response
Response fields
Path | Type | Description |
---|---|---|
|
|
Object that holds the error information. |
|
|
Error Description. |
|
|
Array of errors. |
|
|
Indicates an invalid query parameter. |
|
|
API Internal Error Code. |
HTTP response
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 159
{
"errors" : {
"error" : [ {
"description" : "Error Description",
"code" : 9999,
"invalidParam" : "parameterName"
} ]
}
}
Appendix A - Status Codes
Code | Description |
---|---|
AD |
Arrived-Diverted |
AP |
Approach |
AR |
Arrived |
AT |
See Agent |
BC |
Boarding Complete |
BD |
Boarding |
BO |
Boarded |
CD |
Baggage Delay |
CO |
Closed |
CL |
Closed |
CX |
Cancelled |
DE |
Deleted |
DL |
Delayed |
DP |
Departed |
DV |
Diverted |
EN |
Enroute |
EX |
Expected |
FB |
First Bag Unloaded |
FC |
Final Call |
GC |
Gate Closed |
GG |
Go To Gate |
GT |
Gate Time (Gate Time HH:MM can be found in gateInfo field) |
IA |
In Air |
ID |
In Air-Diverted |
IR |
In Range |
LB |
Last Bag Unloaded |
LD |
Landed-Diverted |
LN |
Landed |
LR |
Landed-Recovered |
OG |
Landed (On Ground) |
ON |
On Time |
TX |
Taxiing |
PD |
Possible Delay |
RA |
Arrived-Recovered |
RE |
In Air-Recovered |
RG |
Return To Gate |
SC |
Scheduled |
UN |
Unknown |
VN |
TEST |
WX |
Weather |
Appendix B - Flight Status Notification Request Examples
Example Flight Status Notification request payloads.
Request updates for KL1417 arriving AMS on 2020-01-01.
{
"airportCode": "AMS",
"airlineCode": "KL",
"flightNumber": "1417",
"arrivalDeparture": "A",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local"
}
Request updates for all KL flights arriving AMS on 2020-01-01.
{
"airportCode": "AMS",
"airlineCode": "KL",
"arrivalDeparture": "A",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local"
}
Request updates for all KL flights either departing/arriving AMS on 2020-01-01.
{
"airportCode": "AMS",
"airlineCode": "KL",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local"
}
Request updates for all AMS flights either departing/arriving on 2020-01-01.
{
"airportCode": "AMS",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local"
}
Request updates for all KL flights worldwide arriving on 2020-01-01.
{
"airlineCode": "KL",
"arrivalDeparture": "A",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local"
}
Request updates for all KL flights worldwide either departing/arriving on 2020-01-01.
{
"airlineCode": "KL",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local"
}
Request updates for KL1417 arriving AMS on 2020-01-01 and request the current flight details at the time of subscription be issued to the ‘notifyEndpoint’.
{
"airportCode": "AMS",
"airlineCode": "KL",
"flightNumber": "1417",
"arrivalDeparture": "A",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local",
"sendCurrentStatus": true
}
Request updates for all KL flights arriving AMS on 2020-01-01 and request the current flight details at the time of subscription be issued to the ‘notifyEndpoint’.
{
"airportCode": "AMS",
"airlineCode": "KL",
"arrivalDeparture": "A",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local",
"sendCurrentStatus": true
}
Request updates for all KL flights either departing/arriving AMS on 2020-01-01 and request the current flight details at the time of subscription be issued to the ‘notifyEndpoint’.
{
"airportCode": "AMS",
"airlineCode": "KL",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local",
"sendCurrentStatus": true
}
Request updates for all AMS flights either departing/arriving on 2020-01-01 and request the current flight details at the time of subscription be issued to the ‘notifyEndpoint’.
{
"airportCode": "AMS",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local",
"sendCurrentStatus": true
}
Request updates for all KL flights worldwide arriving on 2020-01-01 and request the current flight details at the time of subscription be issued to the ‘notifyEndpoint’.
{
"airlineCode": "KL",
"arrivalDeparture": "A",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local",
"sendCurrentStatus": true
}
Request updates for all KL flights worldwide either departing/arriving on 2020-01-01 and request the current flight details at the time of subscription be issued to the ‘notifyEndpoint’.
{
"airlineCode": "KL",
"operationDate": "2020-01-01",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local",
"sendCurrentStatus": true
}
Appendix C - Flight Status Notification Response Examples
‘Local’ view Format
User has subscribed as below for all LHR departures on 2021-07-28 with ‘view=local’:
{
"airportCode": "LHR",
"arrivalDeparture": "D",
"operationDate": "2021-07-28",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "local",
"sendCurrentStatus": false
}
An example STATUS update payload follows:
{
"airportCode": "LHR",
"adi": "D",
"updateField": "STATUS",
"previous": "DP",
"current": "IA",
"flightRecord": [
{
"flightIdentifier": {
"operatingCarrier": {
"iataCode": "UA",
"flightNumber": "928",
"name": "United Airlines"
},
"marketingCarriers": [
{
"iataCode": "AC",
"flightNumber": "5357",
"name": "Air Canada"
},
{
"iataCode": "LX",
"flightNumber": "3044",
"name": "Swiss International Air Lines"
},
{
"iataCode": "SN",
"flightNumber": "9089",
"name": "Brussels Airlines"
},
{
"iataCode": "LH",
"flightNumber": "9354",
"name": "Lufthansa"
},
{
"iataCode": "OS",
"flightNumber": "7851",
"name": "Austrian Airlines"
}
],
"aircraft": {
"iataCode": "787",
"registration": "N26966"
}
},
"departure": {
"airport": {
"iataCode": "ORD",
"cityText": "Chicago"
},
"scheduled": "2021-07-28T10:00:00+01:00",
"estimated": "2021-07-28T10:13:00+01:00",
"actual": "2021-07-28T10:04:00+01:00",
"status": "IA",
"statusText": "In Air",
"terminal": "2",
"gate": "B31"
},
"serviceType": "J",
"duration": "510",
"status": "IA",
"statusText": "In Air"
}
]
}
An example DIVERSION update payload follows:
{
"airportCode": "LHR",
"adi": "D",
"updateField": "DIVERSION",
"previous": "{\"recovery\":{\"airport\":{\"iataCode\":\"DUB\",\"icaoCode\":\"EIDW\",\"cityText\":\"Dublin\"}}}",
"current": "{\"recovery\":{\"iataCode\":\"UA\",\"icaoCode\":\"UAL\",\"flightNumber\":\"928\",\"name\":\"United Airlines\",\"airport\":{\"iataCode\":\"DUB\",\"icaoCode\":\"EIDW\",\"cityText\":\"Dublin\"},\"scheduled\":\"2021-07-28T10:00:00+01:00\"}}",
"flightRecord": [
{
"flightIdentifier": {
"operatingCarrier": {
"iataCode": "UA",
"flightNumber": "928",
"name": "United Airlines"
},
"marketingCarriers": [
{
"iataCode": "AC",
"flightNumber": "5357",
"name": "Air Canada"
},
{
"iataCode": "LX",
"flightNumber": "3044",
"name": "Swiss International Air Lines"
},
{
"iataCode": "SN",
"flightNumber": "9089",
"name": "Brussels Airlines"
},
{
"iataCode": "LH",
"flightNumber": "9354",
"name": "Lufthansa"
},
{
"iataCode": "OS",
"flightNumber": "7851",
"name": "Austrian Airlines"
}
],
"aircraft": {
"iataCode": "787",
"registration": "N26966"
}
},
"departure": {
"airport": {
"iataCode": "ORD",
"cityText": "Chicago"
},
"scheduled": "2021-07-28T10:00:00+01:00",
"estimated": "2021-07-28T10:13:00+01:00",
"actual": "2021-07-28T10:04:00+01:00",
"status": "DV",
"statusText": "Diverted",
"terminal": "2",
"gate": "B31",
"diversion": {
"recovery": {
"airport": {
"iataCode": "DUB",
"icaoCode": "EIDW",
"cityText": "Dublin"
},
"flightNumber": "928",
"iataCode": "UA",
"icaoCode": "UAL",
"name": "United Airlines",
"scheduled": "2021-07-28T10:00:00+01:00"
}
}
},
"serviceType": "J",
"duration": "510",
"status": "DV",
"statusText": "Diverted"
}
]
}
Note: As the user has requested ‘view=local’ only the departure details of this flight are returned. Fields not available will be omitted from the payload (no nulls or 0 length strings).
‘Full’ view Format
User has subscribed as below for all LHR departures on 2021-07-28 with ‘view=full’:
{
"airportCode": "LHR",
"arrivalDeparture": "D",
"operationDate": "2021-07-28",
"notifyEndpoint": "https://myendpoint.notification/flights",
"view": "full"
}
An example STATUS update payload follows:
{
"airportCode": "LHR",
"adi": "D",
"updateField": "STATUS",
"previous": "DP",
"current": "IA",
"flightRecord": [
{
"flightIdentifier": {
"operatingCarrier": {
"iataCode": "UA",
"flightNumber": "928",
"name": "United Airlines"
},
"marketingCarriers": [
{
"iataCode": "AC",
"flightNumber": "5357",
"name": "Air Canada"
},
{
"iataCode": "LX",
"flightNumber": "3044",
"name": "Swiss International Air Lines"
},
{
"iataCode": "SN",
"flightNumber": "9089",
"name": "Brussels Airlines"
},
{
"iataCode": "LH",
"flightNumber": "9354",
"name": "Lufthansa"
},
{
"iataCode": "OS",
"flightNumber": "7851",
"name": "Austrian Airlines"
}
],
"aircraft": {
"iataCode": "787",
"registration": "N26966"
}
},
"departure": {
"airport": {
"iataCode": "ORD",
"cityText": "Chicago"
},
"scheduled": "2021-07-28T10:00:00+01:00",
"estimated": "2021-07-28T10:13:00+01:00",
"actual": "2021-07-28T10:04:00+01:00",
"status": "DV",
"statusText": "Diverted",
"terminal": "2",
"gate": "B31"
},
"arrival": {
"airport": {
"iataCode": "ORD",
"cityText": "Chicago"
},
"scheduled": "2021-07-28T12:30:00-05:00",
"estimated": "2021-07-28T11:34:00-05:00",
"status": "ON",
"statusText": "On time",
"terminal": "5",
"gate": "M11",
"carousel": "IT"
},
"serviceType": "J",
"duration": "510",
"status": "IA",
"statusText": "In Air"
}
]
}
An example DIVERSION update payload follows:
{
"airportCode": "LHR",
"adi": "D",
"updateField": "DIVERSION",
"previous": "{\"recovery\":{\"airport\":{\"iataCode\":\"DUB\",\"icaoCode\":\"EIDW\",\"cityText\":\"Dublin\"}}}",
"current": "{\"recovery\":{\"iataCode\":\"UA\",\"icaoCode\":\"UAL\",\"flightNumber\":\"928\",\"name\":\"United Airlines\",\"airport\":{\"iataCode\":\"DUB\",\"icaoCode\":\"EIDW\",\"cityText\":\"Dublin\"},\"scheduled\":\"2021-07-28T10:00:00+01:00\"}}",
"flightRecord": [
{
"flightIdentifier": {
"operatingCarrier": {
"iataCode": "UA",
"flightNumber": "928",
"name": "United Airlines"
},
"marketingCarriers": [
{
"iataCode": "AC",
"flightNumber": "5357",
"name": "Air Canada"
},
{
"iataCode": "LX",
"flightNumber": "3044",
"name": "Swiss International Air Lines"
},
{
"iataCode": "SN",
"flightNumber": "9089",
"name": "Brussels Airlines"
},
{
"iataCode": "LH",
"flightNumber": "9354",
"name": "Lufthansa"
},
{
"iataCode": "OS",
"flightNumber": "7851",
"name": "Austrian Airlines"
}
],
"aircraft": {
"iataCode": "787",
"registration": "N26966"
}
},
"departure": {
"airport": {
"iataCode": "ORD",
"cityText": "Chicago"
},
"scheduled": "2021-07-28T10:00:00+01:00",
"estimated": "2021-07-28T10:13:00+01:00",
"actual": "2021-07-28T10:04:00+01:00",
"status": "DV",
"statusText": "Diverted",
"terminal": "2",
"gate": "B31",
"diversion": {
"recovery": {
"airport": {
"iataCode": "DUB",
"icaoCode": "EIDW",
"cityText": "Dublin"
},
"flightNumber": "928",
"iataCode": "UA",
"icaoCode": "UAL",
"name": "United Airlines",
"scheduled": "2021-07-28T10:00:00+01:00"
}
}
},
"arrival": {
"airport": {
"iataCode": "ORD",
"cityText": "Chicago"
},
"scheduled": "2021-07-28T12:30:00-05:00",
"estimated": "2021-07-28T11:34:00-05:00",
"status": "DV",
"statusText": "Diverted",
"terminal": "5",
"gate": "M11",
"carousel": "IT",
"diversion": {
"recovery": {
"airport": {
"iataCode": "DUB",
"icaoCode": "EIDW",
"cityText": "Dublin"
},
"flightNumber": "928",
"iataCode": "UA",
"icaoCode": "UAL",
"name": "United Airlines",
"scheduled": "2021-07-28T10:00:00+01:00"
}
}
},
"serviceType": "J",
"duration": "510",
"status": "DV",
"statusText": "Diverted"
}
]
}
Note: As the user has requested ‘view=full’ both the departure and arrival details of this flight are returned. Fields not available will be omitted from the payload (no nulls or 0 length strings).
Appendix D - Flight Status Notification Response Schema
{
"type" : "object",
"properties" : {
"airportCode" : {
"type" : "string"
},
"adi" : {
"type" : "string"
},
"updateField" : {
"type" : "string"
},
"previous" : {
"type" : "string"
},
"current" : {
"type" : "string"
},
"flightRecord" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"flightIdentifier" : {
"type" : "object",
"properties" : {
"operatingCarrier" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"flightNumber" : {
"type" : "string"
},
"name" : {
"type" : "string"
}
}
},
"marketingCarriers" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"flightNumber" : {
"type" : "string"
},
"name" : {
"type" : "string"
}
}
}
},
"aircraft" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"model" : {
"type" : "string"
},
"registration" : {
"type" : "string"
},
"callSign" : {
"type" : "string"
}
}
}
}
},
"departure" : {
"type" : "object",
"properties" : {
"airport" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"city" : {
"type" : "string"
},
"cityText" : {
"type" : "string"
}
}
},
"scheduled" : {
"type" : "string"
},
"estimated" : {
"type" : "string"
},
"actual" : {
"type" : "string"
},
"status" : {
"type" : "string"
},
"statusText" : {
"type" : "string"
},
"terminal" : {
"type" : "string"
},
"gate" : {
"type" : "string"
},
"gateRemark" : {
"type" : "string"
},
"gateRemarkText" : {
"type" : "string"
},
"carousel" : {
"type" : "string"
},
"flightKindIndicator" : {
"type" : "string"
},
"stand" : {
"type" : "string"
},
"checkIn" : {
"type" : "string"
},
"chute" : {
"type" : "string"
},
"standSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"checkInSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"carouselSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"gateSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"chuteSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"route" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"sequenceNumber" : {
"type" : "string"
}
}
}
},
"flightStats" : {
"type" : "object",
"properties" : {
"passengers" : {
"type" : "object",
"properties" : {
"bookedTotal" : {
"type" : "string"
},
"bookedFirst" : {
"type" : "string"
},
"bookedBusiness" : {
"type" : "string"
},
"bookedEconomy" : {
"type" : "string"
},
"actualTotal" : {
"type" : "string"
},
"actualFirst" : {
"type" : "string"
},
"actualBusiness" : {
"type" : "string"
},
"actualEconomy" : {
"type" : "string"
},
"actualTransfer" : {
"type" : "string"
},
"actualTransit" : {
"type" : "string"
},
"reducedMobility" : {
"type" : "string"
},
"adult" : {
"type" : "string"
},
"child" : {
"type" : "string"
},
"infant" : {
"type" : "string"
}
}
},
"baggage" : {
"type" : "object",
"properties" : {
"count" : {
"type" : "string"
},
"load" : {
"type" : "string"
},
"totalWeight" : {
"type" : "string"
},
"cargo" : {
"type" : "string"
},
"mail" : {
"type" : "string"
}
}
}
}
},
"customProperties" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"key" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
},
"events" : {
"type" : "object",
"properties" : {
"ALDT" : {
"type" : "string"
},
"AIBT" : {
"type" : "string"
},
"AOBT" : {
"type" : "string"
},
"ATOT" : {
"type" : "string"
},
"ELDT" : {
"type" : "string"
},
"EIBT" : {
"type" : "string"
},
"EOBT" : {
"type" : "string"
},
"ETOT" : {
"type" : "string"
},
"TOBT" : {
"type" : "string"
},
"TTOT" : {
"type" : "string"
}
}
},
"version" : {
"type" : "integer"
},
"diversion" : {
"type" : "object",
"properties" : {
"original" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"flightNumber" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"airport" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"city" : {
"type" : "string"
},
"cityText" : {
"type" : "string"
}
}
},
"scheduled" : {
"type" : "string"
}
}
},
"recovery" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"flightNumber" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"airport" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"city" : {
"type" : "string"
},
"cityText" : {
"type" : "string"
}
}
},
"scheduled" : {
"type" : "string"
}
}
}
}
},
"delayPrediction" : {
"type" : "object",
"properties" : {
"minutes" : {
"type" : "integer"
},
"prediction" : {
"type" : "string"
},
"message" : {
"type" : "string"
}
}
}
}
},
"arrival" : {
"type" : "object",
"properties" : {
"airport" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"city" : {
"type" : "string"
},
"cityText" : {
"type" : "string"
}
}
},
"scheduled" : {
"type" : "string"
},
"estimated" : {
"type" : "string"
},
"actual" : {
"type" : "string"
},
"status" : {
"type" : "string"
},
"statusText" : {
"type" : "string"
},
"terminal" : {
"type" : "string"
},
"gate" : {
"type" : "string"
},
"gateRemark" : {
"type" : "string"
},
"gateRemarkText" : {
"type" : "string"
},
"carousel" : {
"type" : "string"
},
"flightKindIndicator" : {
"type" : "string"
},
"stand" : {
"type" : "string"
},
"checkIn" : {
"type" : "string"
},
"chute" : {
"type" : "string"
},
"standSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"checkInSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"carouselSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"gateSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"chuteSlots" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"externalName" : {
"type" : "string"
},
"startTime" : {
"type" : "string"
},
"endTime" : {
"type" : "string"
},
"area" : {
"type" : "string"
}
}
}
},
"route" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"sequenceNumber" : {
"type" : "string"
}
}
}
},
"flightStats" : {
"type" : "object",
"properties" : {
"passengers" : {
"type" : "object",
"properties" : {
"bookedTotal" : {
"type" : "string"
},
"bookedFirst" : {
"type" : "string"
},
"bookedBusiness" : {
"type" : "string"
},
"bookedEconomy" : {
"type" : "string"
},
"actualTotal" : {
"type" : "string"
},
"actualFirst" : {
"type" : "string"
},
"actualBusiness" : {
"type" : "string"
},
"actualEconomy" : {
"type" : "string"
},
"actualTransfer" : {
"type" : "string"
},
"actualTransit" : {
"type" : "string"
},
"reducedMobility" : {
"type" : "string"
},
"adult" : {
"type" : "string"
},
"child" : {
"type" : "string"
},
"infant" : {
"type" : "string"
}
}
},
"baggage" : {
"type" : "object",
"properties" : {
"count" : {
"type" : "string"
},
"load" : {
"type" : "string"
},
"totalWeight" : {
"type" : "string"
},
"cargo" : {
"type" : "string"
},
"mail" : {
"type" : "string"
}
}
}
}
},
"customProperties" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"key" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
},
"events" : {
"type" : "object",
"properties" : {
"ALDT" : {
"type" : "string"
},
"AIBT" : {
"type" : "string"
},
"AOBT" : {
"type" : "string"
},
"ATOT" : {
"type" : "string"
},
"ELDT" : {
"type" : "string"
},
"EIBT" : {
"type" : "string"
},
"EOBT" : {
"type" : "string"
},
"ETOT" : {
"type" : "string"
},
"TOBT" : {
"type" : "string"
},
"TTOT" : {
"type" : "string"
}
}
},
"version" : {
"type" : "integer"
},
"diversion" : {
"type" : "object",
"properties" : {
"original" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"flightNumber" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"airport" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"city" : {
"type" : "string"
},
"cityText" : {
"type" : "string"
}
}
},
"scheduled" : {
"type" : "string"
}
}
},
"recovery" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"flightNumber" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"airport" : {
"type" : "object",
"properties" : {
"iataCode" : {
"type" : "string"
},
"icaoCode" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"city" : {
"type" : "string"
},
"cityText" : {
"type" : "string"
}
}
},
"scheduled" : {
"type" : "string"
}
}
}
}
},
"delayPrediction" : {
"type" : "object",
"properties" : {
"minutes" : {
"type" : "integer"
},
"prediction" : {
"type" : "string"
},
"message" : {
"type" : "string"
}
}
}
}
},
"serviceType" : {
"type" : "string"
},
"duration" : {
"type" : "string"
},
"status" : {
"type" : "string"
},
"statusText" : {
"type" : "string"
},
"subscribedForUpdates" : {
"type" : "boolean"
}
}
}
}
}
}
Appendix E - Diverted Flights
A diverted flight is a flight that has been re-routed from its original arrival destination to a new arrival destination.
Flight diversions are unforeseen events which can be caused by factors such as:
-
Aircraft emergency
-
Passenger emergency
-
Mechanical failure
-
Poor weather conditions
A recovery flight is a flight that is created to route the aircraft/passengers from the diversion airport to their original arrival destination.
When the Flight Status Notification API service has been notified that a flight has been diverted, a 'diversion' element is added to the departure flight record. This diversion element contains a 'recovery' element which includes details of the airport the flight has been diverted to and also details of the recovery flight if/when it has been confirmed.
Diverted flight notification scenario
Customer has subscribed for updates for flight UA 745 10MAY FLL → DEN with 'view=FULL'.
Flight was diverted after departure and now has routing of FLL → COS → DEN.
Departure/Arrival flight records will be updated with details of the diversion/recovery flight.
First 'DIVERSION' update notification issued to customer will inform them that the flight has been diverted and include details of the diversion airport.
{
"airportCode": "FLL",
"adi": "D",
"updateField": "DIVERSION",
"previous": "null",
"current": "{\"recovery\":{\"airport\":{\"iataCode\":\"COS\",\"icaoCode\":\"KCOS\",\"cityText\":\"Colorado Springs\"},\"mappedToParent\":false}}",
"flightRecord": [
{
"flightIdentifier": {
"operatingCarrier": {
"iataCode": "UA",
"flightNumber": "745",
"name": "United Airlines"
},
"aircraft": {
"iataCode": "739",
"icaoCode": "B739",
"model": "Boeing 737-900 pax",
"registration": "N62894"
}
},
"departure": {
"airport": {
"iataCode": "FLL",
"icaoCode": "KFLL",
"name": "Fort Lauderdale Hollywood International Airport",
"city": "Fort Lauderdale",
"cityText": "Fort Lauderdale"
},
"scheduled": "2022-05-10T15:34:00-04:00",
"status": "ID",
"statusText": "In Air-Diverted",
"terminal": "1",
"gate": "C3",
"diversion": {
"recovery": {
"airport": {
"iataCode": "COS",
"icaoCode": "KCOS",
"cityText": "Colorado Springs"
}
}
}
},
"arrival": {
"airport": {
"iataCode": "DEN",
"icaoCode": "KDEN",
"name": "Denver International Airport",
"city": "Denver",
"cityText": "Denver"
},
"scheduled": "2022-05-10T18:00:00-06:00",
"status": "ID",
"statusText": "In Air-Diverted",
"gate": "B46",
"carousel": "10",
"diversion": {
"recovery": {
"airport": {
"iataCode": "COS",
"icaoCode": "KCOS",
"cityText": "Colorado Springs"
}
}
}
},
"serviceType": "J",
"duration": "266",
"status": "ID",
"statusText": "In Air-Diverted"
}
]
}
The next 'DIVERSION' update notification which may be issued to customer will inform them of the recovery flight details, e.g., UA 745 COS → DEN.
{
"airportCode": "FLL",
"adi": "D",
"updateField": "DIVERSION",
"previous": "{\"recovery\":{\"airport\":{\"iataCode\":\"COS\",\"icaoCode\":\"KCOS\",\"cityText\":\"Colorado Springs\"},\"mappedToParent\":false}}",
"current": "{\"recovery\":{\"iataCode\":\"UA\",\"icaoCode\":\"UAL\",\"flightNumber\":\"745\",\"name\":\"United Airlines\",\"airport\":{\"iataCode\":\"COS\",\"icaoCode\":\"KCOS\",\"cityText\":\"Colorado Springs\"},\"mappedToParent\":false,\"scheduled\":\"2022-05-10T13:34:00-0600\"}}",
"flightRecord": [
{
"flightIdentifier": {
"operatingCarrier": {
"iataCode": "UA",
"flightNumber": "745",
"name": "United Airlines"
},
"aircraft": {
"iataCode": "739",
"icaoCode": "B739",
"model": "Boeing 737-900 pax",
"registration": "N62894"
}
},
"departure": {
"airport": {
"iataCode": "FLL",
"icaoCode": "KFLL",
"name": "Fort Lauderdale Hollywood International Airport",
"city": "Fort Lauderdale",
"cityText": "Fort Lauderdale"
},
"scheduled": "2022-05-10T15:34:00-04:00",
"status": "ID",
"statusText": "In Air-Diverted",
"terminal": "1",
"gate": "C3",
"diversion": {
"recovery": {
"iataCode": "UA",
"icaoCode": "UAL",
"flightNumber": "745",
"name": "United Airlines",
"airport": {
"iataCode": "COS",
"icaoCode": "KCOS",
"cityText": "Colorado Springs"
},
"scheduled": "2022-05-10T13:34:00-06:00"
}
}
},
"arrival": {
"airport": {
"iataCode": "DEN",
"icaoCode": "KDEN",
"name": "Denver International Airport",
"city": "Denver",
"cityText": "Denver"
},
"scheduled": "2022-05-10T18:00:00-06:00",
"status": "ID",
"statusText": "In Air-Diverted",
"gate": "B46",
"carousel": "10",
"diversion": {
"recovery": {
"iataCode": "UA",
"icaoCode": "UAL",
"flightNumber": "745",
"name": "United Airlines",
"airport": {
"iataCode": "COS",
"icaoCode": "KCOS",
"cityText": "Colorado Springs"
},
"scheduled": "2022-05-10T18:00:00-06:00"
}
}
},
"serviceType": "J",
"duration": "266",
"status": "ID",
"statusText": "In Air-Diverted"
}
]
}
Appendix F - Flight Status Notification Fields
Field | Description |
---|---|
NEW_FLIGHT |
Identifies a new flight created within FLIFO. This is the first possible notification which can be generated for a flight. |
GATE |
Gate change. |
CLAIM |
Baggage Claim/Carousel. |
ACTUAL |
Actual time of departure or arrival. |
ESTIMATED |
Estimated time of departure or arrival. |
AIRCRAFT |
Aircraft type change. |
TERMINAL |
Terminal change. |
DURATION |
Flight duration change. |
TAILNO |
Tail number change. |
STATUS |
Flight status change. |
SCHEDULED |
Scheduled departure/arrival time change. |
SERVICE_TYPE |
Change of flight service type. |
STAND |
Stand allocation change. |
STAND_SLOT |
Stand slot change. |
CHECK_IN |
Check-in desk allocation. |
CHECK_IN_SLOT |
Check-in slot change. |
AIRCRAFT_OBJECT |
Aircraft object change. |
CAROUSEL_SLOT |
Carousel slot change. |
GATE_SLOT |
Gate slot change. |
CHUTE_SLOT |
Baggage chute slot change. |
ROUTE |
Route change. |
FLIGHT_STATS |
Flight Stats change, i.e., passenger counts/baggage counts. |
EVENTS |
Events change, i.e., updates to off/on block times. |
MARKETING_CARRIER |
Change to listed marketing/codeshare flight details. |
CUSTOM_PROPERTIES |
Change to details contained within the custom properties key-value mappings. |
DIVERSION |
Diversion details change. |
DELAY_PREDICTION |
Delay Prediction change. |