Skip to main content

  

Overview

The SITA Airport Reference API helps developers who need to integrate airport information quickly and easily into their apps. It allows you to take user inputs like airport name, code or nearby cities and instantly translate them into industry-standard airport data.  

Features

The API comes with the following features:

  • Airport Match:

    recommends airports based on partial user inputs. For example, “Lon,” returns Gatwick, Stansted, and any other airports which include “Lon” as part of their name or codes. The API allows developers to efficiently integrate a search window for app users.

  • Nearby Airports :

    finds all airports near a specific airport. The endpoint uses the latitude and longitude co-ordinates of an airport to identify other airports within a set range. The API then identifies the location based on the co-ordinates alongside additional useful data for the aviation and travel industry about these specific airports.

  •  Airport Distance:

    gives the distance between 2 airports in kilometers or miles, using the Great Circle Mileage method.

Example of information included: name, iataCode, icaoCode, city, latitude, longitude, timezone, elevation, continent, country code, region.

This API can be used to answer:

  • What is the IATA / ICAO code of an airport?
  • Which other airports are located in approximation to a particular airport?

Data Sources 

The sources of the data are taken from many internal SITA sources. They are updated periodically saving you the effort of having to maintain these constantly manually. If you do notice any corrections that are needed then use our Contact Us form and our dedicated support team will help.

SITA Airport Reference API

 

1 Revision History

DateVersionDescription

27 October 2022

1.0

Initial documentation creation

2 Introduction

The SITA Data API is a REST based service which provides information about Airports, Airlines and Aircrafts around the world.

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 in an Authorization header in the request. To obtain an OAuth token a request must be sent to the https://sitaopen.api.aero/data/oauth/token endpoint using the OAuth2 Client Credential flow.Use your API key as the client_id, and your consumer secret as the client_secret these should be base64 encoded in an Authorization header when sent to the OAuth endpoint.

Please note the OAuth tokens have an expiry of one hour after the token has been retrieved, after the token has expired you will need to re-issue a request to get a new token.

curl --location 'https://sitaopen.api.aero/data/oauth/token' \--header 'Authorization: Basic YWJjZGVmZ2hpamtsbW5vcC5xcnN0dXY='

You should then see your OAuth token in the response.

"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOJIUzI1NiJ9.eyJyZWZyZXNoX3Rva2VuX2V4cGlyZXNfaW4iOiIzNTk5Iiwic3ViIjoic2l0YSIsImFwaV9cm9kdWN0X2xpc3QiOiJbRE9UUy1GbGlnaHQtQ29ubmVjdGlvbi1JbnRlcm5hbF0iLCJpc3MiOiJ1cm46XC9cL2FwaWdlZS1lZdlLUpXVC1wb2xpY3ktdGVzdCIsImFwaV9hY2Nlc3NfdG9rZW4iOiIweXlIZHduSUdtOGo5WlN6WWtuYTBsWG9ZNTFvIiwiYXBpX3JlZnJlc2hfdG9rZW4iOiJraHNlaXN2T3JwSHBUd2NuUVRHdXdBdVdicXNpamNQTyIsImFwaV9zY29wZSI6IiIsImF1ZCI6ImFwaWdlZS1hcGkiLCJleHAiOj3MzAyOTI3MzIsImFwcF9pZCI6IjIxYzI5NTgyLTIwZTktNDkwMS1hNjExLTVkM2UwM2QxNzFkYiIsImV4cGlyZXNfaW4iOiIzNTk5IiwiaWF0IjoxNzMwMjg5MTMyLCJqdGkiOiI3ZmEzNTU4Mi0xNDhmLTRiMmEtODYxMS0wNWI4NDg5YjFjYmMifQ.g_dFH-08DGADOX9HIk7wzX5edxXejVsnCen27A25TQ0"

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

curl --location 'https://sitaopen.api.aero/data/v1/airports/MIA' \--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOJIUzI1NiJ9.eyJyZWZyZXNoX3Rva2VuX2V4cGlyZXNfaW4iOiIzNTk5Iiwic3ViIjoic2l0YSIsImFwaV9cm9kdWN0X2xpc3QiOiJbRE9UUy1GbGlnaHQtQ29ubmVjdGlvbi1JbnRlcm5hbF0iLCJpc3MiOiJ1cm46XC9cL2FwaWdlZS1lZdlLUpXVC1wb2xpY3ktdGVzdCIsImFwaV9hY2Nlc3NfdG9rZW4iOiIweXlIZHduSUdtOGo5WlN6WWtuYTBsWG9ZNTFvIiwiYXBpX3JlZnJlc2hfdG9rZW4iOiJraHNlaXN2T3JwSHBUd2NuUVRHdXdBdVdicXNpamNQTyIsImFwaV9zY29wZSI6IiIsImF1ZCI6ImFwaWdlZS1hcGkiLCJleHAiOj3MzAyOTI3MzIsImFwcF9pZCI6IjIxYzI5NTgyLTIwZTktNDkwMS1hNjExLTVkM2UwM2QxNzFkYiIsImV4cGlyZXNfaW4iOiIzNTk5IiwiaWF0IjoxNzMwMjg5MTMyLCJqdGkiOiI3ZmEzNTU4Mi0xNDhmLTRiMmEtODYxMS0wNWI4NDg5YjFjYmMifQ.g_dFH-08DGADOX9HIk7wzX5edxXejVsnCen27A25TQ0'

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:

HeaderDescription

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 Airport Reference API

The SITA Airport Reference API is a REST based service which provides information about Airports around the world.

3.1 Resources

This section describes each SITA Airport Reference 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 Airport V3 (Current)

3.2.1 Get Airports by Name or Code

Path parameters
Table 1. /v3/airports/match/{airportNamePartial}
ParameterDescription

airportNamePartial

Text that will be matched against IATA or ICAO code, the city name and the airport name.

Request headers
NameDescription

Content-Type

The Content-Type of this request.

Authorization

Authorization header that contains the access token.

Response fields
PathTypeDescription

airports[].icaoCode

String

Airport ICAO code

airports[].ident

String

Airport SITA identifier

airports[].city

String

City code where Airport is located

airports[]

Array

Airport records returned

airports[].name

String

Airport name

airports[].latitude

Number

Airports Latitude position

airports[].elevation

Number

Airport altitude

airports[].longitude

Number

Airports Longitude position

airports[].type

String

Airport Type

airports[].country

String

Country Name where Airport is located

airports[].countryCode

String

Country Code where Airport is located

airports[].timezone

String

Airports Timezone

airports[].continent

String

Continent where Airport is located

success

Boolean

Indicates if request was correctly processed

airports[].localCode

String

Local airport code

airports[].iataCode

String

Airport IATA code

airports[].region

String

Region code where Airport is located

Curl request
$ curl 'https://data-qa.api.aero/v3/airports/match/GVA' -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: 884
                                {
                                  "success" : true,
                                  "airports" : [ {
                                    "ident" : "UKFG",
                                    "type" : "AIRPORT",
                                    "elevation" : 721,
                                    "continent" : "EU",
                                    "countryCode" : "UA",
                                    "region" : "UA-43",
                                    "localCode" : "",
                                    "name" : "Gvardeyskoe Air Base",
                                    "iataCode" : "",
                                    "icaoCode" : "UKFG",
                                    "city" : "Sarabuz",
                                    "latitude" : 45.1150016784668,
                                    "longitude" : 33.97700119018555,
                                    "country" : "",
                                    "timezone" : ""
                                  }, {
                                    "ident" : "LSGG",
                                    "type" : "LARGE_AIRPORT",
                                    "elevation" : 1411,
                                    "continent" : "EU",
                                    "countryCode" : "CH",
                                    "region" : "CH-GE",
                                    "localCode" : "",
                                    "name" : "Geneva Cointrin International Airport",
                                    "iataCode" : "GVA",
                                    "icaoCode" : "LSGG",
                                    "city" : "Geneva",
                                    "latitude" : 45.1150016784668,
                                    "longitude" : 33.97700119018555,
                                    "country" : "",
                                    "timezone" : ""
                                  } ]
                                }

3.2.2 Get Airport by Code

Request headers
NameDescription

Content-Type

The Content-Type of this request.

Authorization

Authorization header that contains the access token.

Response fields
PathTypeDescription

airports[].icaoCode

String

Airport ICAO code

airports[].ident

String

Airport SITA identifier

airports[].city

String

City code where Airport is located

airports[]

Array

Airport records returned

airports[].name

String

Airport name

airports[].latitude

Number

Airports Latitude position

airports[].elevation

Number

Airport altitude

airports[].longitude

Number

Airports Longitude position

airports[].type

String

Airport Type

airports[].country

String

Country Name where Airport is located

airports[].countryCode

String

Country Code where Airport is located

airports[].timezone

String

Airports Timezone

airports[].continent

String

Continent where Airport is located

success

Boolean

Indicates if request was correctly processed

airports[].localCode

String

Local airport code

airports[].iataCode

String

Airport IATA code

airports[].region

String

Region code where Airport is located

Curl request
$ curl 'https://data-qa.api.aero/v3/airports/GVA' -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: 477
                                {
                                  "success" : true,
                                  "airports" : [ {
                                    "ident" : "LSGG",
                                    "type" : "LARGE_AIRPORT",
                                    "elevation" : 1411,
                                    "continent" : "EU",
                                    "countryCode" : "CH",
                                    "region" : "CH-GE",
                                    "localCode" : "",
                                    "name" : "Geneva Cointrin International Airport",
                                    "iataCode" : "GVA",
                                    "icaoCode" : "LSGG",
                                    "city" : "Geneva",
                                    "latitude" : 45.1150016784668,
                                    "longitude" : 33.97700119018555,
                                    "country" : "",
                                    "timezone" : ""
                                  } ]
                                }

3.2.3 Get All Airports

Request headers
NameDescription

Content-Type

The Content-Type of this request.

Authorization

Authorization header that contains the access token.

Response fields
PathTypeDescription

airports[].icaoCode

String

Airport ICAO code

airports[].ident

String

Airport SITA identifier

airports[].city

String

City code where Airport is located

airports[]

Array

Airport records returned

airports[].name

String

Airport name

airports[].latitude

Number

Airports Latitude position

airports[].elevation

Number

Airport altitude

airports[].longitude

Number

Airports Longitude position

airports[].type

String

Airport Type

airports[].country

String

Country Name where Airport is located

airports[].countryCode

String

Country Code where Airport is located

airports[].timezone

String

Airports Timezone

airports[].continent

String

Continent where Airport is located

success

Boolean

Indicates if request was correctly processed

airports[].localCode

String

Local airport code

airports[].iataCode

String

Airport IATA code

airports[].region

String

Region code where Airport is located

Curl request
$ curl 'https://data-qa.api.aero/v3/airports' -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: 884
                                {
                                  "success" : true,
                                  "airports" : [ {
                                    "ident" : "UKFG",
                                    "type" : "AIRPORT",
                                    "elevation" : 721,
                                    "continent" : "EU",
                                    "countryCode" : "UA",
                                    "region" : "UA-43",
                                    "localCode" : "",
                                    "name" : "Gvardeyskoe Air Base",
                                    "iataCode" : "",
                                    "icaoCode" : "UKFG",
                                    "city" : "Sarabuz",
                                    "latitude" : 45.1150016784668,
                                    "longitude" : 33.97700119018555,
                                    "country" : "",
                                    "timezone" : ""
                                  }, {
                                    "ident" : "LSGG",
                                    "type" : "LARGE_AIRPORT",
                                    "elevation" : 1411,
                                    "continent" : "EU",
                                    "countryCode" : "CH",
                                    "region" : "CH-GE",
                                    "localCode" : "",
                                    "name" : "Geneva Cointrin International Airport",
                                    "iataCode" : "GVA",
                                    "icaoCode" : "LSGG",
                                    "city" : "Geneva",
                                    "latitude" : 45.1150016784668,
                                    "longitude" : 33.97700119018555,
                                    "country" : "",
                                    "timezone" : ""
                                  } ]
                                }

3.2.4 Get Distance between two Airports

Request headers
NameDescription

Content-Type

The Content-Type of this request.

Authorization

Authorization header that contains the access token.

Response fields
PathTypeDescription

success

Boolean

Indicates if request was correctly processed

units

String

Unit used (KM/Mile)

distance

String

DistanceDto between both airports

Curl request
$ curl 'https://data-qa.api.aero/v3/airports/distance/LON/DXB' -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: 74
                                {
                                  "success" : true,
                                  "distance" : "4,925,645.0",
                                  "units" : "km"
                                }

3.2.5 Get Nearest Airport

Request headers
NameDescription

Content-Type

The Content-Type of this request.

Authorization

Authorization header that contains the access token.

Response fields
PathTypeDescription

airports[].icaoCode

String

Airport ICAO code

airports[].ident

String

Airport SITA identifier

airports[].city

String

City code where Airport is located

airports[]

Array

Airport records returned

airports[].name

String

Airport name

airports[].latitude

Number

Airports Latitude position

airports[].elevation

Number

Airport altitude

airports[].longitude

Number

Airports Longitude position

airports[].type

String

Airport Type

airports[].country

String

Country Name where Airport is located

airports[].countryCode

String

Country Code where Airport is located

airports[].timezone

String

Airports Timezone

airports[].continent

String

Continent where Airport is located

success

Boolean

Indicates if request was correctly processed

airports[].localCode

String

Local airport code

airports[].iataCode

String

Airport IATA code

airports[].region

String

Region code where Airport is located

Curl request
$ curl 'https://data-qa.api.aero/v3/airports/nearest/46.125485/31.254852' -i -X GET \
                                    -H 'Content-Type: application/json' \
                                    -H 'Authorization: Bearer eyJkb2N1bWVudGF0aW9uIiwidG9rZW4ifQ...'
HTTP response
HTTP/1.1 200 OK
                                Content-Disposition: inline;filename=f.txt
                                Content-Type: application/json
                                Content-Length: 477
                                {
                                  "success" : true,
                                  "airports" : [ {
                                    "ident" : "LSGG",
                                    "type" : "LARGE_AIRPORT",
                                    "elevation" : 1411,
                                    "continent" : "EU",
                                    "countryCode" : "CH",
                                    "region" : "CH-GE",
                                    "localCode" : "",
                                    "name" : "Geneva Cointrin International Airport",
                                    "iataCode" : "GVA",
                                    "icaoCode" : "LSGG",
                                    "city" : "Geneva",
                                    "latitude" : 45.1150016784668,
                                    "longitude" : 33.97700119018555,
                                    "country" : "",
                                    "timezone" : ""
                                  } ]
                                }

3.2.6 Is Same Country Check

Request headers
NameDescription

Content-Type

The Content-Type of this request.

Authorization

Authorization header that contains the access token.

Response fields
PathTypeDescription

success

Boolean

Indicates if request was correctly processed

sameCountry

Boolean

Boolean flag indicating if both airports are from the same country

Curl request
$ curl 'https://data-qa.api.aero/v3/airports/samecountry/LON/DXB' -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: 50
                                {
                                  "success" : true,
                                  "sameCountry" : false
                                }

4 Error Response

4.1 Response fields

PathTypeDescription

errors

Object

Object that holds the error information

errors.error[].description

String

Error Description

errors.error[]

Array

Array of errors

errors.error[].invalidParam

String

Indicates the invalid query parameter

errors.error[].code

Number

API Internal Error Code

4.2 HTTP Response

HTTP/1.1 400 Bad Request
                        Content-Type: application/json
                        Content-Length: 159
                        {
                          "errors" : {
                          "error" : [ {
                          "description" : "Error Description",
                          "code" : 9999,
                          "invalidParam" : "parameterName"
                          } ]
                          }
                        }

5 Appendix A Airport Reference API Use Cases

Scenario:

As an API user I want to make a request to the Airport Reference API to return all data for every airport

Request:

GET /data/v3/airports

Response:

Returns data for all airports available

Scenario:

As an API user I want to make a request to the Airport Reference API to return the distance between 2 airports

Request:

GET /data/v3/airports/distance/AMS/LYS

Response:

Returns the distance between AMS and LYS, default distance is in km, but can be set to miles

Scenario:

As an API user I want to make a request to the Airport Reference API to find the nearest airport to given latitude and longitude co-ordinates

Request:

GET /data/v3/airports/nearest/25.7685/-80.2974

Response:

Returns the nearest airport to the given latitude and longitude co-ordinates

Scenario:

As an API user I want to make a request to the Airport Reference API to return information about a given IATA/ICAO code

Request:

GET /data/v3/airports/MIA

Response:

Returns information for MIA airport

Scenario:

As an API user I want to make a request to the Airport Reference API to match airports by IATA/ICAO codes or airport name

Request:

GET /data/v3/airports/match/Miami

Response:

Returns information for Miami airport

Scenario:

As an API user I want to make a request to the Airport Reference API to determine if 2 given airports are in the same country

Request:

GET /data/v3/airports/samecountry/AMS/LYS

Response:

Determines if both airports are in the same country and returns the result

 

Contact Us

For subscription and sales queries, please contact:

Product Inquiries

Contact Us

 
For any technical queries and support, 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