Airport codes are a common source of confusion and represent a significant portion of the alphabet soup of aviation terminology. One airport often has multiple codes used to reference it. New York’s JFK also goes by KJFK. There are three main types of codes, each with a different level of recognition outside of those intimately familiar with aviation data. FlightAware’s airport database product (also available as a subscription for ongoing updates) provides the “magic decoder ring” for worldwide airport data. Importantly, it provides a cross-reference between the three types of airport codes so that you can properly correlate airport data.
The three types of airport codes are IATA, ICAO, and LID codes.
IATA codes are the most widely understood codes and used for airline travel (schedules, bookings/ticketing, boarding passes, flight status, baggage tags, etc.). IATA codes are the most recognized airport codes due to their use by the airlines to facilitate passenger air travel. IATA codes consist of 3-alphabetic characters. These codes are assigned and managed by the International Air Transport Association (IATA). IATA location codes are also assigned in some cases to non-airport locations that are connected to air travel, such as train and bus stations. Additionally, IATA also assigns city and metropolitan area codes, using the same 3-letter format, which in many cases duplicate a related airport code.
ICAO codes are the next most widely recognized codes. While IATA codes specifically support the airline travel industry, ICAO codes more broadly support international flight operations regardless of the type of operation (to include general and business aviation). ICAO codes are filed on air traffic control flight plans and are the international standard used worldwide for interoperability between air navigation service providers. As such, pilots, dispatchers, and air traffic controllers work primarily in the ICAO airport code scheme. The United Nation’s International Civil Aviation Organization (ICAO) coordinates the assignment and dissemination of ICAO codes. ICAO codes consist of 4-alphabetic characters. The first one or two letters are allocated to a specific country by ICAO, and each country handles specific assignments to airports within its boundaries using the remaining two or three characters. ICAO publishes a list of codes in its “Doc 7910” document. Like IATA codes, ICAO codes are considered “location codes” by ICAO and are assigned to locations other than airports, such as air traffic control facilities, weather forecast offices, etc. ICAO also assigns two notable special codes: “ZZZZ” to designate airports without an ICAO code (e.g., to be filed on an ATC flight plan) and “AFIL” to designate the origin for flight plans filed when the aircraft is already in the air.
The least understood type of airport code is the LID code. LID is an abbreviation for “local identifier” and “local” in this context means local to the country in which they are assigned. LID codes are most like ICAO codes, in that they are used to uniquely identify airports for operational reasons by air traffic control. Most countries do not assign LID codes and instead typically only assign 4-letter ICAO codes. Notably, countries such as the United States, Canada, Mexico, and Russia assign LID codes within their boundaries. In the United States, many airports have LID codes and IATA codes that are the same, which results in the two being conflated quite frequently. Additionally, some airports have IATA codes that are not the same as the assigned LID code, which results in additional confusion. While English is the international language of aviation, Russia goes its own way by assigning LID codes using the Cyrillic alphabet.
It is important to note that airports can have any combination of IATA, ICAO, and/or LID codes assigned. Furthermore, it is also worth remembering that many airports have no unique designator codes at all. Airports without any code tend to be small private airstrips or helipads.
How FlightAware uses airport codes
FlightAware tracks flights primarily by their origin and destination ICAO location codes, when available. In cases when an airport does not have an ICAO code, FlightAware falls back to a LID code if one is available. In rare cases, FlightAware may track a flight only by its IATA code if that is the only available code for the airport. When FlightAware is unable to determine an origin or destination airport, the flight is tracked simply by the latitude and longitude coordinates from its first or last observed position, respectively.
Being able to convert back and forth between different types of airport codes allows FlightAware to act as a central hub for aviation data. FlightAware ingests dozens of data sources to create its fused single version of the truth, using our Hyperfeed data processing engine. Each data source has its own unique characteristics, such as which type of airport code it uses. Airline schedules and flight status are typically represented using IATA codes, while air traffic control flight plans use ICAO or LID codes. FlightAware seamlessly fuses these sources to match related data from different sources. Our fused data output is the source of flight tracking in all of FlightAware’s products, including flightaware.com, FlightAware Global, FBO Toolbox, Firehose, and AeroAPI. If you need to cross-reference codes for your use case, our airport database download will be a valuable resource for you.
Written by Eric Carlson, FlightAware Product Manager
Eric is responsible for product management of AeroAPI and Firehose as well as FlightAware's source data acquisition and quality.