IATA vs ICAO Airport Codes: How Airport Codes Work
Your boarding pass says LHR, but the pilotโs flight plan says EGLL. Both mean London Heathrow. Airports carry two different code systems, and the three-letter one hides some of the best trivia in travel: why Chicago is ORD, why Canadian codes start with Y and why some cities have codes that belong to no single airport. Here is how airport codes work and how to use them in games and test data.
Two systems for two audiences
The IATA code has three letters and is assigned by the International Air Transport Association. It is designed for passengers and airlines: tickets, baggage tags, departure boards and booking sites.
The ICAO code has four letters and is assigned under the International Civil Aviation Organization. Pilots, air traffic control and flight planning use it. Its first letter usually indicates a region, so it carries geographic structure:
- KSEA โ SeattleโTacoma (K for the contiguous United States).
- EGLL โ London Heathrow (E for northern Europe, G for the United Kingdom).
- LFPG โ Paris Charles de Gaulle (L for southern Europe, F for France).
- CYYZ โ Toronto Pearson (C for Canada).
The stories behind famous codes
- ORD โ Chicago OโHare was once Orchard Field, and the code stayed after the name changed.
- LAX โ Los Angeles originally used a two-letter code, LA. When codes moved to three letters, an X was added.
- MCO โ Orlandoโs main airport was once McCoy Air Force Base.
- MSY โ New Orleans keeps a code linked to Moisant Stock Yards, the siteโs earlier name.
- ARN โ Stockholmโs main airport is Arlanda, so the code follows the airport, not the city.
- YYZ and YVR โ nearly all major Canadian airports have codes beginning with Y.
Codes are long-lived. Airports rename themselves, but changing a code would disrupt systems worldwide, so the old letters usually remain.
City codes and multi-airport cities
Some codes stand for a whole city rather than one airport. LON covers London airports such as Heathrow and Gatwick, NYC covers JFK, LaGuardia and Newark, and TYO covers Tokyoโs Haneda and Narita. Booking systems use these metropolitan codes to search several airports at once. Test data for flight search should include both kinds so your app handles a city code that never appears on a boarding pass.
Why travelers should double-check codes
Similar-looking codes can send luggage or bookings to the wrong place. San Jose in California is SJC, while San Josรฉ in Costa Rica is SJO. Portland, Oregon, is PDX, but Portland, Maine, is PWM. When booking, compare the code with the airport name, and check the tag on your checked bag before it disappears down the belt. For developers, these near-duplicates are perfect test cases for autocomplete: a search for โSan Joseโ should clearly show both options with their countries.
Generate airports with RandNow
The Random Airport Generator above draws real airports:
- Set How many? to any value from 1 to 50 โ it is the only option.
- Press Generate. Each result shows the IATA code, airport name and city, such as KEF โ Keflavรญk International, Reykjavรญk.
- Copy the list or export it as CSV, JSON or TXT.
Each pick is independent, so larger batches can repeat an airport, just like a busy departures board. Everything is generated in your browser with the Web Crypto API.
Games and practical uses
- Code guessing: read the three letters aloud and let players guess the city before revealing it.
- Dream itinerary: draw five airports and plan the most sensible route between them.
- Test data: fill flight search, booking and baggage demos with real codes rather than invented ones.
- Travel writing prompts: start a story with a delayed flight to the first airport you draw.
Pair airports with time zones to practice jet lag math:
Pro tips
- Store IATA and ICAO codes in separate fields; never assume one can be derived from the other.
- Treat airport codes as case-insensitive in search but display them in uppercase.
- Include a city code such as LON in flight search tests.
- Remember that codes rarely change even when an airport is renamed.
Frequently asked questions
Do all airports have an IATA code?
No. Many small airfields have only an ICAO code or a local identifier, because IATA codes are mainly assigned to airports with commercial passenger service.
Why do pilots use four-letter codes?
ICAO codes are unique worldwide and include a regional prefix, which suits flight plans and air traffic control better than the shorter passenger codes.
Can two airports share a three-letter code?
Each IATA airport code is unique, but a metropolitan code such as NYC can group several airports in one city for searching.