Airports and navaids
Beta
Reference data from OurAirports (public domain, community maintained, refreshed nightly): airports, runways, COM frequencies and navaids worldwide. Route strings also use the FAA CIFP (public domain, one AIRAC cycle every 28 days, checked daily; the current and the next cycle are kept) for fixes, airways, SIDs and STARs in US airspace. Every answer carries meta.source, meta.licence and meta.as_of (when the source file was last regenerated). Use it to turn codes into coordinates before a RAIM route check or a NOTAM route brief.
GET /v1/airports/{code}
One airport by ICAO, IATA, GPS or local code (resolved in that order; VIE and LOWW are the same row). Fields: code (ICAO where one exists), ident, icao_code, iata_code, gps_code, local_code, name, type (large_airport, medium_airport, small_airport, heliport, seaplane_base, balloonport, closed), lat, lon, elevation_ft, country (ISO 3166-1), region (ISO 3166-2), municipality, scheduled_service, links, runways[] (length_ft, width_ft, surface, lighted, closed, low_end and high_end with ident, lat, lon, elevation_ft, heading_deg_true, displaced_threshold_ft) and frequencies[] (type, description, mhz). 404 when the code is unknown.
GET /v1/airports
Search. At least one of q (code, name or municipality), country, region, or lat and lon (with radius_nm, default 50, max 500). Optional type[], scheduled (true/false), limit (default 25, max 100). Returns airports[] in the same shape as above without runways and frequencies, sorted by size then name; a position search adds distance_nm and sorts by distance.
GET /v1/navaids
At least one of ident, airport (the associated aerodrome code), or lat and lon with radius_nm. Optional type (VOR, VOR-DME, VORTAC, DME, NDB, NDB-DME, TACAN), limit. Each navaid: ident, name, type, frequency_khz, lat, lon, elevation_ft, country, dme (frequency_khz, channel, lat, lon, elevation_ft, or null), magnetic_variation_deg, slaved_variation_deg, usage (LO, HI, BOTH, TERM, RNAV), power, associated_airport.
GET /v1/routes/resolve
route (query), optional at (RFC 3339, default now, picks the AIRAC cycle): the points a route string stands for, exactly as POST /v1/raim/route would fly it: route (normalised), points[], notes[] and nav_data as in resolved_route above. 422 route_unresolved with unresolved[] when a point cannot be placed.
GET /v1/airports/status lists each dataset with its row count and synced_at, and nav_data[]: the AIRAC cycles loaded that are in force today or later (source, airac, effective_from, effective_to, in_force), each shaped as a route answer's nav_data.