The most complete airport lookup API. Search 74,000+ airports by ICAO code, IATA code, coordinates, IP address, or free text. Returns runways, radio frequencies, elevation, timezone, and more. Free tier available.
The SkyLink Airport Database API covers all airports in the OurAirports dataset including international airports, regional airports, heliports, seaplane bases, and private airstrips — all searchable via a clean REST API.
- 74,000+ airports — large, medium, small airports, heliports, seaplane bases
- Multiple search modes:
- ICAO code (e.g.,
KJFK,EGLL,YSSY) - IATA code (e.g.,
JFK,LHR,SYD) - Free text — search by airport name, city, or country
- Geographic radius — find airports within N km of coordinates
- IP address — find nearest airports to a user's IP (or auto-detect caller)
- ICAO code (e.g.,
- Full airport data — name, ICAO/IATA codes, lat/lon, elevation (ft), municipality, region, country, timezone
- Runway data — length (ft), surface type, heading, displaced thresholds, lighted
- Radio frequencies — ATIS, ground, tower, approach, departure (MHz)
- Filter by type —
large_airport,medium_airport,small_airport,heliport,seaplane_base - Sort by distance when searching by coordinates or IP
- Sub-second response via Redis cache
GET /v3/airports/search/text?q=Heathrow # free text search
GET /v3/airports/search/text?q=JFK # search by name or code
GET /v3/airports/search/location?lat=51.5&lon=-0.12&radius_km=80 # radius search
GET /v3/airports/search/ip # auto-detect caller's IP
GET /v3/airports/search/ip?ip=8.8.8.8 # explicit IP lookup
GET /v2/airports/search?icao=KJFK # lookup by ICAO
GET /v2/airports/search?iata=JFK # lookup by IATA
GET /v2/frequencies?icao=KJFK # radio frequencies
Sign up at RapidAPI — SkyLink API — 1,000 free requests/month, no credit card required.
import requests
headers = {
"x-rapidapi-key": "YOUR_API_KEY",
"x-rapidapi-host": "skylink-api.p.rapidapi.com"
}
# Find large airports within 80 km of London
params = {
"lat": 51.5074,
"lon": -0.1278,
"radius_km": 80,
"type": "large_airport"
}
r = requests.get(
"https://skylink-api.p.rapidapi.com/v3/airports/search/location",
headers=headers,
params=params
)
for airport in r.json()["airports"]:
print(f"{airport['ident']} ({airport['iata_code']}) — "
f"{airport['name']} — {airport['distance_km']:.1f} km")
# EGLL (LHR) — Heathrow Airport — 23.4 km
# EGKK (LGW) — London Gatwick Airport — 44.1 kmr = requests.get(
"https://skylink-api.p.rapidapi.com/v2/airports/search",
headers=headers,
params={"icao": "KJFK"}
)
ap = r.json()["airport"]
print(f"{ap['name']} — {ap['municipality']}, {ap['iso_country']}")
print(f"Elevation: {ap['elevation_ft']} ft")
print(f"Coordinates: {ap['latitude_deg']}, {ap['longitude_deg']}")
print(f"Runways: {len(ap['runways'])}")
for rwy in ap["runways"]:
print(f" RWY {rwy['le_ident']}/{rwy['he_ident']}: "
f"{rwy['length_ft']}ft, {rwy['surface']}")r = requests.get(
"https://skylink-api.p.rapidapi.com/v3/airports/search/ip",
headers=headers
)
data = r.json()
nearest = data["airports"][0]
print(f"Nearest airport: {nearest['name']} ({nearest['ident']})")
print(f"Distance: {nearest['distance_km']:.1f} km")const axios = require('axios');
const headers = {
'x-rapidapi-key': 'YOUR_API_KEY',
'x-rapidapi-host': 'skylink-api.p.rapidapi.com'
};
// Search airports near Sydney
const { data } = await axios.get(
'https://skylink-api.p.rapidapi.com/v3/airports/search/location',
{ headers, params: { lat: -33.8688, lon: 151.2093, radius_km: 60 } }
);
data.airports.forEach(ap => {
console.log(`${ap.ident} — ${ap.name} (${ap.distance_km.toFixed(1)} km)`);
});# Search by ICAO
curl "https://skylink-api.p.rapidapi.com/v2/airports/search?icao=YSSY" \
-H "x-rapidapi-key: YOUR_API_KEY" \
-H "x-rapidapi-host: skylink-api.p.rapidapi.com"
# Text search
curl "https://skylink-api.p.rapidapi.com/v3/airports/search/text?q=Frankfurt" \
-H "x-rapidapi-key: YOUR_API_KEY" \
-H "x-rapidapi-host: skylink-api.p.rapidapi.com"
# Radio frequencies
curl "https://skylink-api.p.rapidapi.com/v2/frequencies?icao=KJFK" \
-H "x-rapidapi-key: YOUR_API_KEY" \
-H "x-rapidapi-host: skylink-api.p.rapidapi.com"{
"airport": {
"ident": "KJFK",
"type": "large_airport",
"name": "John F Kennedy International Airport",
"latitude_deg": 40.63972,
"longitude_deg": -73.77889,
"elevation_ft": 13,
"continent": "NA",
"iso_country": "US",
"iso_region": "US-NY",
"municipality": "New York",
"iata_code": "JFK",
"runways": [
{
"le_ident": "04L",
"he_ident": "22R",
"length_ft": 11351,
"width_ft": 150,
"surface": "ASP",
"lighted": true,
"le_heading_degT": 40,
"he_heading_degT": 220
}
]
}
}- Flight booking / search UIs — autocomplete airport names by text or IP
- Nearest airport features in mobile apps and GPS tools
- Runway analysis for dispatch and performance software
- ATC frequency lookup for pilot apps and radio scanners
- Aviation weather apps — need ICAO code to query METAR/TAF
- Distance calculators — get coordinates for great-circle distance calculation
- Airport map widgets — plot airports on an interactive map
- metar-api — get METAR/TAF weather once you have the ICAO code
- flight-schedules-api — departure/arrival boards using ICAO airport codes
- aviation-utilities-api — great-circle distance between any two airports
- flight-tracking-api — live aircraft positions near a given airport
airports airport-api icao iata aviation-api geolocation python javascript rest-api airport-database runway free-api
All features are included in a single SkyLink API subscription. No juggling 5 different providers. One key, one schema, one bill.
- Website: https://skylinkapi.com
- Full Docs: https://skylinkapi.com/docs
- RapidAPI: https://rapidapi.com/skylink-api-skylink-api-default/api/skylink-api
- Free Tier: 1,000 requests/month — no credit card required
- Coverage: 74,000+ airports worldwide (OurAirports dataset)