Aviation Data

List airports

Complete airport catalogue — search by free text, code, country, city or metropolitan code.

GET/v1/aviation/airportsRequires X-API-Key

Paginated airport catalogue: airports, heliports, airfields and metropolitan (city) codes such as LON, NYC and PAR.

For a search box, send q with commercial=true.

  • q matches 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=true keeps 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

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": []
}

Authorization

X-API-KeystringRequired

Your API key from the dashboard. A missing or invalid key answers 401; see Authentication.

Query parameters

citystring

Case-insensitive substring of the city name.

commercialboolean

true: only points a ticket can be sold to.

Example: true
countrystring

ISO 3166-1 alpha-2 country code.

Example: ES
has_iataboolean

true keeps only points with an IATA code, false only those without one.

iatastring

IATA code, or a comma-separated list (MAD,BCN,LHR).

icaostring

ICAO (International Civil Aviation Organization) code, exact (e.g. LEMD).

limitinteger

Results per page, default 50, max 500.

Example: 50
metrostring

Metropolitan code: the city point and every airport under it.

Example: LON
namestring

Case-insensitive substring of the name.

pageinteger

1-based page number, at most 1000. Default: 1.

Example: 1
qstring

Exact IATA code, or part of the name or city. Ranked by relevance.

Example: london
regionstring

Case-insensitive substring of the ISO 3166-2 subdivision (e.g. ES-CT).

scheduled_serviceboolean

true keeps points whose own record claims scheduled service. Prefer commercial=true for booking forms.

sortstring

rank: busiest first. Ignored with q. Default: by name.

typestring

Exact classification: large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport, closed or metropolitan_area.

Response fields

dataarray<Airport>Required

One page of airport records. Fields are described in the Aviation Data guide.

meta.countintegerRequired

Items on this page.

meta.last_updatedstring

RFC 3339 timestamp of the most recent refresh of the matching rows.

meta.limitintegerRequired

The page size applied, after capping.

meta.pageintegerRequired

The page served.

meta.request_idstringRequired

The same value as the X-Request-ID response header.

meta.totalintegerRequired

Items matching the filter across every page.

Error codes

400

invalid_page — page is above 1000.

GET /v1/aviation/airports — List airports | Norba API