Skip to main content

Overview

SITA On-Time Performance API provides a standardized mechanism to compare how airlines, airports and ground handlers perform against their published schedules. It allows aviation companies to clearly and quickly see how they are performing against the competition and their own targets.

 

API Features

 

SITA On-Time Performance API allows the user to generate three types of reports.

 

  1. On-Time Performance Ranking - The user can request the highest or lowest performing airports and airlines within a region or globally for any date or period. 
  2. On-Time Performance Comparison – This feature allows the user to compare the on-time performance of a maximum of 20 Airports or Airlines for any given time interval.
  3. Flight Statistics – This is a generic report to obtain the total number of flights departing from an airport including cancelled flights.

 

Calculating OTP

 

SITA calculates on-time performance based on the millions of flight records and real-time updates it processes from airports worldwide every day. 

 

The on-time performance for airlines is the percentage of flights operated by that operator that arrived on time while the on-time performance for airports is the percentage of flights that departed on time.
Some points of note:

  • A flight is considered on time when it arrives/departs within 15 minutes of the scheduled time.
  • Cancelled flights count as not on-time flights.
  • The on-time performance is calculated based only on flights that SITA knows the actual arrival/departure time including cancelled flights.
  • All the times used in these calculations are gate times.

Check out our 'Reference Documentation' page for more details.

Note. SITA is focused on ensuring on-time performance is accurately calculated. To do this, any airlines or airports with more than 50% of their actual flight times missing from the sample are excluded from the report.

Examples of information included: iataCode, region, OnTime, not on-time, cancelled, performance percentage, flights, accuracy, rank, size, unknown

This API answers the below questions:

  • Who are the top-performing airport or airlines in the Americas?
  • Who are the top-performing airports or airlines worldwide?
  • What is the comparison between the OTP of airport X and airport Y?
  • What was the total number of flights departed /arrived at an airport?

 

SITA On-Time Performance API Service

version 1.2.0-SNAPSHOT

1 Revision History

Date Version Description

11 March 2021

1.0

Initial version

29 March 2021

1.1

Updated response descriptions

10 November 2022

1.2

Reformatting and general tidy up

16 February 2023

1.3

Added Airport by Airlines endpoints

27 July 2023

1.4

Added OAuth and Rate Limit information

2 Registration and API Sign Up

To access the APIs you will need an API key. These can be obtained by creating an account on https://www.developer.aero/ and registering your interest for access to the API.

2.1 Authentication

To access the APIs an OAuth access token must be supplied. To obtain an OAuth token a request must be sent to the https://sitaopen.api.aero/otp/oauth/token endpoint using the OAuth2 Client Credential flow, using your API key as the client_id, and your consumer secret as the client_secret.

Once an access token has been obtained, it can be placed in the Authorization HTTP header as a bearer token, for example:

Authorization: Bearer eyJ92dNw9dka...

2.2 Security

  • All incoming requests will be REST over HTTPS.

  • Users are authenticated using their OAuth token.

  • Certain response payload elements will be filtered based on permissions associated with their token.

2.3 Rate Limiting

All incoming requests are subject to a rate limiting restriction. The following headers are included in HTTP responses:

Header Description

X-RateLimit-Limit

The total number of requests allowed in the current time window

X-RateLimit-Remaining

The number of requests left for the current time window

X-RateLimit-Policy

The policy describing how many request per time window are allowed

X-RateLimit-Reset

The number of seconds remaining in the current time window. Header not displayed after rate limit has been exceeded

retry-after

The epoch timestamp at which the current rate limit window resets. Header only displayed after rate limit has been exceeded

3 SITA On Time Performance API Service

The SITA On-Time Performance API is a REST based service which provides information about on-time performances of airports and airlines around the world.

A user may

  • Compare the on-time performances of airports and airlines

  • Search for the ranking of on-time performances of airports and airlines

  • Search for the totals of flights by airports and airlines

3.1 Resources

This section describes each On-Time Performance 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 On-Time Performance Airline and Airport Comparison

3.2.1 GET Airlines comparison

Compare the on-time performances of the given airlines during the specified period (from and to). The results can be grouped by an interval, such as DAILY, WEEKLY and MONTHLY.

Query parameters
Parameter Description

airlineCodes

List of 2-character airport IATA code or 3-character airport ICAO code

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

interval

Interval to be applied when grouping results. E.g.: DAILY, WEEKLY, MONTHLY

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

from

String

Date range start

interval

Object

Results grouping interval. E.g.: DAILY, WEEKLY, MONTHLY

otp[]

Array

Array of OTP results per airline

otp[].airlines[]

Array

Array of Airlines

otp[].airlines[].accuracy

Object

Percentage of flights for which OTP stats are available

otp[].airlines[].canceled

Object

Number of canceled flights

otp[].airlines[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

otp[].airlines[].flights

Object

Flights

otp[].airlines[].iataCode

String

IATA Airline Code

otp[].airlines[].notOnTime

Object

Number of not on-time flights

otp[].airlines[].onTime

Object

Number of on-time flights

otp[].airlines[].performance

Object

On-time performance rating of this flight

otp[].airlines[].unknown

Object

Number of flights with unknown status

otp[].date

String

Date

to

String

Date range end

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/comparison/airlines?airlineCodes=AA,DL,SW&from=2021-01-01&to=2021-01-07&interval=DAILY' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 4940

{
  "from" : "2021-01-01",
  "to" : "2021-01-07",
  "interval" : "DAILY",
  "otp" : [ {
    "date" : "2021-01-01",
    "airlines" : [ {
      "iataCode" : "AA",
      "flights" : 3379,
      "onTime" : 2812,
      "notOnTime" : 388,
      "canceled" : 104,
      "unknown" : 75,
      "performance" : 85.11,
      "accuracy" : 97.78,
      "delay" : null
    }, {
      "iataCode" : "DL",
      "flights" : 2742,
      "onTime" : 2019,
      "notOnTime" : 483,
      "canceled" : 3,
      "unknown" : 237,
      "performance" : 80.6,
      "accuracy" : 91.36,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-02",
    "airlines" : [ {
      "iataCode" : "AA",
      "flights" : 4280,
      "onTime" : 3494,
      "notOnTime" : 660,
      "canceled" : 38,
      "unknown" : 88,
      "performance" : 83.35,
      "accuracy" : 97.94,
      "delay" : null
    }, {
      "iataCode" : "DL",
      "flights" : 3919,
      "onTime" : 3072,
      "notOnTime" : 547,
      "canceled" : 2,
      "unknown" : 298,
      "performance" : 84.84,
      "accuracy" : 92.4,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-03",
    "airlines" : [ {
      "iataCode" : "AA",
      "flights" : 4309,
      "onTime" : 3437,
      "notOnTime" : 763,
      "canceled" : 39,
      "unknown" : 70,
      "performance" : 81.08,
      "accuracy" : 98.38,
      "delay" : null
    }, {
      "iataCode" : "DL",
      "flights" : 4010,
      "onTime" : 2821,
      "notOnTime" : 882,
      "canceled" : 3,
      "unknown" : 304,
      "performance" : 76.12,
      "accuracy" : 92.42,
      "delay" : null
    }, {
      "iataCode" : "SW",
      "flights" : 8,
      "onTime" : 1,
      "notOnTime" : 6,
      "canceled" : 0,
      "unknown" : 1,
      "performance" : 14.29,
      "accuracy" : 87.5,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-04",
    "airlines" : [ {
      "iataCode" : "AA",
      "flights" : 4207,
      "onTime" : 3358,
      "notOnTime" : 694,
      "canceled" : 77,
      "unknown" : 78,
      "performance" : 81.33,
      "accuracy" : 98.15,
      "delay" : null
    }, {
      "iataCode" : "DL",
      "flights" : 3890,
      "onTime" : 3013,
      "notOnTime" : 564,
      "canceled" : 22,
      "unknown" : 291,
      "performance" : 83.72,
      "accuracy" : 92.52,
      "delay" : null
    }, {
      "iataCode" : "SW",
      "flights" : 2,
      "onTime" : 2,
      "notOnTime" : 0,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 100.0,
      "accuracy" : 100.0,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-05",
    "airlines" : [ {
      "iataCode" : "AA",
      "flights" : 2854,
      "onTime" : 2568,
      "notOnTime" : 211,
      "canceled" : 18,
      "unknown" : 57,
      "performance" : 91.81,
      "accuracy" : 98.0,
      "delay" : null
    }, {
      "iataCode" : "DL",
      "flights" : 3151,
      "onTime" : 2670,
      "notOnTime" : 234,
      "canceled" : 2,
      "unknown" : 245,
      "performance" : 91.88,
      "accuracy" : 92.22,
      "delay" : null
    }, {
      "iataCode" : "SW",
      "flights" : 2,
      "onTime" : 2,
      "notOnTime" : 0,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 100.0,
      "accuracy" : 100.0,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-06",
    "airlines" : [ {
      "iataCode" : "AA",
      "flights" : 3038,
      "onTime" : 2662,
      "notOnTime" : 305,
      "canceled" : 15,
      "unknown" : 56,
      "performance" : 89.27,
      "accuracy" : 98.16,
      "delay" : null
    }, {
      "iataCode" : "DL",
      "flights" : 3168,
      "onTime" : 2767,
      "notOnTime" : 164,
      "canceled" : 1,
      "unknown" : 236,
      "performance" : 94.37,
      "accuracy" : 92.55,
      "delay" : null
    }, {
      "iataCode" : "SW",
      "flights" : 8,
      "onTime" : 7,
      "notOnTime" : 0,
      "canceled" : 0,
      "unknown" : 1,
      "performance" : 100.0,
      "accuracy" : 87.5,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-07",
    "airlines" : [ {
      "iataCode" : "AA",
      "flights" : 3923,
      "onTime" : 3621,
      "notOnTime" : 213,
      "canceled" : 18,
      "unknown" : 71,
      "performance" : 94.0,
      "accuracy" : 98.19,
      "delay" : null
    }, {
      "iataCode" : "DL",
      "flights" : 3569,
      "onTime" : 3058,
      "notOnTime" : 223,
      "canceled" : 7,
      "unknown" : 281,
      "performance" : 93.0,
      "accuracy" : 92.13,
      "delay" : null
    }, {
      "iataCode" : "SW",
      "flights" : 4,
      "onTime" : 4,
      "notOnTime" : 0,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 100.0,
      "accuracy" : 100.0,
      "delay" : null
    } ]
  } ]
}

3.2.2 GET Airports comparison

Compare the on-time performances of the given airports during the specified period (from and to). The results can be grouped by an interval, such as DAILY, WEEKLY and MONTHLY.

Query parameters
Parameter Description

airportCodes

List of 3-character airport IATA code or 4-character airport ICAO code

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

interval

Interval to be applied when grouping results. E.g.: DAILY, WEEKLY, MONTHLY

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

from

String

Date range start

interval

Object

Results grouping interval. E.g.: DAILY, WEEKLY, MONTHLY

otp[]

Array

Array of OTP results per airport

otp[].airports[]

Array

Array of airports

otp[].airports[].accuracy

Object

Percentage of flights for which OTP stats are available

otp[].airports[].canceled

Object

Number of canceled flights

otp[].airports[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

otp[].airports[].flights

Object

Flights

otp[].airports[].iataCode

String

IATA Airport Code

otp[].airports[].notOnTime

Object

Number of not on-time flights

otp[].airports[].onTime

Object

Number of on-time flights

otp[].airports[].performance

Object

On-time performance rating of this flight

otp[].airports[].unknown

Object

Number of flights with unknown status

otp[].date

String

Date

to

String

Date range end

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/comparison/airports?airportCodes=ORD,JFK,ATL&from=2021-01-01&to=2021-01-31&interval=WEEKLY' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3960

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "interval" : "WEEKLY",
  "otp" : [ {
    "date" : "2020-12-28",
    "airports" : [ {
      "iataCode" : "ATL",
      "flights" : 2564,
      "onTime" : 1976,
      "notOnTime" : 502,
      "canceled" : 12,
      "unknown" : 74,
      "performance" : 79.36,
      "accuracy" : 97.11,
      "delay" : null
    }, {
      "iataCode" : "JFK",
      "flights" : 911,
      "onTime" : 576,
      "notOnTime" : 216,
      "canceled" : 10,
      "unknown" : 109,
      "performance" : 71.82,
      "accuracy" : 88.04,
      "delay" : null
    }, {
      "iataCode" : "ORD",
      "flights" : 2045,
      "onTime" : 1380,
      "notOnTime" : 404,
      "canceled" : 145,
      "unknown" : 116,
      "performance" : 71.54,
      "accuracy" : 94.33,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-04",
    "airports" : [ {
      "iataCode" : "ATL",
      "flights" : 5858,
      "onTime" : 4951,
      "notOnTime" : 736,
      "canceled" : 23,
      "unknown" : 148,
      "performance" : 86.71,
      "accuracy" : 97.47,
      "delay" : null
    }, {
      "iataCode" : "JFK",
      "flights" : 2034,
      "onTime" : 1342,
      "notOnTime" : 349,
      "canceled" : 28,
      "unknown" : 315,
      "performance" : 78.07,
      "accuracy" : 84.51,
      "delay" : null
    }, {
      "iataCode" : "ORD",
      "flights" : 4194,
      "onTime" : 3381,
      "notOnTime" : 492,
      "canceled" : 26,
      "unknown" : 295,
      "performance" : 86.71,
      "accuracy" : 92.97,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-11",
    "airports" : [ {
      "iataCode" : "ATL",
      "flights" : 5584,
      "onTime" : 4950,
      "notOnTime" : 501,
      "canceled" : 10,
      "unknown" : 123,
      "performance" : 90.64,
      "accuracy" : 97.8,
      "delay" : null
    }, {
      "iataCode" : "JFK",
      "flights" : 1914,
      "onTime" : 1286,
      "notOnTime" : 313,
      "canceled" : 37,
      "unknown" : 278,
      "performance" : 78.61,
      "accuracy" : 85.48,
      "delay" : null
    }, {
      "iataCode" : "ORD",
      "flights" : 4061,
      "onTime" : 3312,
      "notOnTime" : 434,
      "canceled" : 23,
      "unknown" : 292,
      "performance" : 87.87,
      "accuracy" : 92.81,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-18",
    "airports" : [ {
      "iataCode" : "ATL",
      "flights" : 5692,
      "onTime" : 5255,
      "notOnTime" : 303,
      "canceled" : 12,
      "unknown" : 122,
      "performance" : 94.34,
      "accuracy" : 97.86,
      "delay" : null
    }, {
      "iataCode" : "JFK",
      "flights" : 1865,
      "onTime" : 1308,
      "notOnTime" : 267,
      "canceled" : 33,
      "unknown" : 257,
      "performance" : 81.34,
      "accuracy" : 86.22,
      "delay" : null
    }, {
      "iataCode" : "ORD",
      "flights" : 3986,
      "onTime" : 3217,
      "notOnTime" : 462,
      "canceled" : 23,
      "unknown" : 284,
      "performance" : 86.9,
      "accuracy" : 92.88,
      "delay" : null
    } ]
  }, {
    "date" : "2021-01-25",
    "airports" : [ {
      "iataCode" : "ATL",
      "flights" : 4811,
      "onTime" : 4405,
      "notOnTime" : 289,
      "canceled" : 19,
      "unknown" : 98,
      "performance" : 93.46,
      "accuracy" : 97.96,
      "delay" : null
    }, {
      "iataCode" : "JFK",
      "flights" : 1564,
      "onTime" : 1084,
      "notOnTime" : 229,
      "canceled" : 38,
      "unknown" : 213,
      "performance" : 80.24,
      "accuracy" : 86.38,
      "delay" : null
    }, {
      "iataCode" : "ORD",
      "flights" : 3464,
      "onTime" : 2511,
      "notOnTime" : 539,
      "canceled" : 126,
      "unknown" : 288,
      "performance" : 79.06,
      "accuracy" : 91.69,
      "delay" : null
    } ]
  } ]
}

3.3 On-Time Performance Flight Statistics

3.3.1 GET Flights by airlines

Gets the total number of flights by airlines during the period (from and to).

Query parameters
Parameter Description

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

top

Number of top results to limit the size of the list. Must be a value between 10 and 5000

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

airlines[]

Array

Array of airlines

airlines[].canceled

Object

Number of canceled flights over requested date range

airlines[].dailyAverage

Object

Daily average number of flights over requested date range

airlines[].flights

Object

Array of flights

airlines[].iataCode

String

IATA Airline Code

from

String

Date range start

selectedDays

Object

Selected Days

to

String

Date range end

top

Object

Top (N) performers

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/flights/airlines?from=2021-01-01&to=2021-01-31&top=10' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1206

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "selectedDays" : 31,
  "top" : 10,
  "airlines" : [ {
    "iataCode" : "AA",
    "flights" : 109299,
    "canceled" : 1549,
    "dailyAverage" : 3525.77
  }, {
    "iataCode" : "DL",
    "flights" : 99890,
    "canceled" : 126,
    "dailyAverage" : 3222.26
  }, {
    "iataCode" : "UA",
    "flights" : 76841,
    "canceled" : 1048,
    "dailyAverage" : 2478.74
  }, {
    "iataCode" : "WN",
    "flights" : 60656,
    "canceled" : 469,
    "dailyAverage" : 1956.65
  }, {
    "iataCode" : "MU",
    "flights" : 57148,
    "canceled" : 7193,
    "dailyAverage" : 1843.48
  }, {
    "iataCode" : "CZ",
    "flights" : 52269,
    "canceled" : 1187,
    "dailyAverage" : 1686.1
  }, {
    "iataCode" : "6E",
    "flights" : 36225,
    "canceled" : 260,
    "dailyAverage" : 1168.55
  }, {
    "iataCode" : "CA",
    "flights" : 34552,
    "canceled" : 3148,
    "dailyAverage" : 1114.58
  }, {
    "iataCode" : "NH",
    "flights" : 33359,
    "canceled" : 9435,
    "dailyAverage" : 1076.1
  }, {
    "iataCode" : "G5",
    "flights" : 24483,
    "canceled" : 732,
    "dailyAverage" : 789.77
  } ]
}

3.3.2 GET Flights by airports

Gets the total number of flights by airports during the period (from and to).

Query parameters
Parameter Description

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

top

Number of top results to limit the size of the list. Must be a value between 10 and 5000

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

airports[]

Array

Array of airports

airports[].canceled

Object

Number of canceled flights over requested date range

airports[].dailyAverage

Object

Daily average number of flights over requested date range

airports[].flights

Object

Array of flights

airports[].iataCode

String

IATA Airport Code

from

String

Date range start

selectedDays

Object

Selected Days

to

String

Date range end

top

Object

Top (N) performers

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/flights/airports?from=2021-01-01&to=2021-01-31&top=10' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1202

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "selectedDays" : 31,
  "top" : 10,
  "airports" : [ {
    "iataCode" : "ATL",
    "flights" : 22756,
    "canceled" : 68,
    "dailyAverage" : 734.06
  }, {
    "iataCode" : "DFW",
    "flights" : 22535,
    "canceled" : 315,
    "dailyAverage" : 726.94
  }, {
    "iataCode" : "ORD",
    "flights" : 16736,
    "canceled" : 339,
    "dailyAverage" : 539.87
  }, {
    "iataCode" : "DEN",
    "flights" : 16664,
    "canceled" : 81,
    "dailyAverage" : 537.55
  }, {
    "iataCode" : "CAN",
    "flights" : 16654,
    "canceled" : 847,
    "dailyAverage" : 537.23
  }, {
    "iataCode" : "PVG",
    "flights" : 15750,
    "canceled" : 1305,
    "dailyAverage" : 508.06
  }, {
    "iataCode" : "CKG",
    "flights" : 15574,
    "canceled" : 406,
    "dailyAverage" : 502.39
  }, {
    "iataCode" : "HND",
    "flights" : 15324,
    "canceled" : 4144,
    "dailyAverage" : 494.32
  }, {
    "iataCode" : "LAX",
    "flights" : 14339,
    "canceled" : 271,
    "dailyAverage" : 462.55
  }, {
    "iataCode" : "CTU",
    "flights" : 12976,
    "canceled" : 672,
    "dailyAverage" : 418.58
  } ]
}

3.4 On-Time Performance Ranking

3.4.1 GET Airlines ranking

Gets the ranking of most on-time airlines during the period (from and to).

Query parameters
Parameter Description

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

region

Region

top

Number of top results to limit the size of the list. Must be a value between 10 and 100

bottom

Number of bottom results to limit the size of the list. Must be a value between 10 and 100. Cannot be requested along with the top filter

minAccuracy

Minimum accuracy. The default value is 50

minDailyFlights

Minimum number of average daily flights. The default value is 1

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

airlines[]

Array

Array of airlines

airlines[].accuracy

Object

Percentage of flights for which OTP stats are available

airlines[].canceled

Object

Number of canceled flights

airlines[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

airlines[].flights

Object

Flights

airlines[].iataCode

String

IATA Airline Code

airlines[].name

String

Airline name

airlines[].notOnTime

Object

Number of not on-time flights

airlines[].onTime

Object

Number of on-time flights

airlines[].performance

Object

On-time performance rating of this flight

airlines[].rank

Object

Ranking based on performance

airlines[].region

String

Region

airlines[].size

Object

Ranking based on the size of the set of flights for this airline

airlines[].unknown

Object

Number of flights with unknown status

bottom

Number

Bottom (N) performers

from

String

Date range start

minAccuracy

Number

Minimum requested accuracy

minDailyFlights

Number

Minimum number of average daily flights

region

String

Region

to

String

Date range end

top

Number

Top (N) performers

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/ranking/airlines?from=2021-01-01&to=2021-01-31&region=SOA&top=10&minAccuracy=50&minDailyFlights=2' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2656

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "region" : "SOA",
  "top" : 10,
  "minAccuracy" : 50,
  "minDailyFlights" : 2,
  "airlines" : [ {
    "iataCode" : "TA",
    "flights" : 127,
    "onTime" : 124,
    "notOnTime" : 2,
    "canceled" : 0,
    "unknown" : 0,
    "performance" : 98.41,
    "accuracy" : 99.21,
    "region" : "SOA",
    "rank" : 1,
    "size" : 9
  }, {
    "iataCode" : "VV",
    "flights" : 403,
    "onTime" : 370,
    "notOnTime" : 6,
    "canceled" : 0,
    "unknown" : 0,
    "performance" : 98.4,
    "accuracy" : 93.3,
    "region" : "SOA",
    "rank" : 2,
    "size" : 8
  }, {
    "iataCode" : "XL",
    "flights" : 498,
    "onTime" : 473,
    "notOnTime" : 15,
    "canceled" : 4,
    "unknown" : 0,
    "performance" : 96.14,
    "accuracy" : 98.8,
    "region" : "SOA",
    "rank" : 3,
    "size" : 6
  }, {
    "iataCode" : "VH",
    "flights" : 2209,
    "onTime" : 1987,
    "notOnTime" : 84,
    "canceled" : 5,
    "unknown" : 0,
    "performance" : 95.71,
    "accuracy" : 93.98,
    "region" : "SOA",
    "rank" : 4,
    "size" : 4
  }, {
    "iataCode" : "WJ",
    "flights" : 471,
    "onTime" : 422,
    "notOnTime" : 19,
    "canceled" : 2,
    "unknown" : 0,
    "performance" : 95.26,
    "accuracy" : 94.06,
    "region" : "SOA",
    "rank" : 5,
    "size" : 7
  }, {
    "iataCode" : "JJ",
    "flights" : 84,
    "onTime" : 59,
    "notOnTime" : 3,
    "canceled" : 0,
    "unknown" : 0,
    "performance" : 95.16,
    "accuracy" : 73.81,
    "region" : "SOA",
    "rank" : 6,
    "size" : 10
  }, {
    "iataCode" : "LA",
    "flights" : 23903,
    "onTime" : 20759,
    "notOnTime" : 1060,
    "canceled" : 133,
    "unknown" : 0,
    "performance" : 94.57,
    "accuracy" : 91.84,
    "region" : "SOA",
    "rank" : 7,
    "size" : 1
  }, {
    "iataCode" : "AV",
    "flights" : 9409,
    "onTime" : 8201,
    "notOnTime" : 407,
    "canceled" : 78,
    "unknown" : 0,
    "performance" : 94.42,
    "accuracy" : 92.32,
    "region" : "SOA",
    "rank" : 8,
    "size" : 3
  }, {
    "iataCode" : "AD",
    "flights" : 21738,
    "onTime" : 17808,
    "notOnTime" : 2054,
    "canceled" : 248,
    "unknown" : 0,
    "performance" : 88.55,
    "accuracy" : 92.51,
    "region" : "SOA",
    "rank" : 9,
    "size" : 2
  }, {
    "iataCode" : "VW",
    "flights" : 1022,
    "onTime" : 490,
    "notOnTime" : 48,
    "canceled" : 16,
    "unknown" : 0,
    "performance" : 88.45,
    "accuracy" : 54.21,
    "region" : "SOA",
    "rank" : 10,
    "size" : 5
  } ]
}

3.4.2 GET Airports ranking

Gets the ranking of most on-time airports during the period (from and to).

Query parameters
Parameter Description

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

region

Region

top

Number of top results to limit the size of the list. Must be a value between 10 and 100

bottom

Number of bottom results to limit the size of the list. Must be a value between 10 and 100. Cannot be requested along with the top filter

minAccuracy

Minimum accuracy. The default value is 50

minDailyFlights

Minimum number of average daily flights. The default value is 1

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

airports[]

Array

Array of airports

airports[].accuracy

Object

Percentage of flights for which OTP stats are available

airports[].canceled

Object

Number of canceled flights

airports[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

airports[].delay.*-15

Number

Up-to 15 minute delays (including negative delays)

airports[].delay.120-*

Number

120 minute and greater delays

airports[].delay.15-30

Number

15 to 30 minute delays

airports[].delay.30-60

Number

30 to 60 minute delays

airports[].delay.60-90

Number

60 to 90 minute delays

airports[].delay.90-120

Number

90 to 120 minute delays

airports[].flights

Object

Flights

airports[].iataCode

String

IATA Airport Code

airports[].name

String

Airport name

airports[].notOnTime

Object

Number of not on-time flights

airports[].onTime

Object

Number of on-time flights

airports[].performance

Object

On-time performance rating of this flight

airports[].rank

Object

Ranking based on performance

airports[].region

String

Region

airports[].size

Object

Ranking based on the size of the set of flights for this airport

airports[].unknown

Object

Number of flights with unknown status

bottom

Number

Bottom (N) performers

from

String

Date range start

minAccuracy

Number

Minimum requested accuracy

minDailyFlights

Number

Minimum number of average daily flights

region

String

Region

to

String

Date range end

top

Number

Top (N) performers

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/ranking/airports?from=2021-01-01&to=2021-01-31&region=MDE&top=10&minAccuracy=50&minDailyFlights=2' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2635

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "region" : "MDE",
  "top" : 10,
  "minAccuracy" : 50,
  "minDailyFlights" : 2,
  "airports" : [ {
    "iataCode" : "YNB",
    "flights" : 92,
    "onTime" : 88,
    "notOnTime" : 2,
    "canceled" : 0,
    "unknown" : 0,
    "performance" : 97.78,
    "accuracy" : 97.83,
    "region" : "MDE",
    "rank" : 1,
    "size" : 8
  }, {
    "iataCode" : "MED",
    "flights" : 662,
    "onTime" : 384,
    "notOnTime" : 16,
    "canceled" : 1,
    "unknown" : 0,
    "performance" : 95.76,
    "accuracy" : 60.57,
    "region" : "MDE",
    "rank" : 2,
    "size" : 1
  }, {
    "iataCode" : "HAS",
    "flights" : 202,
    "onTime" : 152,
    "notOnTime" : 10,
    "canceled" : 1,
    "unknown" : 0,
    "performance" : 93.25,
    "accuracy" : 80.69,
    "region" : "MDE",
    "rank" : 3,
    "size" : 3
  }, {
    "iataCode" : "KYA",
    "flights" : 125,
    "onTime" : 109,
    "notOnTime" : 9,
    "canceled" : 0,
    "unknown" : 0,
    "performance" : 92.37,
    "accuracy" : 94.4,
    "region" : "MDE",
    "rank" : 4,
    "size" : 6
  }, {
    "iataCode" : "AQI",
    "flights" : 73,
    "onTime" : 67,
    "notOnTime" : 4,
    "canceled" : 2,
    "unknown" : 0,
    "performance" : 91.78,
    "accuracy" : 100.0,
    "region" : "MDE",
    "rank" : 5,
    "size" : 10
  }, {
    "iataCode" : "BAL",
    "flights" : 114,
    "onTime" : 97,
    "notOnTime" : 8,
    "canceled" : 1,
    "unknown" : 0,
    "performance" : 91.51,
    "accuracy" : 92.98,
    "region" : "MDE",
    "rank" : 6,
    "size" : 7
  }, {
    "iataCode" : "TUU",
    "flights" : 478,
    "onTime" : 328,
    "notOnTime" : 31,
    "canceled" : 2,
    "unknown" : 0,
    "performance" : 90.86,
    "accuracy" : 75.52,
    "region" : "MDE",
    "rank" : 7,
    "size" : 2
  }, {
    "iataCode" : "AJF",
    "flights" : 168,
    "onTime" : 135,
    "notOnTime" : 13,
    "canceled" : 2,
    "unknown" : 0,
    "performance" : 90.0,
    "accuracy" : 89.29,
    "region" : "MDE",
    "rank" : 8,
    "size" : 4
  }, {
    "iataCode" : "GZP",
    "flights" : 84,
    "onTime" : 54,
    "notOnTime" : 5,
    "canceled" : 1,
    "unknown" : 0,
    "performance" : 90.0,
    "accuracy" : 71.43,
    "region" : "MDE",
    "rank" : 9,
    "size" : 9
  }, {
    "iataCode" : "HTY",
    "flights" : 165,
    "onTime" : 143,
    "notOnTime" : 14,
    "canceled" : 2,
    "unknown" : 0,
    "performance" : 89.94,
    "accuracy" : 96.36,
    "region" : "MDE",
    "rank" : 10,
    "size" : 5
  } ]
}

3.4.3 GET Airport ranking

Gets the ranking of a specific airport during the period (from and to).

Path parameters
Table 1. /v1/ranking/airports/{airport}
Parameter Description

airport

3-character airport IATA code or 4-character airport ICAO code

Query parameters
Parameter Description

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

airports[]

Array

Array of airports

airports[].accuracy

Object

Percentage of flights for which OTP stats are available

airports[].canceled

Object

Number of canceled flights

airports[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

airports[].delay.*-15

Number

Up-to 15 minute delays (including negative delays)

airports[].delay.120-*

Number

120 minute and greater delays

airports[].delay.15-30

Number

15 to 30 minute delays

airports[].delay.30-60

Number

30 to 60 minute delays

airports[].delay.60-90

Number

60 to 90 minute delays

airports[].delay.90-120

Number

90 to 120 minute delays

airports[].flights

Object

Flights

airports[].iataCode

String

IATA Airport Code

airports[].name

String

Airport name

airports[].notOnTime

Object

Number of not on-time flights

airports[].onTime

Object

Number of on-time flights

airports[].performance

Object

On-time performance rating of this flight

airports[].rank

Object

Ranking based on performance

airports[].region

String

Region

airports[].size

Object

Ranking based on the size of the set of flights for this airport

airports[].unknown

Object

Number of flights with unknown status

bottom

Number

Bottom (N) performers

from

String

Date range start

minAccuracy

Number

Minimum requested accuracy

minDailyFlights

Number

Minimum number of average daily flights

region

String

Region

to

String

Date range end

top

Number

Top (N) performers

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/ranking/airports/BKK?from=2021-01-01&to=2021-01-31' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 532

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "minAccuracy" : 50,
  "minDailyFlights" : 2,
  "airports" : [ {
    "iataCode" : "BKK",
    "flights" : 57,
    "onTime" : 27,
    "notOnTime" : 29,
    "canceled" : 0,
    "unknown" : 1,
    "performance" : 48.21,
    "accuracy" : 98.25,
    "delay" : {
      "*-15" : 48.21,
      "15-30" : 25.0,
      "30-60" : 19.64,
      "60-90" : 5.36,
      "90-120" : 1.79,
      "120-*" : 0.0
    },
    "region" : "SEA",
    "rank" : 1,
    "size" : 1
  } ]
}

3.4.4 GET Airport By Airlines ranking

Gets the ranking of the most on-time airlines at a specific airport during the period (from and to).

Path parameters
Table 1. /v1/ranking/airports/{airport}/airlines
Parameter Description

airport

3-character airport IATA code or 4-character airport ICAO code

Query parameters
Parameter Description

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

top

Number of top results to limit the size of the list. Must be a value between 10 and 100

bottom

Number of bottom results to limit the size of the list. Must be a value between 10 and 100. Cannot be requested along with the top filter

minAccuracy

Minimum accuracy. The default value is 50

minDailyFlights

Minimum number of average daily flights. The default value is 1

adi

Arrival or Departure indicator, A for Arrivals, D for Departures. Default is D.

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

airports[]

Array

Array of airports

airports[].accuracy

Object

Percentage of flights for which OTP stats are available

airports[].airlines[]

Array

Array of airlines

airports[].airlines[].accuracy

Object

Percentage of flights for which OTP stats are available

airports[].airlines[].canceled

Object

Number of canceled flights

airports[].airlines[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

airports[].airlines[].delay.*-15

Number

Up-to 15 minute delays (including negative delays)

airports[].airlines[].delay.120-*

Number

120 minute and greater delays

airports[].airlines[].delay.15-30

Number

15 to 30 minute delays

airports[].airlines[].delay.30-60

Number

30 to 60 minute delays

airports[].airlines[].delay.60-90

Number

60 to 90 minute delays

airports[].airlines[].delay.90-120

Number

90 to 120 minute delays

airports[].airlines[].flights

Object

Flights

airports[].airlines[].iataCode

String

IATA Airline Code

airports[].airlines[].name

String

Airline name

airports[].airlines[].notOnTime

Object

Number of not on-time flights

airports[].airlines[].onTime

Object

Number of on-time flights

airports[].airlines[].performance

Object

On-time performance rating of this flight

airports[].airlines[].rank

Object

Ranking based on performance

airports[].airlines[].region

String

Region

airports[].airlines[].size

Object

Ranking based on the size of the set of flights for this airline

airports[].airlines[].unknown

Object

Number of flights with unknown status

airports[].canceled

Object

Number of canceled flights

airports[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

airports[].delay.*-15

Number

Up-to 15 minute delays (including negative delays)

airports[].delay.120-*

Number

120 minute and greater delays

airports[].delay.15-30

Number

15 to 30 minute delays

airports[].delay.30-60

Number

30 to 60 minute delays

airports[].delay.60-90

Number

60 to 90 minute delays

airports[].delay.90-120

Number

90 to 120 minute delays

airports[].flights

Object

Flights

airports[].iataCode

String

IATA Airport Code

airports[].name

String

Airport name

airports[].notOnTime

Object

Number of not on-time flights

airports[].onTime

Object

Number of on-time flights

airports[].performance

Object

On-time performance rating of this flight

airports[].rank

Object

Ranking based on performance

airports[].region

String

Region

airports[].size

Object

Ranking based on the size of the set of flights for this airport

airports[].unknown

Object

Number of flights with unknown status

bottom

Number

Bottom (N) performers

from

String

Date range start

minAccuracy

Number

Minimum requested accuracy

minDailyFlights

Number

Minimum number of average daily flights

region

String

Region

to

String

Date range end

top

Number

Top (N) performers

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/ranking/airports/BKK/airlines?from=2021-01-01&to=2021-01-31&top=10&minAccuracy=50&minDailyFlights=2&adi=D' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3888

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "minAccuracy" : 50,
  "minDailyFlights" : 1,
  "airports" : [ {
    "iataCode" : "BKK",
    "flights" : 56,
    "onTime" : 27,
    "notOnTime" : 29,
    "canceled" : 0,
    "unknown" : 0,
    "performance" : 48.21,
    "accuracy" : 100.0,
    "delay" : {
      "*-15" : 48.21,
      "15-30" : 25.0,
      "30-60" : 19.64,
      "60-90" : 5.36,
      "90-120" : 1.79,
      "120-*" : 0.0
    },
    "region" : "SEA",
    "rank" : 1,
    "size" : 1,
    "airlines" : [ {
      "iataCode" : "EK",
      "flights" : 2,
      "onTime" : 2,
      "notOnTime" : 0,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 100.0,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 100.0,
        "15-30" : 0.0,
        "30-60" : 0.0,
        "60-90" : 0.0,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 1,
      "size" : 6
    }, {
      "iataCode" : "WE",
      "flights" : 5,
      "onTime" : 4,
      "notOnTime" : 1,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 80.0,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 80.0,
        "15-30" : 0.0,
        "30-60" : 20.0,
        "60-90" : 0.0,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 2,
      "size" : 4
    }, {
      "iataCode" : "PG",
      "flights" : 6,
      "onTime" : 4,
      "notOnTime" : 2,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 66.67,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 66.67,
        "15-30" : 16.67,
        "30-60" : 0.0,
        "60-90" : 16.67,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 3,
      "size" : 3
    }, {
      "iataCode" : "JL",
      "flights" : 2,
      "onTime" : 1,
      "notOnTime" : 1,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 50.0,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 50.0,
        "15-30" : 50.0,
        "30-60" : 0.0,
        "60-90" : 0.0,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 4,
      "size" : 7
    }, {
      "iataCode" : "VN",
      "flights" : 3,
      "onTime" : 1,
      "notOnTime" : 2,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 33.33,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 33.33,
        "15-30" : 33.33,
        "30-60" : 33.33,
        "60-90" : 0.0,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 5,
      "size" : 5
    }, {
      "iataCode" : "VZ",
      "flights" : 10,
      "onTime" : 3,
      "notOnTime" : 7,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 30.0,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 30.0,
        "15-30" : 50.0,
        "30-60" : 20.0,
        "60-90" : 0.0,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 6,
      "size" : 1
    }, {
      "iataCode" : "TG",
      "flights" : 8,
      "onTime" : 1,
      "notOnTime" : 7,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 12.5,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 12.5,
        "15-30" : 50.0,
        "30-60" : 25.0,
        "60-90" : 12.5,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 7,
      "size" : 2
    }, {
      "iataCode" : "VJ",
      "flights" : 2,
      "onTime" : 0,
      "notOnTime" : 2,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 0.0,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 0.0,
        "15-30" : 50.0,
        "30-60" : 50.0,
        "60-90" : 0.0,
        "90-120" : 0.0,
        "120-*" : 0.0
      },
      "rank" : 8,
      "size" : 8
    } ]
  } ]
}

3.4.5 GET Airport By Airline ranking

Gets the ranking of a specific airline at a specific airport during the period (from and to).

Path parameters
Table 1. /v1/ranking/airports/{airport}/airlines/{airline}
Parameter Description

airport

3-character airport IATA code or 4-character airport ICAO code

airline

2-character airport IATA code or 3-character airport ICAO code

Query parameters
Parameter Description

from

Date range start e.g 2021-01-01

to

Date range end e.g 2021-01-31

adi

Arrival or Departure indicator, A for Arrivals, D for Departures. Default is D.

Request headers
Name Description

Content-Type

Content type of this request. Required value is 'application/json'

Authorization

Authorization header that contains the access token.

Response fields
Path Type Description

airports[]

Array

Array of airports

airports[].accuracy

Object

Percentage of flights for which OTP stats are available

airports[].airlines[]

Array

Array of airlines

airports[].airlines[].accuracy

Object

Percentage of flights for which OTP stats are available

airports[].airlines[].canceled

Object

Number of canceled flights

airports[].airlines[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

airports[].airlines[].delay.*-15

Number

Up-to 15 minute delays (including negative delays)

airports[].airlines[].delay.120-*

Number

120 minute and greater delays

airports[].airlines[].delay.15-30

Number

15 to 30 minute delays

airports[].airlines[].delay.30-60

Number

30 to 60 minute delays

airports[].airlines[].delay.60-90

Number

60 to 90 minute delays

airports[].airlines[].delay.90-120

Number

90 to 120 minute delays

airports[].airlines[].flights

Object

Flights

airports[].airlines[].iataCode

String

IATA Airline Code

airports[].airlines[].name

String

Airline name

airports[].airlines[].notOnTime

Object

Number of not on-time flights

airports[].airlines[].onTime

Object

Number of on-time flights

airports[].airlines[].performance

Object

On-time performance rating of this flight

airports[].airlines[].rank

Object

Ranking based on performance

airports[].airlines[].region

String

Region

airports[].airlines[].size

Object

Ranking based on the size of the set of flights for this airline

airports[].airlines[].unknown

Object

Number of flights with unknown status

airports[].canceled

Object

Number of canceled flights

airports[].delay

Object

Flight delay group interval. The key is defined by an specific interval of minutes (<from_value>-<to_value>) and the content is the percentage of flights with delay value between these values (<to_value> not included). The delay percentage does not include the canceled flights and the flights without actual date values

airports[].delay.*-15

Number

Up-to 15 minute delays (including negative delays)

airports[].delay.120-*

Number

120 minute and greater delays

airports[].delay.15-30

Number

15 to 30 minute delays

airports[].delay.30-60

Number

30 to 60 minute delays

airports[].delay.60-90

Number

60 to 90 minute delays

airports[].delay.90-120

Number

90 to 120 minute delays

airports[].flights

Object

Flights

airports[].iataCode

String

IATA Airport Code

airports[].name

String

Airport name

airports[].notOnTime

Object

Number of not on-time flights

airports[].onTime

Object

Number of on-time flights

airports[].performance

Object

On-time performance rating of this flight

airports[].rank

Object

Ranking based on performance

airports[].region

String

Region

airports[].size

Object

Ranking based on the size of the set of flights for this airport

airports[].unknown

Object

Number of flights with unknown status

bottom

Number

Bottom (N) performers

from

String

Date range start

minAccuracy

Number

Minimum requested accuracy

minDailyFlights

Number

Minimum number of average daily flights

region

String

Region

to

String

Date range end

top

Number

Top (N) performers

Curl request
$ curl 'https://sitaopen.api.aero/otp/v1/ranking/airports/BKK/airlines/EK?from=2021-01-01&to=2021-01-31&adi=D' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 890

{
  "from" : "2021-01-01",
  "to" : "2021-01-31",
  "minAccuracy" : 50,
  "minDailyFlights" : 2,
  "airports" : [ {
    "iataCode" : "BKK",
    "flights" : 2,
    "onTime" : 2,
    "notOnTime" : 0,
    "canceled" : 0,
    "unknown" : 0,
    "performance" : 100.0,
    "accuracy" : 100.0,
    "delay" : {
      "*-15" : 100.0,
      "15-30" : 0.0,
      "30-60" : 0.0,
      "60-90" : 0.0,
      "90-120" : 0.0,
      "120-*" : 0.0
    },
    "region" : "SEA",
    "airlines" : [ {
      "iataCode" : "EK",
      "flights" : 2,
      "onTime" : 2,
      "notOnTime" : 0,
      "canceled" : 0,
      "unknown" : 0,
      "performance" : 100.0,
      "accuracy" : 100.0,
      "delay" : {
        "*-15" : 100.0,
        "15-30" : 0.0,
        "30-60" : 0.0,
        "60-90" : 0.0,
        "90-120" : 0.0,
        "120-*" : 0.0
      }
    } ]
  } ]
}

4 Error Response

Response fields

Path Type Description

errors

Object

Object that holds the error information

errors.error[]

Array

Array of errors

errors.error[].code

Number

Support Error Code

errors.error[].description

String

Error Description

errors.error[].invalidParam

String

Indicates the invalid query parameter

Curl request

$ curl 'https://sitaopen.api.aero/otp/v1/flights/airlines?from=2021-01-01&to=2021-01-31&top=1' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'

HTTP response

HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 164

{
  "errors" : {
    "error" : [ {
      "code" : 0,
      "invalidParam" : "top",
      "description" : "must be greater than or equal to 10"
    } ]
  }
}

5 Use Cases

5.1 On-Time Performance Ranking

Scenario:

As an API user I want to make a request to the On-Time Performance API to return the airport rankings of on-time performance in a specified date range

Request:

GET /otp/v1/ranking/airports?from=2022-11-10&to=2022-11-11

Response:

Returns airport rankings based on on-time performance for the date period given

Scenario:

As an API user I want to make a request to the On-Time Performance API to return the airline rankings of on-time performance in a specified date range

Request:

GET /otp/v1/ranking/airlines?from=2022-11-10&to=2022-11-11

Response:

Returns airline rankings based on on-time performance for the date period given

5.2 On-Time Performance Flight Statistics

Scenario:

As an API user I want to make a request to the On-Time Performance API to return the daily flight statistics per airport

Request:

GET /otp/v1/ranking/airports?from=2022-11-10&to=2022-11-11

Response:

Returns daily flight statistics per airport for the date period given

Scenario:

As an API user I want to make a request to the On-Time Performance API to return the daily flight statistics per airline

Request:

GET /otp/v1/ranking/airlines?from=2022-11-10&to=2022-11-11

Response:

Returns daily flight statistics per airline for the date period given

5.3 On-Time Performance Comparison

Scenario:

As an API user I want to make a request to the On-Time Performance API to compare the airport rankings of on-time performance in a specified date range

Request:

GET /otp/v1/comparison/airports?airportCodes=ORD,JFK,ATL&from=2021-01-01&to=2021-01-31&interval=WEEKLY

Response:

Returns comparison of on-time performance for the given airports within the specified timeframe

Scenario:

As an API user I want to make a request to the On-Time Performance API to compare the airline rankings of on-time performance in a specified date range

Request:

GET /otp/v1/comparison/airlines?airlineCodes=AA,DL,SW&from=2021-01-01&to=2021-01-31&interval=WEEKLY

Response:

Returns comparison of on-time performance for the given airlines within the specified timeframe

OTP Terms

 

Data Description
Attribute Description
iataCode Airline or Airport code.
region The region where the airline operates or the airport is located.
onTime Number of on-time flights on a given period.
notOnTime Number of-not-on time flights on a given period.
canceled Number of canceled flights on a given period.
flights Total number of flights on a given period.
performance The percentage of on-time flights over the total number of flights.
accuracy The accuracy of this data, based on the total number of flights over the flights we have information of.
rank The ranking position based on performance.
size The ranking position based on number of flights.
unknown Number of flights without on time performance details on a given period.

 

Contact Us

 

For subscription and sales queries, please contact:

 

Product Inquiries

Contact Us

 

For On-Time Performance API related queries, please contact:

Technical Support Team

Contact Us

 

contact-icon

Do you have a question? We are here, ready to help

Get in touch

About us

We are the world's leading specialist in air transport communications and IT solutions. 

 

bottom navigation SITA logo