IATA vs ICAO codes
Two coding systems, two audiences: one prints on your bag tag, the other lives in the flight plan.
IATA codes — three letters
Assigned by the International Air Transport Association, IATA codes are the ones passengers
see: on tickets, baggage tags, departure boards and airline apps. LHR is Heathrow,
JFK is Kennedy. They are unique worldwide and are reassigned only when an airport
closes or a code is retired.
ICAO codes — four letters
Assigned by the International Civil Aviation Organization and used in flight plans, air traffic
control and weather reports. The first letter or two indicate the region or country —
K for the contiguous United States, EG for the United Kingdom,
RJ for Japan — and the rest identify the airfield. So Heathrow is EGLL
and Kennedy is KJFK.
Where the systems overlap
Most large airports have both codes, but small airfields, heliports, seaplane bases and private strips often have only an ICAO or local identifier. Conversely, some codes look similar: a three-letter IATA code and a four-letter ICAO code for the same city share no digits, so mixing them up is a common travel-agency error.
Reading a code you find here
Every airport page lists the IATA code, the ICAO code, the local identifier, coordinates, elevation and runways, so you can confirm which system you are looking at before booking or filing.
Frequently asked questions
Is the IATA code the same as the ICAO code?
No. IATA codes are three letters for commercial use; ICAO codes are four letters for aviation operations.
Do all airports have an IATA code?
No. Only airports with commercial passenger service normally receive one; small airfields may have only an ICAO or local code.
Can two airports share a code?
IATA codes are unique worldwide. ICAO codes are also unique, but the same three letters can appear inside unrelated four-letter codes.