Look up an airport
GET https://airportcodecheck.com/api/airport/FNC
Accepts IATA (FNC) or ICAO (LPMA). Returns name, city, country, both codes, type, coordinates and elevation.
{
"success": true,
"airport": {
"slug": "fnc",
"name": "Cristiano Ronaldo International Airport",
"city": "Funchal",
"country": "PT",
"country_name": "Portugal",
"iata": "FNC",
"icao": "LPMA",
"type": "large_airport",
"scheduled_service": true,
"lat": 32.69781, "lon": -16.77461,
"elevation_ft": 192,
"url": "https://airportcodecheck.com/airport/fnc"
}
}
Direct destinations
GET https://airportcodecheck.com/api/routes/FNC
Every destination served nonstop, with the airlines flying each route, a seasonal flag and the great-circle distance.
Connections (direct or one-stop)
GET https://airportcodecheck.com/api/connections/FNC/JFK
The route-planning endpoint: returns the nonstop service if one exists, otherwise the best one-stop options ranked by total distance, with the airlines on each leg and the detour versus the direct line. Data most providers only sell in enterprise plans.
Search
GET https://airportcodecheck.com/api/search?q=funchal
Searches names, cities and IATA codes. Returns up to 8 matches.
Countries
GET https://airportcodecheck.com/api/countries
Terms
Free for any use with attribution appreciated (a link to airportcodecheck.com). Airport data: OurAirports, public domain. Route data: adapted from Wikipedia, CC BY-SA, so route data you redistribute stays under the same license. Route lists show that a nonstop service exists; verify schedules with the airline. None required for the free per-IP allowance. An IPNOVA API key (free account at api.ipnova.com) applies your plan allowance instead: send it as the X-Api-Key header or the ?key= query parameter. Keyed responses carry X-Credits-Remaining and X-Credits-Used. Need more than the daily limit? Write to [email protected].
Errors
Every non-200 response uses the same envelope: success: false, an error flag, a machine-readable reason, a human message, and a docs link back to this page.
| Status | Reason | Meaning |
|---|---|---|
400 | invalid_input | Not a valid IATA/ICAO code or query |
401 | invalid_key | The supplied API key is unknown or revoked |
404 | not_found | Airport, route or connection not in the dataset |
404 | unknown_endpoint | Path under /api/ does not match a published endpoint |
429 | rate_limit | Too many requests in the last minute (Retry-After: 60) |
429 | daily_limit | Keyless per-IP daily cap reached |
429 | credits_exhausted | Keyed monthly allowance used up |
Example, a code not in the dataset:
{"success": false, "error": true, "reason": "not_found", "message": "Airport code not in the dataset.", "docs": "https://airportcodecheck.com/airport-api"}