piapia123
en

Airport Codes

Lookups

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

One box doing nine jobs: three letters are looked up as IATA, four letters as ICAO, and anything else searches airport names and cities. On many sites that is nine separate pages, though all of them are questions asked of one table. The data comes from OurAirports (public domain) and keeps only airports with an IATA code, about nine thousand of them. Airports sharing a name or city are ordered by scheduled service, then size, then code, so searching for London puts Heathrow first rather than a grass strip that happens to share the name. ⚠️ The table is downloaded on the first query (a few hundred KB), so the page itself stays light; the cost is a brief wait the first time. ⚠️ It has no time zone field: the upstream public dataset does not carry one, and the airport library that does is ODbL licensed, which would turn this repository into a derivative database with attribution and licence obligations attached. So coordinates are what you get; take them to the timezone meeting or timestamp tool for local time. Everything runs in your browser, and nothing about your search leaves it.

Features

  • One box for nine jobs: three letters as IATA, four as ICAO, the rest as an airport or city search
  • Over nine thousand airports, limited to those with an IATA code
  • Airports sharing a name or city are ordered by scheduled service, then size, then code
  • Coordinates in both decimal degrees and degrees-minutes-seconds, ready to paste into a map
  • Elevation in feet and metres, since aviation uses feet and everyday life does not
  • Closed airports are flagged instead of being handed to you as if they were operating
  • Matching can be locked to codes only or names only, so fuzzy results cannot jump the queue
  • One keyword per line, so a batch can be looked up at once
  • ⚠️ The table loads on first query, not with the page; everything runs locally in your browser

How to use

  1. Paste one code or name per line, or pick from the suggestions
  2. Three letters is treated as IATA, four as ICAO, and the rest as a name or city
  3. Switch the match mode to narrow it down, or lower the result count for a shorter list
  4. Copy a coordinate or a code on its own

FAQ

Why is there no local time?
Because the upstream data has no such field. The public OurAirports CSV carries coordinates, city and country but not an IANA zone, and the airport library that does carry one is ODbL licensed. Merging it would make this repository a derivative database with attribution and licence obligations — turning a technical choice into a legal one, which is not something to do by accident. So you get coordinates here; take them to the timezone meeting tool, pick a zone, and read the local time there.
What is the difference between IATA and ICAO codes?
IATA codes are three letters and belong to ticketing and baggage systems (PEK, LHR). ICAO codes are four letters and belong to air traffic control and flight plans (ZBAA, EGLL). Chinese ICAO codes start with Z, American ones with K and Japanese ones with R, so the region is often visible in the code. The two sets do not correspond one to one, and some airports have an ICAO code but no IATA code — this table only keeps the latter group, so a four-letter search that finds nothing means the airport has no IATA code rather than that it does not exist.
Why can I not find a small airfield?
Because this table only keeps airports with an IATA code. Most private strips, grass runways and military fields have an ICAO code or only a local one, and they are not here. Including them would multiply the data size while leaving them useless for decoding a ticket. For those, OpenStreetMap or a national AIP is the better source.
How often is the data updated?
It is fixed in the repository at build time rather than fetched live, so that publishing the site does not depend on someone else server being up, and so the same commit builds the same bytes everywhere. To refresh it, run node scripts/build-airports.mjs with the CSV path (the script comment explains where to get it) and commit the result.

Related tools