API Documentation

Aviation Database REST API: v1

Docs › Overview

Getting Started

Access aviation data including global airport directories, aircraft lookups, callsign lookups, and operator intelligence, all through a key-authenticated REST API.

Base URL https://aviationdb.uk/api/v1/

The API is built on REST principles, accepts query parameters for GET requests, and returns standard JSON. All requests require an active API key.

Current Dataset

-Operators
-Aircraft
-Callsigns
-Airports
-Runways

Available Endpoints

GET
Airport Short
Compact airport summary: ident, country, GPS code, FIR, and name.
GET
Airport Full
Full airport metadata plus detailed runway specifications.
GET
Aircraft Short
Look up an aircraft by registration or ICAO24 for identity and operator details.
GET
Aircraft Full
Full details including serial, manufacturer, engines, and optional callsign history.
GET
Callsign Search
Look up an exact callsign and retrieve its master record, flights, and aircraft.
GET
Callsigns by Operator
List all known callsigns associated with a given airline operator.
NEW GET
Route Search
Find all callsigns and aircraft that have operated a specific route pair.
GET
Operator Search
Look up an operator by name to see their callsigns and known fleet.
Docs › Overview

Data Coverage

The API is powered by a live, autonomously growing dataset.

How Data is Collected

All aircraft, callsign, route, and operator data is captured automatically by monitoring live flight tracking. Every time a flight is observed the system records the relevant information and adds it to the database. No manual data entry is involved.

Airport data is sourced from a static reference dataset and is available from day one. Aircraft and callsign records are only created once that specific aircraft or callsign has been observed in the live feed.

Missing records are not errorsA 404 Not Found response for an aircraft, callsign, or operator does not necessarily mean the resource doesn't exist: it may simply not have been observed yet.

You may encounter

SituationExplanation
Aircraft not foundRegistration or ICAO24 hasn't been seen in the live feed yet.
Callsign not foundThat specific callsign variant hasn't been logged yet.
Incomplete operator fleetOnly aircraft observed operating under that name are listed.
Sparse route resultsThe route hasn't been operated many times since data collection began.
Docs › Overview

Authentication

All requests require an active API key via Bearer header or api_key query parameter.

Option 1: Authorization header (recommended)

GET curl -H "Authorization: Bearer asb_live_..." "https://aviationdb.uk/api/v1/aircraft.php?aircraft_short=G-EZUC"

Option 2: Query parameter

GET https://aviationdb.uk/api/v1/airports.php?airport_short=EGKK&api_key=asb_live_...
Docs › Overview

Rate Limits

All API requests are subject to rate limiting based on your current plan.

Daily limits by plan

PlanRequests per day
Free10
30 days of tracking history100
90 days of tracking history1000
180 days of tracking history5000
365 days of tracking history10000

Per-minute limits scale with your daily allowance (minimum 10/min).

Rate limit headersEvery response includes X-RateLimit-Limit and X-RateLimit-Remaining headers so you can track usage.
429 Too Many Requests
Response
{
  "error": {
    "code": 429,
    "message": "Rate limit exceeded. Maximum 10 requests per minute."
  }
}
Docs › Overview

Errors

All error responses follow the same shape: an error object with a numeric code and a human-readable message.

Error shape
{
  "error": {
    "code": 401,
    "message": "Invalid API key."
  }
}
404 doesn't always mean missingFor aircraft, callsigns, and operators a 404 means the resource hasn't been observed in the live feed yet. See Data Coverage.

Status Codes

200
OK: request successful.
400
Bad Request: missing or invalid parameter.
401
Unauthorized: missing or invalid api_key.
403
Forbidden, API key is disabled.
404
Not Found: resource doesn't exist or hasn't been observed yet.
429
Too Many Requests: rate limit exceeded.
500
Server Error: something went wrong on our end.
Docs › Airports

Airport Short

GET /api/v1/airports.php?airport_short={icao}&api_key={key}

Returns a compact airport summary containing just the key identifying fields.

Query Parameters

ParameterRequiredDescription
airport_shortstringRequiredICAO identifier (e.g. EGKK). 2–5 alphanumeric characters.
api_keystringRequiredYour active API key.

Example Request

cURL
Python
JavaScript
PHP
cURL
curl -X GET "https://aviationdb.uk/api/v1/airports.php?airport_short=EGKK&api_key=YOUR_KEY"
Python
import requests
r = requests.get("https://aviationdb.uk/api/v1/airports.php", params={
    "airport_short": "EGKK", "api_key": "YOUR_KEY"
})
print(r.json()["airport"]["name"]) # London Gatwick Airport
JavaScript
const params = new URLSearchParams({ airport_short: "EGKK", api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/airports.php?${params}`).then(r => r.json());
PHP
$url = "https://aviationdb.uk/api/v1/airports.php?" . http_build_query([
    "airport_short" => "EGKK", "api_key" => "YOUR_KEY"
]);
$data = json_decode(file_get_contents($url), true);
200 OKapplication/json
Response
{
  "airport": {
    "ident": "EGKK",
    "iso_country": "GB",
    "gps_code": "EGKK",
    "FIR": "EGTT",
    "name": "London Gatwick Airport"
  }
}
Docs › Airports

Airport Full

GET/api/v1/airports.php?airport_full={icao}&api_key={key}

Returns complete airport metadata alongside all associated runway records with threshold and heading data.

Query Parameters

ParameterRequiredDescription
airport_fullstringRequiredICAO identifier (e.g. EGKK).
api_keystringRequiredYour active API key.

Example Request

cURL
Python
JavaScript
PHP
cURL
curl -X GET "https://aviationdb.uk/api/v1/airports.php?airport_full=EGKK&api_key=YOUR_KEY"
Python
r = requests.get("https://aviationdb.uk/api/v1/airports.php", params={
    "airport_full": "EGKK", "api_key": "YOUR_KEY"
})
JavaScript
const params = new URLSearchParams({ airport_full: "EGKK", api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/airports.php?${params}`).then(r => r.json());
PHP
$url = "https://aviationdb.uk/api/v1/airports.php?" . http_build_query([
    "airport_full" => "EGKK", "api_key" => "YOUR_KEY"
]);
200 OKapplication/json
Response
{
  "airport": {
    "ident": "EGKK", "type_left": "large_airport",
    "elevation_ft": 202, "iso_country": "GB",
    "iso_region": "GB-ENG", "municipality": "London",
    "gps_code": "EGKK", "local_code": null,
    "coordinates": "51.148744, -0.185739",
    "FIR": "EGTT", "name": "London Gatwick Airport"
  },
  "runways": [
    {
      "id": 239573, "airport_ident": "EGKK",
      "length_ft": 10883, "width_ft": 148,
      "surface": "ASP", "lighted": 1, "closed": 0,
      "le_ident": "08R", "le_heading_degT": 78,
      "he_ident": "26L", "he_heading_degT": 258
    }
  ]
}
Docs › Aircraft

Aircraft Short

GET/api/v1/aircraft.php?aircraft_short={reg_or_icao24}&api_key={key}

Returns a compact aircraft identity record. Accepts either a tail number or a 6-character ICAO24 hex address.

Most-recent recordReturns the most recent record from the history table. If an aircraft has changed operators the current name will be reflected.
Aircraft may not yet be in the databaseRecords are created the first time a registration or ICAO24 address is observed. A 404 means it hasn't been seen yet.

Query Parameters

ParameterRequiredDescription
aircraft_shortstringRequiredRegistration (e.g. G-EZUC) or 6-char ICAO24 hex (e.g. 40643D).
api_keystringRequiredYour active API key.

Example Request

cURL
Python
JavaScript
PHP
cURL
curl -X GET "https://aviationdb.uk/api/v1/aircraft.php?aircraft_short=G-EZUC&api_key=YOUR_KEY"
Python
r = requests.get("https://aviationdb.uk/api/v1/aircraft.php", params={
    "aircraft_short": "G-EZUC", "api_key": "YOUR_KEY"
})
JavaScript
const params = new URLSearchParams({ aircraft_short: "G-EZUC", api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/aircraft.php?${params}`).then(r => r.json());
PHP
$url = "https://aviationdb.uk/api/v1/aircraft.php?" . http_build_query([
    "aircraft_short" => "G-EZUC", "api_key" => "YOUR_KEY"
]);
200 OKapplication/json
Response
{
  "aircraft": {
    "registration": "G-EZUC",
    "icao24": "40643D",
    "aircraft_type": "A320",
    "aircraft_model": "A320-200",
    "operator": "easyJet"
  }
}
Docs › Aircraft

Aircraft Full

GET/api/v1/aircraft.php?aircraft_full={reg_or_icao24}&api_key={key}

Returns complete aircraft details including serial, manufacturer, engine count, and optional callsign history.

Optional callsign historyAdd &callsigns=1 to include a known_routes array. Use &limit=N to cap results (default 20, max 100).

Query Parameters

ParameterRequiredDescription
aircraft_fullstringRequiredRegistration or 6-char ICAO24 hex address.
callsignsintegerOptionalSet to 1 to include known_routes.
limitintegerOptionalMax callsign records when callsigns=1. Default 20, max 100.
api_keystringRequiredYour active API key.

Example Request

cURL
Python
JavaScript
PHP
cURL
curl -X GET "https://aviationdb.uk/api/v1/aircraft.php?aircraft_full=G-EZUC&callsigns=1&limit=5&api_key=YOUR_KEY"
Python
r = requests.get("https://aviationdb.uk/api/v1/aircraft.php", params={
    "aircraft_full": "G-EZUC", "callsigns": 1, "limit": 5, "api_key": "YOUR_KEY"
})
JavaScript
const params = new URLSearchParams({ aircraft_full: "G-EZUC", callsigns: 1, limit: 5, api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/aircraft.php?${params}`).then(r => r.json());
PHP
$url = "https://aviationdb.uk/api/v1/aircraft.php?" . http_build_query([
    "aircraft_full" => "G-EZUC", "callsigns" => 1, "limit" => 5, "api_key" => "YOUR_KEY"
]);
200 OKapplication/json: without callsigns
Response
{
  "aircraft": {
    "registration": "G-EZUC", "icao24": "40643D",
    "aircraft_type": "A320", "aircraft_model": "A320-200",
    "operator": "easyJet", "serial": "2200",
    "manufacturer": "Airbus", "engines": "2",
    "modes_country": "United Kingdom"
  }
}
200 OKapplication/json: with callsigns=1
Response
{
  "aircraft": { /* ...same as above... */ },
  "known_routes": [
    { "callsign": "EZY12AB", "route_from": "EGKK", "route_to": "LEMD" }
  ]
}
Docs › Callsigns

Callsigns by Operator

GET/api/v1/callsigns.php?callsign_operator={operator}&api_key={key}

Returns all known callsigns for a given operator name, ordered by most recent activity.

Case-sensitive operator namesNames are matched exactly as stored (e.g. easyJet, not Easyjet). Use Operator Search to confirm the exact stored name.

Query Parameters

ParameterRequiredDescription
callsign_operatorstringRequiredExact operator name (e.g. Ryanair, easyJet). Min 2 characters.
limitintegerOptionalMax records. Default 10, max 100.
api_keystringRequiredYour active API key.

Example Request

cURL
Python
JavaScript
PHP
cURL
curl -X GET "https://aviationdb.uk/api/v1/callsigns.php?callsign_operator=Ryanair&limit=2&api_key=YOUR_KEY"
Python
r = requests.get("https://aviationdb.uk/api/v1/callsigns.php", params={
    "callsign_operator": "Ryanair", "limit": 2, "api_key": "YOUR_KEY"
})
JavaScript
const params = new URLSearchParams({ callsign_operator: "Ryanair", limit: 2, api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/callsigns.php?${params}`).then(r => r.json());
PHP
$url = "https://aviationdb.uk/api/v1/callsigns.php?" . http_build_query([
    "callsign_operator" => "Ryanair", "limit" => 2, "api_key" => "YOUR_KEY"
]);
200 OKapplication/json
Response
{
  "count": 2,
  "results": [
    {
      "callsign": "RYR13YB", "operator": "Ryanair",
      "route_from": "LEMD", "route_to": "EGSS",
      "callsigns_total": 1, "last_seen_time": "2026-06-07 19:18:43"
    }
  ]
}
Docs › Personal API

Active Flights

GET/api/v1/me/active

Returns aircraft currently tracked in your reception area. Data is scoped exclusively to the API key owner and requires an active tracking subscription.

Subscriber only. Free or verified-only accounts receive 403. Authenticate with Authorization: Bearer YOUR_KEY or ?api_key=.

Query Parameters

ParameterRequiredDescription
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
Python
JavaScript
cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/active"
Python
r = requests.get("https://aviationdb.uk/api/v1/me/active", headers={"Authorization": "Bearer YOUR_KEY"})
JavaScript
const data = await fetch("https://aviationdb.uk/api/v1/me/active", {
  headers: { Authorization: "Bearer YOUR_KEY" }
}).then(r => r.json());
200 OKapplication/json
Response
{
  "active_now": 2,
  "flights": [
    {
      "callsign": "EZY12AB", "registration": "G-EZUC",
      "route_from": "EGKK", "route_to": "LEMD",
      "seen_at": "2026-06-07 22:14:09"
    }
  ]
}
Docs › Personal API

Sightings History

GET/api/v1/me/sightings

Paginated personal sighting log, clamped to your plan history window. Optional filters for registration, callsign, and since timestamp.

Query Parameters

ParameterRequiredDescription
limitintegerOptionalMax records. Default 50, max 100.
offsetintegerOptionalPagination offset. Default 0.
registrationstringOptionalFilter by tail number (e.g. G-EZUC).
callsignstringOptionalFilter by callsign.
sincestringOptionalOnly sightings on or after this timestamp (ISO 8601 or YYYY-MM-DD HH:MM:SS).
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
Python
cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/sightings?registration=G-EZUC&limit=20&offset=0"
Python
r = requests.get("https://aviationdb.uk/api/v1/me/sightings",
    headers={"Authorization": "Bearer YOUR_KEY"},
    params={"registration": "G-EZUC", "limit": 20})
200 OKapplication/json
Response
{
  "history_days": 30, "total": 142, "limit": 20, "offset": 0,
  "sightings": [
    {
      "callsign": "EZY12AB", "registration": "G-EZUC",
      "route_from": "EGKK", "route_to": "LEMD",
      "seen_at": "2026-06-07 22:14:09"
    }
  ]
}
Docs › Personal API

Tracking Summary

GET/api/v1/me/summary

Aggregate counts for your account within the current plan window: total sightings, unique registrations, and active aircraft now.

Example Request

cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/summary"
200 OKapplication/json
Response
{
  "plan": { "name": "30 days of tracking history", "history_days": 30 },
  "total_sightings": 142,
  "unique_registrations": 87,
  "active_now": 1
}
Docs › Personal API

Aircraft Lookup NEW

GET/api/v1/me/aircraft?registration={reg}

Look up a registration in the global aircraft directory and return your personal sightings, route history, and stats for that tail number within your plan window.

Query Parameters

ParameterRequiredDescription
registrationstringRequiredAircraft tail number (e.g. G-EZUC).
limitintegerOptionalMax recent sightings returned. Default 20, max 100.
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
Python
cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft?registration=G-EZUC&limit=10"
Python
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft",
    headers={"Authorization": "Bearer YOUR_KEY"},
    params={"registration": "G-EZUC", "limit": 10})
200 OKapplication/json
Response
{
  "registration": "G-EZUC", "history_days": 30,
  "aircraft": {
    "registration": "G-EZUC", "icao24": "40643D",
    "aircraft_type": "A320", "operator": "easyJet"
  },
  "your_stats": {
    "total_sightings": 12, "unique_callsigns": 4,
    "first_seen": "2026-05-01 08:12:00", "last_seen": "2026-06-07 22:14:09"
  },
  "routes": [{ "route_from": "EGKK", "route_to": "LEMD", "times_seen": 5 }],
  "sightings": [ ... ]
}
Docs › Personal API

Callsign Lookup NEW

GET/api/v1/me/callsign?callsign={callsign}

Returns global route metadata for a callsign plus your personal sightings, aircraft operated, and stats within your plan window.

Query Parameters

ParameterRequiredDescription
callsignstringRequiredFlight callsign (e.g. EZY12AB).
limitintegerOptionalMax recent sightings. Default 20, max 100.
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/callsign?callsign=EZY12AB"
200 OKapplication/json
Response
{
  "callsign": "EZY12AB",
  "route": { "callsign": "EZY12AB", "route_from": "EGKK", "route_to": "LEMD", "operator": "easyJet" },
  "your_stats": { "total_sightings": 8, "unique_aircraft": 2 },
  "aircraft": [{ "registration": "G-EZUC", "times_seen": 5 }],
  "sightings": [ ... ]
}
Docs › Personal API

Route History NEW

GET/api/v1/me/route?route_search={ICAO-ICAO}

Returns your personal sightings on a specific route pair, including distinct callsigns and aircraft you have logged on that leg.

Route formatSupply route_search=EGKK-LEMD or separate route_from and route_to ICAO codes.

Query Parameters

ParameterRequiredDescription
route_searchstringRequired*Route pair in ICAO-ICAO format (e.g. EGKK-LEMD). *Or use route_from + route_to.
route_fromstringOptionalDeparture ICAO when not using route_search.
route_tostringOptionalArrival ICAO when not using route_search.
limitintegerOptionalMax recent sightings. Default 20, max 100.
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
Python
cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/route?route_search=EGKK-LEMD&limit=10"
Python
r = requests.get("https://aviationdb.uk/api/v1/me/route",
    headers={"Authorization": "Bearer YOUR_KEY"},
    params={"route_search": "EGKK-LEMD"})
200 OKapplication/json
Response
{
  "route": { "from": "EGKK", "to": "LEMD" },
  "your_stats": { "total_sightings": 15, "unique_aircraft": 6, "unique_callsigns": 8 },
  "callsigns": [{ "callsign": "EZY12AB", "times_seen": 4 }],
  "aircraft": [{ "registration": "G-EZUC", "times_seen": 3 }],
  "sightings": [ ... ]
}
Docs › Aircraft tracker

Registration flight list

GET/api/v1/me/aircraft_tracker/flights

Paginated list of flights recorded by the Aircraft tracker (registration follow). Not the same as /me/sightings, which is your 5-mile overhead log. Flights stay in your account until you delete them. Any verified account with an API key can read this history; starting new follows still requires an Active plan on the website.

Personal API vs Aircraft trackerOverhead endpoints (/me/sightings, /me/active, etc.) use your tracking location and plan history window. Aircraft tracker endpoints use worldwide registration follows you chose on /aircraft_tracker.

Query Parameters

ParameterRequiredDescription
limitintegerOptionalPage size. Default 50, max 100.
offsetintegerOptionalPagination offset (default 0).
include_pointsflagOptionalSet to 1 to embed ADS-B track points on each flight (large payloads).
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
Python
cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft_tracker/flights?limit=20&offset=0"
Python
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft_tracker/flights",
    headers={"Authorization": "Bearer YOUR_KEY"},
    params={"limit": 20, "offset": 0})
200 OKapplication/json
Response
{
  "total": 14, "limit": 20, "offset": 0,
  "flights": [
    {
      "id": 482, "tracking_id": 91,
      "registration": "G-STBC", "callsign": "BAW117",
      "started_at": "2026-09-16 08:12:04", "ended_at": "2026-09-16 18:44:51",
      "is_live": false, "point_count": 842,
      "max_altitude_ft": 38000, "max_speed_kts": 452.0,
      "route_from": "EGLL", "route_to": "KJFK"
    }
  ]
}
Docs › Aircraft tracker

Single registration flight

GET/api/v1/me/aircraft_tracker/flight?flight_id={id}

One Aircraft tracker flight by numeric flight_id (from the list endpoint or the website). Includes route metadata and, by default, the ADS-B track point array for mapping or analysis.

Query Parameters

ParameterRequiredDescription
flight_idintegerRequiredFlight row ID from /me/aircraft_tracker/flights.
include_pointsflagOptionalSet to 0 to omit track_points (metadata only). Default includes points.
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
Python
cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft_tracker/flight?flight_id=482&include_points=1"
Python
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft_tracker/flight",
    headers={"Authorization": "Bearer YOUR_KEY"},
    params={"flight_id": 482, "include_points": 1})
200 OKapplication/json
Response
{
  "flight": {
    "id": 482, "registration": "G-STBC", "callsign": "BAW117",
    "is_live": false, "route_from": "EGLL", "route_to": "KJFK",
    "track_points": [
      { "lat": 51.47, "lon": -0.46, "alt": 1200, "ts": "2026-09-16T08:12:04Z" },
      { "lat": 51.52, "lon": -1.02, "alt": 18000, "ts": "2026-09-16T08:24:11Z" }
    ]
  }
}
Docs › Aircraft tracker

Live registration follows

GET/api/v1/me/aircraft_tracker/live

Latest ADS-B snapshot for each registration you are actively following on the Aircraft tracker. Requires an Active plan (same slot rules as the website). Not the same as /me/active, which lists aircraft over your home location.

Query Parameters

ParameterRequiredDescription
api_keystringOptionalYour active API key (if not using Bearer header).

Example Request

cURL
Python
cURL
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft_tracker/live"
Python
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft_tracker/live",
    headers={"Authorization": "Bearer YOUR_KEY"})
200 OKapplication/json
Response
{
  "can_track": true,
  "trackings": [
    {
      "tracking_id": 91, "registration": "G-STBC",
      "is_live": true, "in_flight": true, "on_ground": false,
      "lat": 52.41, "lon": -1.73,
      "altitude_ft": 35000, "speed_kts": 448, "heading": 286,
      "callsign": "BAW117", "last_seen_at": "2026-09-16 14:02:33",
      "open_flight_id": 501
    }
  ]
}
No Active planIf can_track is false, trackings is empty and a message explains that an Active plan is required. History endpoints still work for verified accounts.
Docs › Reference

Response Objects

Field-level reference for every object returned by the API.

Airport (Short)

{
"ident"string- ICAO identifier (e.g. EGKK)
"iso_country"string- 2-letter ISO country code
"gps_code"string- GPS code (usually matches ident)
"FIR"string- Flight Information Region code
"name"string- Full airport name
}

Airport (Full): additional fields

{
"type_left"string- Classification (e.g. large_airport, small_airport)
"elevation_ft"integer- Field elevation in feet
"iso_region"string- Region code (e.g. GB-ENG)
"municipality"string- Associated city or municipality
"local_code"string | null- Local aviation code if applicable
"coordinates"string- Decimal lat/lon (e.g. "51.148744, -0.185739")
"runways"array- Array of runway objects (see below)
}

Runway

{
"length_ft"integer
"width_ft"integer
"surface"string- Surface material code (e.g. ASP, CON, GRS)
"lighted"integer- 1 if lighted
"closed"integer- 1 if closed
"le_ident"string- Low-end threshold designator (e.g. 08R)
"le_heading_degT"float- Low-end true heading
"he_ident"string- High-end threshold designator (e.g. 26L)
"he_heading_degT"float
}

Aircraft (Short)

{
"registration"string- Aircraft tail number (e.g. G-EZUC)
"icao24"string- 24-bit Mode-S transponder address (e.g. 40643D)
"aircraft_type"string- ICAO type code (e.g. A320)
"aircraft_model"string- Common model name (e.g. A320-200)
"operator"string- Current operator name
}

Aircraft (Full): additional fields

{
"serial"string | null- Manufacturer serial number (MSN)
"manufacturer"string | null
"engines"string | null- Number of engines
"modes_country"string | null- Country of Mode-S registration
"known_routes"array | undefined- Present only when callsigns=1
}

Callsign (Master)

{
"callsign"string
"operator"string
"route_from"string- Most common departure airport ICAO
"route_to"string- Most common arrival airport ICAO
"callsigns_total"integer- Times this callsign was logged
"last_seen_time"string- UTC timestamp of most recent sighting
}

Operator

{
"operator"string
"total_callsigns"integer- Total distinct callsigns observed
"total_aircraft"integer- Total distinct aircraft observed
"last_seen_time"string- UTC timestamp of most recent activity
}