List airports
Complete airport catalogue — search by free text, code, country, city or metropolitan code.
/v1/aviation/airportsRequires X-API-KeyPaginated airport catalogue: airports, heliports, airfields and metropolitan (city) codes such as LON, NYC and PAR.
For a search box, send q with commercial=true.
qmatches an exact IATA (International Air Transport Association) code, or part of the name or city. Results are ranked: exact code, then city prefix, then name prefix, then the rest; busier airports first within each.commercial=truekeeps points a ticket can be sold to: served by a published schedule, large and medium airports, and metro codes. Rail and bus stations, ports and off-line points are left out.
Filters combine with AND. Without q, results are alphabetical, or busiest first with sort=rank.
Request example
curl --request GET \
--url https://api.norba.io/v1/aviation/airports \
--header "X-API-Key: $NORBA_KEY"Response example
{
"data": [
{
"id": "lhr",
"name": "London Heathrow Airport",
"iata_code": "LHR",
"icao_code": "EGLL",
"city": "London",
"country": "GB",
"region": "GB-ENG",
"latitude": 51.470748,
"longitude": -0.459909,
"elevation_ft": 83,
"timezone": "Europe/London",
"airport_type": "large_airport",
"scheduled_service": true,
"metro_code": "LON",
"location_type": "A",
"page_rank": 0.65,
"served_by_schedule": true
}
],
"meta": {
"request_id": "810e8129288eda32",
"page": 1,
"limit": 50,
"count": 1,
"total": 9,
"last_updated": "2026-10-12T03:10:44Z"
},
"errors": []
}Query parameters
citystringCase-insensitive substring of the city name.
commercialbooleantrue: only points a ticket can be sold to.
truecountrystringISO 3166-1 alpha-2 country code.
EShas_iatabooleantrue keeps only points with an IATA code, false only those without one.
iatastringIATA code, or a comma-separated list (MAD,BCN,LHR).
icaostringICAO (International Civil Aviation Organization) code, exact (e.g. LEMD).
limitintegerResults per page, default 50, max 500.
50metrostringMetropolitan code: the city point and every airport under it.
LONnamestringCase-insensitive substring of the name.
pageinteger1-based page number, at most 1000. Default: 1.
1qstringExact IATA code, or part of the name or city. Ranked by relevance.
londonregionstringCase-insensitive substring of the ISO 3166-2 subdivision (e.g. ES-CT).
scheduled_servicebooleantrue keeps points whose own record claims scheduled service. Prefer commercial=true for booking forms.
sortstringrank: busiest first. Ignored with q. Default: by name.
typestringExact classification: large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport, closed or metropolitan_area.
Response fields
dataarray<Airport>RequiredOne page of airport records. Fields are described in the Aviation Data guide.
meta.countintegerRequiredItems on this page.
meta.last_updatedstringRFC 3339 timestamp of the most recent refresh of the matching rows.
meta.limitintegerRequiredThe page size applied, after capping.
meta.pageintegerRequiredThe page served.
meta.request_idstringRequiredThe same value as the X-Request-ID response header.
meta.totalintegerRequiredItems matching the filter across every page.
Error codes
400invalid_page — page is above 1000.