← Blog

Explainer

IATA vs ICAO Airport Codes

By The Flight Tracker Team · September 3, 2026

Three letters is an IATA code: LHR, JFK, DXB. Four letters is an ICAO code: EGLL, KJFK, OMDB. They point at the same airport. IATA codes are for passengers and bookings; ICAO codes are for pilots, controllers, and flight plans.

If you are checking a flight, the three-letter code is the one you want.

The two systems side by side

IATAICAO
Issued byInternational Air Transport Association (an airline trade body)International Civil Aviation Organization (a United Nations agency)
Length3 letters4 letters
Used forTickets, bag tags, boarding passes, departure boards, booking sitesFlight plans, air traffic control, charts, official documents
Structured?Barely — largely historical and arbitraryYes — the first letter or two encode a region
How manyRoughly 11,000 assignedConsiderably more, including airfields with no commercial service

The important structural difference: ICAO codes are geographic and IATA codes are not.

An ICAO code begins with a region prefix. E is northern Europe, K is the contiguous United States, O is much of the Middle East, Y is Australia, Z is China, V covers South and Southeast Asia. So an aviation professional reading EGPH already knows it is in the UK before knowing which airport it is.

IATA codes carry no such logic. ORD is Chicago O’Hare because the site was once called Orchard Field. YYZ is Toronto because of a historical Canadian radio-station convention. There is no pattern to learn, only a list.

Worked examples

AirportIATAICAONotes
London HeathrowLHREGLLEG = United Kingdom
New York JFKJFKKJFKUS codes are often just K + the IATA code
Los AngelesLAXKLAXThe X was padding when 2-letter codes became 3
DubaiDXBOMDBOM = United Arab Emirates
DelhiDELVIDPNo visual relationship at all
Tokyo HanedaHNDRJTTRJ = Japan
FrankfurtFRAEDDFED = Germany
SydneySYDYSSYY = Australia
Toronto PearsonYYZCYYZC = Canada

Note the two patterns worth remembering: in the United States the ICAO code is usually K plus the IATA code, and in Canada it is usually C plus the IATA code. Everywhere else, assume no relationship — DEL and VIDP is the normal case, not the exception.

Airlines have both kinds of code too

The same split applies to carriers, which is why a flight number can look different in different places.

  • IATA airline codes are two characters: BA, AA, EK, 6E. This is what appears on your ticket, so your flight number is BA212.
  • ICAO airline codes are three letters: BAW, AAL, UAE, IGO. These are used in flight plans and are what you hear as a callsign — BAW212 is spoken as “Speedbird 212”.

So the same flight is BA212 to you and BAW212 to a controller. If you ever see a four-character-looking flight identifier that does not match your ticket, this is usually why. For the practical side of using the number you were given, see how to check flight status by flight number.

Why your boarding pass shows one and a flight plan the other

It comes down to what each system needs to be good at.

Passenger systems need brevity and uniqueness across commercial destinations. Three characters fit on a bag tag, print on a small ticket stub, and read clearly on a departure board at a distance. There are only a few thousand airports with scheduled service, so three letters is enough, and IATA has assigned them incrementally since the 1930s — which is why they are inconsistent.

Operational systems need a global, unambiguous, structured namespace. Air traffic control has to reference every airfield in the world, including grass strips, military bases, and heliports that no airline serves. Three letters cannot cover that, and a code with no geographic logic would be a safety problem in a flight plan. Four characters with a region prefix solve both.

There is also a hard collision problem. IATA codes are unique among themselves and ICAO codes are unique among themselves, but the two sets overlap in confusing ways. YYZ is IATA for Toronto and part of ICAO CYYZ. Mixing the systems in one field is a genuine hazard, which is why operational documents use ICAO exclusively.

Where you will see each one

IATA (three letters): your booking confirmation, boarding pass, bag tag, the departure board, the search box on any booking site, and the route line on a status card.

ICAO (four letters): flight plans, aeronautical charts, official notices to airmen, air traffic control documents, and the airport detail pages of tools built for enthusiasts.

Flight Tracker shows both codes on each airport page, alongside timezone, coordinates, elevation, and contact details, across 4,000+ airports. If you are searching for an airport and the three-letter code is not working, try the four-letter one — or the airport’s name, which is often the fastest route in.

And if a code lookup is standing between you and a decision about a real journey, confirm the airport and terminal with your airline. Large cities have several airports, and LGW is not LHR.


Check your flight

Flight Tracker looks up status, gate, terminal, and baggage by flight number or route. Free on Android.

Get Flight Tracker