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, name, city, and country.
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | — | Search query (IATA, ICAO, 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": [{
"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_m": 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 or ICAO code.
The {code} parameter accepts a 3-letter IATA or 4-letter ICAO code. The API auto-detects which one you're using.
curl https://api.freeairportdb.com/v1/airports/EGLL
// Response
{
"data": {
"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_m": 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": [
{
"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_m": 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'])