Guide

IATA vs ICAO Airport Codes: What’s the Difference?

An IATA code is the familiar three-letter identifier printed on tickets and baggage tags (for example, JFK), assigned by the International Air Transport Association for commercial and passenger use. An ICAO code is a four-letter identifier (KJFK) assigned by the International Civil Aviation Organization for air traffic control, flight plans, and other operational systems. Both point to the same airport but serve different audiences.

Who assigns each code

The two systems are run by two different organizations for two different purposes. IATA is a trade association of airlines, and its codes are built around commerce: booking, ticketing, fare filing, and baggage handling. ICAO is a specialized agency of the United Nations that coordinates international aviation standards, and its codes are built around operations and safety, appearing in flight plans, air traffic control communications, and aeronautical charts.

Because they are managed separately, the two codes for one airport rarely resemble each other in any obvious way, and a traveler will almost never encounter the ICAO code in normal booking.

Format and structure

IATA codes are three letters with no built-in geographic logic. They are often mnemonic (LAX for Los Angeles), but many are historical accidents. There are only 17,576 possible three-letter combinations, so codes are a scarce resource and are reused only after long retirement periods.

ICAO codes are four letters and are regionally structured. The first letter (or first two) encodes a broad geographic region, which makes the code partly self-describing to controllers and dispatchers.

KContiguous United States (KJFK, KLAX)
EGUnited Kingdom (EGLL for London Heathrow)
RKSouth Korea (RKSI for Incheon)
YAustralia (YSSY for Sydney)
LFFrance (LFPG for Paris Charles de Gaulle)

A useful pattern: for many airports in the contiguous US, the ICAO code is simply the IATA code with a "K" prefix. That shortcut does not hold everywhere, and it breaks down in Alaska, Hawaii, and outside the US entirely.

Where each code is used

You see IATA codes constantly as a passenger and ICAO codes almost never. The split looks like this:

  • IATA (passenger-facing): boarding passes, e-tickets, baggage tags, airline reservation systems, fare and schedule databases, and departure boards.
  • ICAO (operational): filed flight plans, air traffic control, cockpit and dispatch documentation, NOTAMs, aeronautical charts, and flight-tracking systems.

Pilots and dispatchers work in ICAO codes because the four-letter system covers far more facilities, including small airfields, military bases, and heliports that may have no IATA code at all. IATA codes also exist for some places that are not airports, such as rail stations and bus terminals used in intermodal ticketing, which ICAO does not cover.

Side-by-side examples

The relationship is clearest with real airports. Note how ICN and RKSI share nothing in common, while the US examples follow the "K" shortcut.

Incheon (Seoul)IATA ICN / ICAO RKSI
New York KennedyIATA JFK / ICAO KJFK
London HeathrowIATA LHR / ICAO EGLL
SydneyIATA SYD / ICAO YSSY

Why the difference matters

For everyday travel, the IATA code is all you need; it is what airlines, travel sites, and airport signage speak. If you move into flight simulation, flight tracking, or any operational context, you will need the ICAO code, because that is the language of the cockpit and the control tower. Confusing the two can cause real problems: entering a three-letter code where a four-letter one is expected, or assuming the "K" prefix rule applies to an airport outside the contiguous United States, will produce the wrong airport or no match at all.

A third system, the FAA Location Identifier used within the United States, adds further nuance for domestic operations, but for international purposes IATA and ICAO are the two codes that matter. Knowing which is which, and where each belongs, is enough to read a boarding pass and a flight plan with equal confidence.