ADS-B explained. How Automatic Dependent Surveillance-Broadcast works, ADS-B Out vs ADS-B In, the 1090 MHz and 978 MHz UAT frequencies, what data ADS-B transmits, ADS-B mandates worldwide and how to access ADS-B-derived flight data through an API.
Automatic Dependent Surveillance-Broadcast, almost universally abbreviated as ADS-B, is the surveillance technology that powers virtually every modern flight tracking system in the world. It is the reason that anyone — passengers, hobbyists, researchers, ATC controllers — can see where an aircraft is in real time, where it came from and where it is heading.
The name breaks down into four meaningful parts:
Unlike traditional radar, which actively interrogates aircraft and measures the time for echoes to return, ADS-B is a passive system. The aircraft determines its own position via GPS, formats that information into a digital message, and broadcasts the message on a standard frequency. Anyone listening on that frequency receives the position update — including air traffic control, nearby aircraft equipped with ADS-B In, and ground-based receivers operated by tracking networks, hobbyists and aviation data services.
The AirLabs Real-Time Flights API delivers position data ultimately sourced from the global network of ADS-B receivers, normalized and enriched with airline, aircraft and route information. For developers building flight tracking applications, dashboards or analytics products, this is typically the most practical way to consume ADS-B data — you receive structured JSON instead of raw 1090 MHz radio signals.
"ADS-B democratized aviation tracking. Before it became mandatory, knowing where an aircraft was required either being an air traffic controller with radar access, or paying for expensive commercial data. After ADS-B, anyone with a $20 SDR receiver can see every transponder-equipped aircraft within a hundred miles."
The ADS-B system is straightforward in concept. An ADS-B Out-equipped aircraft performs the following continuously while powered:
The total bandwidth used by a single ADS-B transmitter is tiny — each message is around 112 bits and takes about 120 microseconds to transmit. This means that thousands of aircraft can share the 1090 MHz frequency in a single airspace without significant interference, as long as the transmissions are staggered in time.
Receiving ADS-B requires only a properly tuned radio. Air traffic control facilities have professional-grade receivers connected to processing systems that integrate ADS-B with traditional radar tracks. Commercial flight tracking networks operate thousands of receivers distributed around the world. Hobbyists can use $20 software-defined radio dongles to pick up ADS-B from their own neighborhoods and feed data to community projects.
Once received, the messages are decoded to extract the structured fields — position, altitude, speed, heading, identification — and made available to applications. The AirLabs API consumes data sourced from this global network and provides it as a clean JSON interface.
ADS-B has two distinct capabilities, often confused but technically different:
The transmitting half of the system. An aircraft equipped with ADS-B Out broadcasts its own position, identification and velocity to anyone listening. ADS-B Out is mandatory for most commercial aircraft and almost all general aviation operating in controlled airspace in major jurisdictions. The aircraft does not need to receive anything — it only transmits.
The receiving half of the system. An aircraft equipped with ADS-B In can receive signals from other ADS-B Out-equipped aircraft, displaying their positions in the cockpit. This enables enhanced situational awareness, traffic alerting and weather data delivery (when ground stations broadcast supplementary services). ADS-B In is generally optional — it adds value for the operator but is not mandated.
Most commercial transport aircraft and modern general aviation are equipped with both ADS-B Out (for surveillance compliance) and ADS-B In (for cockpit traffic display).
ADS-B uses two different frequencies depending on the aircraft type and operating region:
| Frequency | Standard Name | Used By | Primary Region |
| 1090 MHz | Mode S Extended Squitter | Commercial aircraft, jets, most international aviation | Worldwide |
| 978 MHz | Universal Access Transceiver (UAT) | General aviation, lower altitudes | United States only |
The 1090 MHz frequency is the global standard. Every commercial airliner, every business jet and most international general aviation aircraft transmits ADS-B on 1090 MHz. This is the frequency that hobbyists track, that commercial flight tracking networks aggregate and that fills the airspace data picture worldwide.
The 978 MHz UAT system is a US-specific implementation that uses a different protocol on a different frequency. The FAA introduced UAT primarily for general aviation flying below 18,000 feet, where it offers some advantages (additional information services, less congestion on 1090 MHz). Aircraft operating above 18,000 feet in the US, and any aircraft flying internationally, must use 1090 MHz.
For data consumers, the relevant point is that 1090 MHz data covers essentially all commercial and international aviation, while UAT covers only US-based general aviation flying at lower altitudes. Most flight tracking applications focus on 1090 MHz because it provides the complete picture of commercial operations.
An ADS-B Out transmission carries a structured set of fields, each providing a piece of operational information:
| Field | Description | Example |
| ICAO 24-bit address | Permanent aircraft identifier (hex code) | A9D286 |
| Call sign | Flight identification, often the flight number | AA100 |
| Latitude | GPS-derived latitude | 40.6413 |
| Longitude | GPS-derived longitude | -73.7781 |
| Barometric altitude | Altitude from pressure altimeter | 10,972 m |
| Geometric altitude | Altitude from GPS | 10,985 m |
| Ground speed | Horizontal velocity over the ground | 845 km/h |
| Vertical speed | Climb or descent rate | +500 ft/min |
| Heading or track | Direction the aircraft is moving | 270° |
| Emitter category | Aircraft size/type classification | Heavy aircraft |
The ICAO 24-bit address is the primary identifier — the same hex code used by Mode S transponders. For more detail on how this identifier works, see our ICAO 24-bit Address guide.
The call sign is the flight identification as set by the crew before takeoff. It is typically the flight number in ICAO format (BAW117 for British Airways flight 117), but for some operations it may be a charter callsign, a registration number, or a designated callsign that does not match the marketed flight number.
These fields, broadcast approximately once per second, are exactly what a flight tracking application needs to display aircraft on a map and identify each one.
Major aviation authorities have made ADS-B Out mandatory for most aircraft operating in controlled airspace:
The global mandate is the reason ADS-B data is so comprehensive today. Before the mandates, ADS-B coverage was patchy — only newer aircraft transmitted, and many older aircraft were invisible to ADS-B-only tracking networks. With ADS-B Out required for virtually all commercial operations, the global airspace is now fully visible to anyone with a receiver and the patience to deploy them widely enough.
The AirLabs Real-Time Flights API delivers position data sourced from ADS-B receivers and enriched with metadata that raw ADS-B does not provide. A single API call returns a complete picture of aircraft in any region:
GET https://airlabs.co/api/v9/flights?airline_iata=BA&api_key={KEY}
[{
"hex": "400936",
"reg_number": "G-ZBKA",
"flag": "GB",
"lat": 51.4706,
"lng": -0.4619,
"alt": 10972,
"dir": 270,
"speed": 845,
"v_speed": 0,
"flight_iata": "BA117",
"flight_icao": "BAW117",
"dep_iata": "LHR",
"arr_iata": "JFK",
"airline_iata": "BA",
"aircraft_icao": "B789",
"status": "en-route"
}]
The fields visible here include both the data that comes directly from ADS-B broadcasts (hex, lat, lng, alt, dir, speed, v_speed, flight_icao) and the fields that are added by enrichment using the Fleets Database and Flight Info API (reg_number, airline_iata, aircraft_icao, dep_iata, arr_iata).
The enrichment step is what makes ADS-B data useful for most applications. Raw ADS-B broadcasts contain a hex code and a call sign — useful identifiers, but not directly meaningful to users. The AirLabs API resolves these to the registration number, the airline name and code, the aircraft type and the route — converting cryptic identifiers into the information users actually want to see on a flight tracker map.
The AirLabs Real-Time Flights API supports several filter parameters to narrow the results to relevant subsets of the global ADS-B feed:
airline_iata=BA returns only flights operated by British Airwayshex=400936 returns the live state of a single airframereg_number=G-ZBKA returns the same aircraft by tail numberbbox=south_lat,west_lng,north_lat,east_lng returns all flights within a bounding boxaircraft_icao=B789 returns only Boeing 787-9 flightsdep_iata=LHR&arr_iata=JFK returns flights on a specific city pairThe bbox parameter is particularly useful for building map-based tracking displays — you specify the geographic area visible on the user's screen and receive only the flights within it, rather than pulling the entire global feed.
ADS-B data, particularly when enriched with metadata, serves a wide range of applications:
The most visible use of ADS-B data is consumer-facing flight tracking. Maps showing aircraft positions in real time, "where is my flight" lookup tools and airport arrival monitoring dashboards all depend on a steady stream of ADS-B-derived position updates. The AirLabs Real-Time Flights API provides this stream in a format that is straightforward to integrate into web or mobile applications.
Modern ATC facilities use ADS-B as a primary or supplementary surveillance source, particularly in airspace that lacks comprehensive radar coverage. ADS-B is significantly cheaper to deploy than radar and provides higher-quality position information.
Researchers use historical and real-time ADS-B data to study flight patterns, fuel burn modeling, network topology, route utilization and emissions. The combination of position data with enriched aircraft and route information from the Fleets Database and Routes Database supports sophisticated analytical workflows.
Air freight forwarders track shipments by following the aircraft carrying them. The Real-Time Flights API, queried by aircraft registration or flight number, provides the live position data that shippers and consignees expect to see in modern logistics platforms.
Aviation enthusiasts run personal ADS-B receivers and build dashboards, alerting tools and historical logging systems. For projects that prefer a structured API over raw RF processing, the AirLabs platform provides ADS-B-derived data with consistent JSON responses and no need to maintain receiver infrastructure.
Aviation insurers use real-time and historical position data to verify operational compliance, monitor coverage of insured assets and assess flight risk profiles. ADS-B data combined with the Airlines Database safety records provides the foundation for these analyses.
If you are building an application that consumes ADS-B-derived flight data, a few patterns appear repeatedly in production systems:
_fields parameter to keep responses small and parsing efficientIf you are building a flight tracking application, an aviation analytics tool, a logistics platform or any system that needs structured aircraft position data, the AirLabs API provides ADS-B-derived data enriched with airline, aircraft and route metadata — accessible through a single REST endpoint.
Our Developer API allows you to create a custom experience for your users and increase the value of your product:
You can try it right now without any obligation! Get a free flight API plan and see for yourself that we have exactly the data you need!
If you need more information, don't hesitate to contact us. We are always happy to chat with our customers and are sure to find a customized solution for each request.
Explore AirLabs, or create an account instantly and start using API.
Get FREE API Key