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
Date | Version | Description |
---|---|---|
|
|
|
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:
Header | Description |
---|---|
| The total number of requests allowed in the current time window |
| The number of requests left for the current time window |
| The policy describing how many request per time window are allowed |
| The number of seconds remaining in the current time window. Header not displayed after rate limit has been exceeded |
| 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
Parameter | Description |
---|---|
| Text that will be matched against IATA or ICAO code, the city name and the airport name. |
Request headers
Name | Description |
---|---|
| The Content-Type of this request. |
| Authorization header that contains the access token. |
Response fields
Path | Type | Description |
---|---|---|
|
| Airport ICAO code |
|
| Airport SITA identifier |
|
| City code where Airport is located |
|
| Airport records returned |
|
| Airport name |
|
| Airports Latitude position |
|
| Airport altitude |
|
| Airports Longitude position |
|
| Airport Type |
|
| Country Name where Airport is located |
|
| Country Code where Airport is located |
|
| Airports Timezone |
|
| Continent where Airport is located |
|
| Indicates if request was correctly processed |
|
| Local airport code |
|
| Airport IATA code |
|
| 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
Name | Description |
---|---|
| The Content-Type of this request. |
| Authorization header that contains the access token. |
Response fields
Path | Type | Description |
---|---|---|
|
| Airport ICAO code |
|
| Airport SITA identifier |
|
| City code where Airport is located |
|
| Airport records returned |
|
| Airport name |
|
| Airports Latitude position |
|
| Airport altitude |
|
| Airports Longitude position |
|
| Airport Type |
|
| Country Name where Airport is located |
|
| Country Code where Airport is located |
|
| Airports Timezone |
|
| Continent where Airport is located |
|
| Indicates if request was correctly processed |
|
| Local airport code |
|
| Airport IATA code |
|
| 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
Name | Description |
---|---|
| The Content-Type of this request. |
| Authorization header that contains the access token. |
Response fields
Path | Type | Description |
---|---|---|
|
| Airport ICAO code |
|
| Airport SITA identifier |
|
| City code where Airport is located |
|
| Airport records returned |
|
| Airport name |
|
| Airports Latitude position |
|
| Airport altitude |
|
| Airports Longitude position |
|
| Airport Type |
|
| Country Name where Airport is located |
|
| Country Code where Airport is located |
|
| Airports Timezone |
|
| Continent where Airport is located |
|
| Indicates if request was correctly processed |
|
| Local airport code |
|
| Airport IATA code |
|
| 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
Name | Description |
---|---|
| The Content-Type of this request. |
| Authorization header that contains the access token. |
Response fields
Path | Type | Description |
---|---|---|
|
| Indicates if request was correctly processed |
|
| Unit used (KM/Mile) |
|
| 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
Name | Description |
---|---|
| The Content-Type of this request. |
| Authorization header that contains the access token. |
Response fields
Path | Type | Description |
---|---|---|
|
| Airport ICAO code |
|
| Airport SITA identifier |
|
| City code where Airport is located |
|
| Airport records returned |
|
| Airport name |
|
| Airports Latitude position |
|
| Airport altitude |
|
| Airports Longitude position |
|
| Airport Type |
|
| Country Name where Airport is located |
|
| Country Code where Airport is located |
|
| Airports Timezone |
|
| Continent where Airport is located |
|
| Indicates if request was correctly processed |
|
| Local airport code |
|
| Airport IATA code |
|
| 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
Name | Description |
---|---|
| The Content-Type of this request. |
| Authorization header that contains the access token. |
Response fields
Path | Type | Description |
---|---|---|
|
| Indicates if request was correctly processed |
|
| 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
Path | Type | Description |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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