IATA vs ICAO Airport Codes
Every major airport has two codes. Here's why — and which one you need.
Quick Answer
IATA codes are 3-letter codes (SEA, LHR, JFK) used by travelers, airlines, and booking systems. ICAO codes are 4-letter codes (KSEA, EGLL, KJFK) used by pilots, air traffic control, and aviation professionals. If you're booking a flight or checking a boarding pass, you're using IATA. If you're filing a flight plan or reading an aeronautical chart, you're using ICAO.
Side-by-Side Comparison
| IATA | ICAO | |
|---|---|---|
| Issuing body | International Air Transport Association | International Civil Aviation Organization |
| Length | 3 letters | 4 letters |
| Coverage | ~9,000 commercial airports | ~40,000+ airports and airfields |
| Who uses it | Passengers, airlines, booking systems, luggage tags | Pilots, ATC, flight plans, weather reports |
| Format | No geographic rule (SEA, JFK, LHR) | Geographic prefix + suffix (KSEA, KJFK, EGLL) |
| Example — Seattle | SEA | KSEA |
| Example — London Heathrow | LHR | EGLL |
| Example — Tokyo Haneda | HND | RJTT |
| Example — Paris CDG | CDG | LFPG |
Real Examples
Click any airport to see its full data page.
IATA Codes in Depth
The International Air Transport Association (IATA) began assigning 3-letter airport identifiers in the 1940s to help standardize the booming commercial aviation industry. At the time, a short, memorable code was all that was needed — most airports had only a handful of destinations.
IATA codes are not geographically systematic. Some follow intuitive patterns (LAX for Los Angeles, MIA for Miami), while others are historical artifacts or abbreviations of a city's former name (ORD for Chicago O'Hare, originally Orchard Field). Some simply reflect available letter combinations.
Today, IATA codes are the universal language of commercial air travel. They appear on every boarding pass, every baggage tag, every flight search engine, and every airline schedule. If you've ever booked a flight, you've used IATA codes — even if you didn't know it.
IATA currently maintains codes for approximately 9,000 airports worldwide that have or have had scheduled commercial service. Airports without scheduled service don't receive IATA codes.
ICAO Codes in Depth
The International Civil Aviation Organization (ICAO), a UN agency, developed its 4-letter coding system to give aviation professionals a globally consistent, geographically meaningful identifier for every airfield on Earth — not just commercial airports.
ICAO codes follow a hierarchical geographic prefix system:
- K — Contiguous United States (KSEA, KJFK, KLAX)
- EG — United Kingdom (EGLL = Heathrow, EGCC = Manchester)
- LF — France (LFPG = Paris CDG, LFMN = Nice)
- RJ — Japan (RJTT = Tokyo Haneda, RJAA = Tokyo Narita)
- Y — Australia (YSSY = Sydney, YMML = Melbourne)
- OE — Saudi Arabia, OI — Iran, OM — UAE
For most US airports, the ICAO code is simply K + the IATA code (SEA → KSEA, JFK → KJFK). This is a convenient coincidence of the geographic system, though it doesn't hold outside the contiguous US.
ICAO covers over 40,000 airports, heliports, and airfields worldwide. Pilots use ICAO codes in flight plans, weather reports (METARs and TAFs), NOTAMs, and communication with air traffic control. If you hear a code on an aviation radio or see it in a flight simulator, it's almost certainly ICAO.
Frequently Asked Questions
Can an airport have only an ICAO code and no IATA code?
Yes. Most small airports, private airfields, military bases, and heliports have an ICAO code but no IATA code. IATA only assigns codes to airports with scheduled commercial passenger service.
Why does London Heathrow's IATA code (LHR) look nothing like its ICAO code (EGLL)?
IATA codes were chosen for memorability and brevity, often from the airport or city name. ICAO codes follow geographic prefixes — EG is the UK prefix, and LL was assigned to Heathrow specifically. The two systems evolved independently with different goals.
Do IATA and ICAO codes ever overlap?
No — they are always different lengths (3 vs 4 letters) so they cannot overlap. A code like "SEA" is unambiguously IATA; "KSEA" is unambiguously ICAO.
Which code should I use when searching for flights?
Use the IATA code. All consumer booking platforms (Google Flights, Kayak, Skyscanner, airline websites) use IATA codes. ICAO codes are for aviation operations, not consumer ticketing.
Do all countries follow the K + IATA = ICAO pattern?
No. Only the contiguous United States does this consistently (e.g., SEA → KSEA). Other countries have different ICAO prefixes and their own suffix conventions. For example, London Heathrow is LHR (IATA) and EGLL (ICAO) — there's no simple relationship.