Access the full airport database programmatically. No API key required.
# All requests use:
https://api.freeairportdb.com/v1Free and open. No API key is required for usage within 1,000 requests per hour. Beyond that, we recommend downloading the dataset.
Search across all airport fields including IATA, ICAO, identifier code, name, city, and country.
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | — | Search query (IATA, ICAO, identifier code, name, city, country) |
type | string | all | Filter by: large_airport, medium_airport, small_airport |
country | string | — | ISO alpha-2 country code (e.g. US, GB) |
limit | integer | 20 | Max results (max 100) |
offset | integer | 0 | Pagination offset |
curl https://api.freeairportdb.com/v1/airports?q=JFK
// Response
{
"data": [{
"code": "KJFK",
"iata": "JFK",
"icao": "KJFK",
"name": "John F Kennedy International",
"continent_code": "NA",
"continent_name": "North America",
"region_code": "US-NY",
"region_name": "New York",
"country_code": "US",
"country_name": "United States",
"municipality": "New York",
"latitude": 40.6394,
"longitude": -73.7789,
"elevation": 4.0,
"elevation_ft": 13.1,
"time_zone": "America/New_York",
"type": "large_airport"
}],
"total": 1,
"limit": 20,
"offset": 0
}Retrieve a single airport by its IATA, ICAO, or identifier code.
The {code} parameter accepts a 3-letter IATA code, 4-letter ICAO code, or an identifier code from OurAirports.
curl https://api.freeairportdb.com/v1/airports/EGLL
// Response
{
"data": {
"code": "EGLL",
"iata": "LHR",
"icao": "EGLL",
"name": "Heathrow",
"continent_code": "EU",
"continent_name": "Europe",
"region_code": "GB-ENG",
"region_name": "England",
"country_code": "GB",
"country_name": "United Kingdom",
"municipality": "London",
"latitude": 51.4700,
"longitude": -0.4543,
"elevation": 25.0,
"elevation_ft": 82.0,
"time_zone": "Europe/London",
"type": "large_airport"
}
}Find the closest airports to a specific geographic coordinate.
| Parameter | Type | Default | Description |
|---|---|---|---|
lat | float | — | Latitude (required) |
lng | float | — | Longitude (required) |
limit | integer | 10 | Max results (max 50) |
radius | float | — | Max search radius in km (optional) |
curl "https://api.freeairportdb.com/v1/airports/nearby?lat=51.5&lng=-0.12&limit=5"
// Response
{
"data": [
{
"code": "EGLC",
"iata": "LCY",
"icao": "EGLC",
"name": "London City Airport",
"continent_code": "EU",
"continent_name": "Europe",
"region_code": "GB-ENG",
"region_name": "England",
"country_code": "GB",
"country_name": "United Kingdom",
"municipality": "London",
"latitude": 51.5053,
"longitude": 0.0554,
"elevation": 6.0,
"elevation_ft": 19.7,
"time_zone": "Europe/London",
"type": "large_airport",
"distance_km": 11.5,
"distance_mile": 7.1
}
]
}If you need higher limits, please contact us. Responses include rate limit headers.
curl "https://api.freeairportdb.com/v1/airports?q=LAX" \
-H "Accept: application/json"fetch('https://api.freeairportdb.com/v1/airports?q=LAX')
.then(r => r.json())
.then(data => console.log(data));import requests
r = requests.get('https://api.freeairportdb.com/v1/airports', params={'q': 'LAX'})
data = r.json()
print(data['data'])