adsbexchange.com APIadsbexchange.com ↗
Query real-time global aircraft positions, altitudes, callsigns, and registrations via 11 endpoints covering radius, airport, country, and subdivision filters.
curl -X GET 'https://api.parse.bot/scraper/04acf42c-3bef-4fb5-8055-7f464d93a1c4/get_all_aircraft' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns all aircraft currently being tracked globally. Returns full ADS-B data including lat, lon, altitude, speed, heading, callsign, ICAO hex, and more.
| Param | Type | Description |
|---|---|---|
| api_keyrequired | string | ADSB Exchange API Key (X-Api-Key) |
{
"type": "object",
"fields": {
"now": "integer",
"total": "integer",
"aircraft": "array"
},
"sample": {
"now": 1625000000000,
"total": 10000,
"aircraft": [
{
"gs": 450,
"hex": "A1B2C3",
"lat": 37.7749,
"lon": -122.4194,
"track": 90,
"alt_baro": 34000,
"callsign": "UAL123"
}
]
}
}About the adsbexchange.com API
The ADS-B Exchange API exposes 11 endpoints that return real-time ADS-B flight data for aircraft worldwide, including latitude, longitude, barometric altitude, speed, heading, ICAO hex code, callsign, and registration. You can retrieve the full global feed via get_all_aircraft, narrow results to a geographic radius with get_aircraft_in_radius, or look up individual aircraft by hex code, callsign, or tail number.
What the API Returns
Every aircraft endpoint returns a now timestamp (Unix milliseconds), a total count, and an aircraft array. Each element in that array carries the full ADS-B state vector for a tracked aircraft: latitude (lat), longitude (lon), barometric altitude (alt_baro), ground speed, track heading, ICAO 24-bit hex identifier, callsign, and registration. The get_all_aircraft endpoint returns this payload for every aircraft currently visible in the global feed, while get_total_aircraft_count returns only now and total when you need a count without the full array overhead.
Lookup and Filtering Endpoints
get_aircraft_by_hex, get_aircraft_by_callsign, and get_aircraft_by_registration all accept comma-separated lists, so a single request can resolve multiple aircraft simultaneously. The filter_aircraft endpoint (POST) accepts an array of filter objects — each specifying a property, an operator (e.g. le, ge, eq), and a value — combined with an optional logical_operator of and or or. For example, filtering on alt_baro le 5000 returns only low-altitude aircraft, and combining filters lets you isolate specific altitude bands or speed ranges across the global feed.
Geographic Scoping
Spatial queries cover three levels of granularity. get_aircraft_in_radius takes a lat, lon, and dist (nautical miles) to return all tracked aircraft within that circle. get_aircraft_near_airport accepts an ICAO airport code (e.g. KSFO) and returns aircraft within a fixed 5-nautical-mile radius. Country-level scoping is handled by get_aircraft_by_country using ISO 3166-1 alpha-2 codes. For sub-national precision, get_subdivisions_by_country_code lists available ISO 3166-2 codes for a given country, and get_aircraft_by_country_subdivision then scopes the aircraft feed to that state or province.
Data Scope and Freshness
ADS-B Exchange aggregates feeds from a global network of volunteer and commercial receivers. Coverage density varies by geography — heavily trafficked airspace over Europe and North America has higher receiver density than oceanic or remote regions. All responses reflect the current live snapshot; there is no built-in historical query or replay capability in these endpoints.
- Map all aircraft currently within 50 nautical miles of a specific lat/lon for a proximity alert system
- Monitor approach traffic at a specific airport using
get_aircraft_near_airportwith an ICAO code - Build a low-altitude aircraft detector by filtering
alt_barobelow 1000 feet viafilter_aircraft - Track a corporate jet's real-time position using its tail number via
get_aircraft_by_registration - Count total airborne aircraft in a country for aviation density dashboards using
get_aircraft_by_country - Resolve multiple callsigns in a single request to correlate fleet positions for an airline operations tool
- Scope live air traffic to a U.S. state using subdivision codes for regional airspace monitoring
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ADS-B Exchange have an official developer API?+
What fields are in the `aircraft` array returned by the lookup endpoints?+
alt_baro), latitude, longitude, ground speed, and track heading, among other ADS-B state fields. The exact field set is the same across get_aircraft_by_hex, get_aircraft_by_callsign, get_aircraft_by_registration, and the geographic endpoints.Does `filter_aircraft` support combining multiple conditions?+
property, operator, and value. Set logical_operator to and to require all conditions to match, or or to match any. Properties must be valid ADS-B state vector fields such as alt_baro or ground speed. There is no documented support for nested logic groups within a single request.Does the API return historical flight data or flight path replays?+
Is aircraft coverage uniform across all regions?+
get_aircraft_by_country and subdivision endpoints will return only aircraft whose signals are being received at query time.