New rate limits now apply to all accounts.

ADS-B Aircraft Tracking

Get live aircraft positions from ADS-B receivers with optional filtering by ICAO24 hex, callsign, location radius, bounding box, altitude, speed, registration, or airline. Aircraft data is enriched from a 615,000+ record registry.

v2 limitation: No photos parameter on live aircraft — photo_url is always null. For thumbnail enrichment, use the v3 ADS-B API.

Requirements

Auth
x-api-key on every request (direct subscription). Learn more →
EndpointWhen to use
GET /v2/adsb/aircraftLive positions — map tiles, traffic boards, filtered feeds
GET /v2/adsb/aircraft/statisticsFleet-wide aggregates — airborne vs on-ground, altitude stats
GET /v2/adsb/healthFeed health — connection status and active aircraft count

Live aircraft

Request

GEThttps://data.skylinkapi.com/v2/adsb/aircraft
ParameterTypeRequiredDefaultDescription
icao24stringNo-Filter by 6-character hex transponder address
callsignstringNo-Partial callsign match (case-insensitive)
latnumberNo-Centre latitude for radius search
lonnumberNo-Centre longitude for radius search
radiusnumberNo-Search radius in kilometres (max 1000)
bboxstringNo-Bounding box lat1,lon1,lat2,lon2 — SW corner first
min_altnumberNo-Minimum altitude in feet
max_altnumberNo-Maximum altitude in feet
min_speednumberNo-Minimum ground speed in knots
max_speednumberNo-Maximum ground speed in knots
registrationstringNo-Filter by tail number
airlinestringNo-Filter by operating airline name

v2 limitation: No photos, limit, or offset parameters — returns the full matched set (use geo filters to bound size). For pagination and optional aircraft photos, use v3 ADS-B.

Filter combination rules — do not mix circle and bbox:

ModeParameters
Circlelat + lon + radius (all three)
Rectanglebbox only
NoneNo geo filter

Response

{
  "aircraft": [
    {
      "icao24": "0A0022",
      "callsign": "DAH2055",
      "latitude": 51.274109,
      "longitude": -0.675964,
      "altitude": 9075.0,
      "ground_speed": 298.3,
      "track": 153.09,
      "vertical_rate": 2880.0,
      "is_on_ground": false,
      "last_seen": "2026-06-16T14:21:45.674566",
      "first_seen": "2026-06-16T14:17:09.312068",
      "registration": "7T-VJP",
      "aircraft_type": "Boeing B738",
      "airline": "Air Algerie",
      "photo_url": null
    }
  ],
  "total_count": 67,
  "timestamp": "2026-06-16T14:21:49.178448"
}
FieldTypeNull?Description
icao24stringNeverICAO 24-bit hex identifier
callsignstringYesFlight callsign
latitudenumberYesWGS-84 latitude
longitudenumberYesWGS-84 longitude
altitudenumberYesBarometric altitude in feet MSL
ground_speednumberYesGround speed in knots
tracknumberYesTrack angle in degrees (0–360)
vertical_ratenumberYesVertical rate in feet per minute
is_on_groundbooleanYestrue when on the surface
last_seenstringNeverLast observation time (ISO 8601)
registrationstringYesTail number when resolved
aircraft_typestringYesType description
airlinestringYesOperating airline
photo_urlstringYesAlways null in v2
GET
/adsb/aircraft
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Query Parameters

icao24?|

Filter by specific ICAO 24-bit aircraft identifier (6 hex characters)

callsign?|

Filter by flight callsign (partial match, case-insensitive)

lat?|

Center latitude for radius search (requires lon and radius)

lon?|

Center longitude for radius search (requires lat and radius)

radius?|

Search radius in kilometers (requires lat and lon)

bbox?|

Bounding box as 'lat1,lon1,lat2,lon2' (southwest,northeast corners)

min_alt?|

Minimum altitude in feet

max_alt?|

Maximum altitude in feet

min_speed?|

Minimum ground speed in knots

max_speed?|

Maximum ground speed in knots

registration?|

Filter by aircraft registration (if enrichment data available)

airline?|

Filter by operating airline (if enrichment data available)

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v2/adsb/aircraft"
{
  "aircraft": [
    {
      "icao24": "A12345",
      "callsign": "BAW123",
      "latitude": 51.4706,
      "longitude": -0.4619,
      "altitude": 35000,
      "ground_speed": 450.5,
      "track": 89.2,
      "vertical_rate": 0,
      "is_on_ground": false,
      "last_seen": "2025-09-27T12:00:00Z",
      "first_seen": "2025-09-27T11:45:00Z",
      "registration": "G-ABCD",
      "aircraft_type": "Boeing 777-300ER",
      "airline": "British Airways"
    }
  ],
  "total_count": 4691,
  "timestamp": "2025-09-27T12:00:30Z"
}
{
  "error": "string",
  "detail": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}
{
  "error": "string",
  "detail": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Tracking statistics

Aggregate statistics about the currently tracked fleet — total aircraft, on-ground vs airborne counts, and altitude summary.

Request

GEThttps://data.skylinkapi.com/v2/adsb/aircraft/statistics

No query or path parameters.

Response

{
  "total_aircraft": 4691,
  "positioned_aircraft": 4666,
  "on_ground": 153,
  "airborne": 4513,
  "altitude_stats": {
    "min_altitude": 125,
    "max_altitude": 58500,
    "avg_altitude": 25848.3
  },
  "timestamp": "2025-09-27T12:00:30Z"
}
FieldTypeDescription
total_aircraftintegerTotal tracked aircraft
positioned_aircraftintegerAircraft with a known position
on_groundintegerAircraft flagged on ground
airborneintegerAircraft flagged airborne
altitude_statsobjectFleet altitude summary
altitude_stats.min_altitudenumberMinimum reported altitude (feet)
altitude_stats.max_altitudenumberMaximum reported altitude (feet)
altitude_stats.avg_altitudenumberMean altitude across fleet (feet)
timestampstring (ISO 8601)Snapshot time
GET
/adsb/aircraft/statistics
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v2/adsb/aircraft/statistics"
{
  "total_aircraft": 4691,
  "positioned_aircraft": 4666,
  "on_ground": 153,
  "airborne": 4513,
  "altitude_stats": {
    "min_altitude": 125,
    "max_altitude": 58500,
    "avg_altitude": 25848.3
  },
  "timestamp": "2025-09-27T12:00:30Z"
}
{
  "error": "string",
  "detail": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "error": "string",
  "detail": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Service health

Returns ADS-B connection status and active aircraft count. Use for uptime monitoring before starting a polling loop.

Request

GEThttps://data.skylinkapi.com/v2/adsb/health

No query or path parameters.

Response

{
  "status": "healthy",
  "connected": true,
  "active_aircraft_count": 9889,
  "connection_uptime": null,
  "last_message_received": "2026-06-16T14:21:46.212802"
}
FieldTypeNull?Description
statusstringNeverService status label, e.g. healthy
connectedbooleanNeverWhether the ADS-B hub connection is active
active_aircraft_countintegerNeverCurrently tracked aircraft
connection_uptimenumberYesUptime in seconds when available
last_message_receivedstring (ISO 8601)YesLast message timestamp from the feed
GET
/adsb/health
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://data.skylinkapi.com/v2/adsb/health"
{
  "status": "string",
  "connected": true,
  "active_aircraft_count": 0,
  "connection_uptime": 0,
  "last_message_received": "2019-08-24T14:15:22Z"
}
{
  "error": "string",
  "detail": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "error": "string",
  "detail": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Implementation notes

Polling interval. Poll live aircraft every 5–15 seconds. Faster polling rarely improves freshness.

Bounding queries. Always pass a geo filter for map views — unfiltered queries return large payloads.

Error responses

404 — ICAO24 filter not found (live aircraft)

When filtering by icao24 and no aircraft matches:

{
  "error": "Aircraft not found",
  "detail": "No aircraft found with ICAO24 000000"
}

Related: v3 ADS-B · Getting Started