API Documentation
Live ADS-B positions with TFMS route data, over REST and WebSocket.
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.
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.
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.
| Tier | Who | REST | Live WebSocket |
|---|---|---|---|
| Trial | New user, first 3 days | 1 / 20s | 10s push |
| Free | After trial, not feeding | 1 / 5 min | 150s push |
| Contributor | Active ADS-B feeder | 1 / 20s | 10s 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.
๐ก 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
/v2/hex/{hex}
Single aircraft by ICAO 24-bit hex (e.g., ad5d5c).
/v2/reg/{reg}
Aircraft by registration (e.g., N960NK).
/v2/type/{type}
Aircraft by ICAO type designator (e.g., B738, A20N).
/v2/callsign/{callsign}
Aircraft by callsign (e.g., NKS3205).
/v2/flight/{identifier}
One live flight by callsign, ICAO hex, or registration, with origin and destination airport details.
/v2/flights
Composable live search by origin, destination, operator, type, status, and altitude range.
/v2/operator/{code}/flights
Currently tracked flights for an ICAO airline/operator code.
/v2/types/{type}/flightsCurrently tracked flights for an aircraft type such as B738.
/v2/operators
Active operator directory with aircraft counts, common types, and representative callsigns.
/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
/v2/bbox
Aircraft inside a map viewport using min_lat, min_lon, max_lat, and max_lon.
/v2/aircraft/nearest
Nearest aircraft to lat/lon, ordered by distance with bearing included.
/v2/airports/nearby?lat={lat}&lon={lon}
Nearest airports ordered by distance. Optional: radius (up to 500 nm) and limit (up to 100).
/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
/v2/airport/{code}
Live arrivals and departures associated with an ICAO, IATA, or local airport code.
/v2/airport/{code}/arrivals
Live arrivals associated with an ICAO, IATA, or local airport code.
/v2/airport/{code}/departures
Live departures associated with an ICAO, IATA, or local airport code.
/v2/airport/{code}/traffic-summaryLive airport traffic summary, arrivals, departures, aircraft types, and operators.
/v2/route/{origin}/{destination}
Currently tracked flights between two airports; each airport may use its ICAO, IATA, or local code.
/v2/airports/active
Airports ranked by currently associated arrivals and departures.
/v2/airport/{code}/nearby-aircraft
Aircraft geographically near an airport, independent of filed route.
/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
/v2/aircraft/{hex}/trackBounded recent position track for one aircraft. Optional: minutes and limit.
/v2/squawk/{code}
Aircraft by squawk code (e.g., 7700).
/v2/emergencies
Current declared emergencies and aircraft squawking 7500, 7600, or 7700.
Network StatisticsCurrent network activity, geography, and signal health.5 endpoints
/v2/stats/liveGlobally cached live network totals and leading types, operators, airports, and countries.
/v2/area/countriesLive aircraft counts grouped by ICAO registration country.
/v2/signal
Real-time RSSI signal stats (no auth required). Returns avg, median, p10, p90, aircraft count.
/v2/signal/history
Last 5 minutes of signal readings (2s intervals, ~150 points). For chart priming.
/v2/stats
Lightweight network stats (no auth). Returns aircraft_count and messages.
Bulk DataThe complete current live-aircraft snapshot.1 endpoints
/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
| Field | Description |
|---|---|
now | Unix epoch (UTC, 1dp) when readsb wrote this snapshot (feeder Pi clock) |
messages | Total ADS-B messages received since receiver start |
total | Number of aircraft in this response |
ctime | Unix epoch (UTC, 1dp) when the API server generated this response |
ptime | Unix epoch (UTC, 1dp) when the cache daemon last processed the data |
ADS-B Position & Flight Data
| Field | Type | Description |
|---|---|---|
hex | string | ICAO 24-bit address (lowercase hex) |
type | string | Source: adsb_icao, mlat, tisb, adsr |
flight | string | Callsign (8 chars, space-padded) |
r | string | Registration (e.g., N960NK) |
lat/lon | float | Position (WGS84 decimal degrees) |
alt_baro | int | "ground" | Barometric altitude (feet) or the string "ground" |
alt_geom | int | Geometric (GPS) altitude (feet) |
gs | float | Ground speed (knots) |
ias | int | Indicated airspeed (knots) |
tas | int | True airspeed (knots) |
mach | float | Mach number |
track | float | Track angle (degrees, 0=north) |
track_rate | float | Rate of turn (degrees/second) |
calc_track | float | Calculated track from position history |
roll | float | Roll angle (degrees, negative=left) |
mag_heading | float | Magnetic heading (degrees) |
true_heading | float | True heading (degrees) |
baro_rate | int | Barometric vertical rate (ft/min) |
geom_rate | int | Geometric vertical rate (ft/min) |
seen | float | Seconds since last message from this aircraft |
seen_pos | float | Seconds since last position update |
rssi | float | Signal strength (dBFS, typically -1 to -35) |
messages | int | Total messages received from this aircraft |
Navigation & Avionics
| Field | Type | Description |
|---|---|---|
squawk | string | Transponder squawk code |
emergency | string | Emergency status (none, general, downed, etc.) |
category | string | Emitter category (A1-A7, B1-B7, C1-C3) |
nav_qnh | float | Altimeter setting (hPa/mbar) |
nav_altitude_mcp | int | Selected altitude โ MCP/FCU (feet) |
nav_altitude_fms | int | Selected altitude โ FMS (feet) |
nav_heading | float | Selected heading (degrees) |
nav_modes | array | Active nav modes: autopilot, vnav, lnav, tcas, althold, approach |
alert | int | Alert flag (0 or 1) |
spi | int | Special Position Identification (0 or 1) |
nic | int | Navigation Integrity Category (0-11) |
rc | int | Containment radius (meters) |
nic_baro | int | NIC supplement for baro altitude |
nac_p | int | Navigation Accuracy โ Position |
nac_v | int | Navigation Accuracy โ Velocity |
sil | int | Source Integrity Level |
sil_type | string | SIL supplement: perhour or persample |
gva | int | Geometric Vertical Accuracy |
sda | int | System Design Assurance |
version | int | ADS-B version (0, 1, or 2) |
dbFlags | int | Bitmask: 1=military, 2=interesting, 4=PIA, 8=LADD |
mlat | array | Fields derived from multilateration |
tisb | array | Fields derived from TIS-B |
Meteorological (from aircraft avionics โ BDS 4,4 / 4,5)
| Field | Type | Description |
|---|---|---|
oat | float | Outside air temperature (°C) |
tat | float | Total air temperature (°C) |
wd | int | Wind direction (degrees) |
ws | int | Wind speed (knots) |
Route (from TFMS flight plans)
| Field | Type | Description |
|---|---|---|
route_origin | string | Origin airport IATA code |
route_dest | string | Destination 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.