Download the validated OpenAPI 3.1 contract for code generation, API clients, and catalogs.

Building with an AI assistant? Connect the authenticated, read-only ADSBiq MCP server. MCP setup →

Agent-friendly community metadata: Successful public responses expose a compact Link: rel="contribute" and bounded X-ADSBiq-* headers. Geographic aircraft results add context only after active receiver proximity is measured. Existing receivers can share alongside current services; the hint explicitly tells AI-built clients not to interrupt or pressure operators.

Other APIs ? live WebSocket documentation, daily Parquet, and truthful integration status ?

Authentication

Every feeder gets a unique API key. Use it from any IP โ€” your laptop, VPS, phone, scripts.

curl -H "Authorization: Bearer YOUR_API_KEY" https://api.adsbiq.com/v2/all

Your API key is shown only on your feeder dashboard after you claim your feeder. This public documentation never exposes the key.

Alternative: IP-based auth (no key needed from home network)

Requests from your feeder's IP are automatically authenticated โ€” no header needed:

curl https://api.adsbiq.com/v2/all

Not a feeder? Install in 60 seconds to get access.

Kept only in this page; never saved. Examples are selected from the live snapshot when this page loads.

Access Tiers

Live data is earned by feeding. Bulk data is free to everyone, always. New here? You get a 3-day full-access trial โ€” then feed to keep the fast lane.

TierWhoRESTLive WebSocket
TrialNew user, first 3 days1 / 20s10s push
FreeAfter trial, not feeding1 / 5 min150s push
ContributorActive ADS-B feeder1 / 20s10s push

Each tier also has a fair-use daily data budget. Exceeding a limit returns 429 with a Retry-After header; the response points you to the WebSocket (far lighter than polling) or the free bulk download.

๐Ÿ“ฆ Bulk / research use? The complete dataset is published free, once daily as Parquet โ€” no account, no limits: ADSB IQ open data. For most non-realtime use cases it's the better fit anyway.

Feed in 60 seconds to unlock the contributor stream.

๐Ÿ›ฐ๏ธ Looking for the VDL2 API? It lives on our sister site โ€” full docs at vdlIQ (vdliq.com/api/docs) ↗

๐Ÿ“ก ADS-B — Position Data (REST) 1090 MHz

Request/response โ€” poll for aircraft positions and flight data on demand

Endpoints

Find Aircraft & FlightsSearch by identity, operator, type, route, or flexible flight filters.10 endpoints
GET
/v2/hex/{hex}

Single aircraft by ICAO 24-bit hex (e.g., ad5d5c).

GET
/v2/reg/{reg}

Aircraft by registration (e.g., N960NK).

GET
/v2/type/{type}

Aircraft by ICAO type designator (e.g., B738, A20N).

GET
/v2/callsign/{callsign}

Aircraft by callsign (e.g., NKS3205).

GET
/v2/flight/{identifier}

One live flight by callsign, ICAO hex, or registration, with origin and destination airport details.

GET
/v2/flights

Composable live search by origin, destination, operator, type, status, and altitude range.

GET
/v2/operator/{code}/flights

Currently tracked flights for an ICAO airline/operator code.

GET
/v2/types/{type}/flights

Currently tracked flights for an aircraft type such as B738.

GET
/v2/operators

Active operator directory with aircraft counts, common types, and representative callsigns.

GET
/v2/types

Active aircraft-type directory with airborne/ground and operator breakdowns.

Location & ProximityFind aircraft and airports around coordinates or within a map viewport.4 endpoints
GET
/v2/bbox

Aircraft inside a map viewport using min_lat, min_lon, max_lat, and max_lon.

GET
/v2/aircraft/nearest

Nearest aircraft to lat/lon, ordered by distance with bearing included.

GET
/v2/airports/nearby?lat={lat}&lon={lon}

Nearest airports ordered by distance. Optional: radius (up to 500 nm) and limit (up to 100).

GET
/v2/lat/{lat}/lon/{lon}/dist/{nm}

Aircraft within radius (nautical miles). Example: /v2/lat/26.68/lon/-80.10/dist/50

Airports & RoutesAirport details, traffic, arrivals, departures, and active routes.8 endpoints
GET
/v2/airport/{code}

Live arrivals and departures associated with an ICAO, IATA, or local airport code.

GET
/v2/airport/{code}/arrivals

Live arrivals associated with an ICAO, IATA, or local airport code.

GET
/v2/airport/{code}/departures

Live departures associated with an ICAO, IATA, or local airport code.

GET
/v2/airport/{code}/traffic-summary

Live airport traffic summary, arrivals, departures, aircraft types, and operators.

GET
/v2/route/{origin}/{destination}

Currently tracked flights between two airports; each airport may use its ICAO, IATA, or local code.

GET
/v2/airports/active

Airports ranked by currently associated arrivals and departures.

GET
/v2/airport/{code}/nearby-aircraft

Aircraft geographically near an airport, independent of filed route.

GET
/v2/route/{origin}/{destination}/summary

Live route counts, flights, types, operators, and altitude range.

Tracking & SafetyRecent aircraft movement, special squawks, and current emergencies.3 endpoints
GET
/v2/aircraft/{hex}/track

Bounded recent position track for one aircraft. Optional: minutes and limit.

GET
/v2/squawk/{code}

Aircraft by squawk code (e.g., 7700).

GET
/v2/emergencies

Current declared emergencies and aircraft squawking 7500, 7600, or 7700.

Network StatisticsCurrent network activity, geography, and signal health.5 endpoints
GET
/v2/stats/live

Globally cached live network totals and leading types, operators, airports, and countries.

GET
/v2/area/countries

Live aircraft counts grouped by ICAO registration country.

GET
/v2/signal

Real-time RSSI signal stats (no auth required). Returns avg, median, p10, p90, aircraft count.

GET
/v2/signal/history

Last 5 minutes of signal readings (2s intervals, ~150 points). For chart priming.

GET
/v2/stats

Lightweight network stats (no auth). Returns aircraft_count and messages.

Bulk DataThe complete current live-aircraft snapshot.1 endpoints
GET
/v2/all

Full aircraft snapshot โ€” all currently tracked aircraft.

Response Format

{
  "now": 1774187176.0,
  "messages": 6505606,
  "total": 51,
  "ctime": 1774187176.3,
  "ptime": 1774187175.9,
  "ac": [
    {
      "hex": "ad5d5c",
      "type": "adsb_icao",
      "flight": "NKS3205 ",
      "category": "A3",
      "squawk": "1770",
      "emergency": "none",

      "lat": 26.224091,
      "lon": -80.960739,
      "alt_baro": 33350,
      "alt_geom": 34725,
      "baro_rate": 1472,
      "geom_rate": 1504,

      "gs": 457.4,
      "ias": 277,
      "tas": 458,
      "mach": 0.776,
      "track": 2.26,
      "track_rate": 0.0,
      "roll": -0.7,
      "mag_heading": 5.27,
      "true_heading": 358.36,

      "nav_qnh": 1012.8,
      "nav_altitude_mcp": 35008,

      "oat": -44,
      "tat": -16,

      "rssi": -23.1,
      "messages": 1140,
      "seen": 0.3,
      "seen_pos": 0.98,

      "r": "N960NK",
      "t": "A20N",
      "route_origin": "FLL",
      "route_dest": "MCI"
    }
  ]
}

Envelope

FieldDescription
nowUnix epoch (UTC, 1dp) when readsb wrote this snapshot (feeder Pi clock)
messagesTotal ADS-B messages received since receiver start
totalNumber of aircraft in this response
ctimeUnix epoch (UTC, 1dp) when the API server generated this response
ptimeUnix epoch (UTC, 1dp) when the cache daemon last processed the data

ADS-B Position & Flight Data

FieldTypeDescription
hexstringICAO 24-bit address (lowercase hex)
typestringSource: adsb_icao, mlat, tisb, adsr
flightstringCallsign (8 chars, space-padded)
rstringRegistration (e.g., N960NK)
lat/lonfloatPosition (WGS84 decimal degrees)
alt_baroint | "ground"Barometric altitude (feet) or the string "ground"
alt_geomintGeometric (GPS) altitude (feet)
gsfloatGround speed (knots)
iasintIndicated airspeed (knots)
tasintTrue airspeed (knots)
machfloatMach number
trackfloatTrack angle (degrees, 0=north)
track_ratefloatRate of turn (degrees/second)
calc_trackfloatCalculated track from position history
rollfloatRoll angle (degrees, negative=left)
mag_headingfloatMagnetic heading (degrees)
true_headingfloatTrue heading (degrees)
baro_rateintBarometric vertical rate (ft/min)
geom_rateintGeometric vertical rate (ft/min)
seenfloatSeconds since last message from this aircraft
seen_posfloatSeconds since last position update
rssifloatSignal strength (dBFS, typically -1 to -35)
messagesintTotal messages received from this aircraft

Navigation & Avionics

FieldTypeDescription
squawkstringTransponder squawk code
emergencystringEmergency status (none, general, downed, etc.)
categorystringEmitter category (A1-A7, B1-B7, C1-C3)
nav_qnhfloatAltimeter setting (hPa/mbar)
nav_altitude_mcpintSelected altitude โ€” MCP/FCU (feet)
nav_altitude_fmsintSelected altitude โ€” FMS (feet)
nav_headingfloatSelected heading (degrees)
nav_modesarrayActive nav modes: autopilot, vnav, lnav, tcas, althold, approach
alertintAlert flag (0 or 1)
spiintSpecial Position Identification (0 or 1)
nicintNavigation Integrity Category (0-11)
rcintContainment radius (meters)
nic_barointNIC supplement for baro altitude
nac_pintNavigation Accuracy โ€” Position
nac_vintNavigation Accuracy โ€” Velocity
silintSource Integrity Level
sil_typestringSIL supplement: perhour or persample
gvaintGeometric Vertical Accuracy
sdaintSystem Design Assurance
versionintADS-B version (0, 1, or 2)
dbFlagsintBitmask: 1=military, 2=interesting, 4=PIA, 8=LADD
mlatarrayFields derived from multilateration
tisbarrayFields derived from TIS-B

Meteorological (from aircraft avionics โ€” BDS 4,4 / 4,5)

FieldTypeDescription
oatfloatOutside air temperature (°C)
tatfloatTotal air temperature (°C)
wdintWind direction (degrees)
wsintWind speed (knots)

Route (from TFMS flight plans)

FieldTypeDescription
route_originstringOrigin airport IATA code
route_deststringDestination airport IATA code

Compression

Send Accept-Encoding: gzip for ~80% smaller payloads.

curl -H "Accept-Encoding: gzip" --compressed https://api.adsbiq.com/v2/all

Example Code

Get started quickly with a working Flask demo that queries every endpoint:

git clone https://github.com/Sky-Power-Services/adsbiq-api-demo.git
cd adsbiq-api-demo
pip install -r requirements.txt
python app.py

View on GitHub โ€” includes REST and WebSocket examples.