Getting Started
Access aviation data including global airport directories, aircraft lookups, callsign lookups, and operator intelligence, all through a key-authenticated REST API.
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
Available Endpoints
Data Coverage
The API is powered by a live, autonomously growing dataset.
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.
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
| Situation | Explanation |
|---|---|
| Aircraft not found | Registration or ICAO24 hasn't been seen in the live feed yet. |
| Callsign not found | That specific callsign variant hasn't been logged yet. |
| Incomplete operator fleet | Only aircraft observed operating under that name are listed. |
| Sparse route results | The route hasn't been operated many times since data collection began. |
Authentication
All requests require an active API key via Bearer header or api_key query parameter.
Option 1: Authorization header (recommended)
Option 2: Query parameter
Rate Limits
All API requests are subject to rate limiting based on your current plan.
Daily limits by plan
| Plan | Requests per day |
|---|---|
| Free | 10 |
| 30 days of tracking history | 100 |
| 90 days of tracking history | 1000 |
| 180 days of tracking history | 5000 |
| 365 days of tracking history | 10000 |
Per-minute limits scale with your daily allowance (minimum 10/min).
X-RateLimit-Limit and X-RateLimit-Remaining headers so you can track usage.{
"error": {
"code": 429,
"message": "Rate limit exceeded. Maximum 10 requests per minute."
}
}
Errors
All error responses follow the same shape: an error object with a numeric code and a human-readable message.
{
"error": {
"code": 401,
"message": "Invalid API key."
}
}
404 means the resource hasn't been observed in the live feed yet. See Data Coverage.Status Codes
api_key.Airport Short
Returns a compact airport summary containing just the key identifying fields.
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| airport_shortstring | Required | ICAO identifier (e.g. EGKK). 2–5 alphanumeric characters. |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/airports.php?airport_short=EGKK&api_key=YOUR_KEY"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
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());$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);
{
"airport": {
"ident": "EGKK",
"iso_country": "GB",
"gps_code": "EGKK",
"FIR": "EGTT",
"name": "London Gatwick Airport"
}
}Airport Full
Returns complete airport metadata alongside all associated runway records with threshold and heading data.
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| airport_fullstring | Required | ICAO identifier (e.g. EGKK). |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/airports.php?airport_full=EGKK&api_key=YOUR_KEY"r = requests.get("https://aviationdb.uk/api/v1/airports.php", params={ "airport_full": "EGKK", "api_key": "YOUR_KEY" })
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());$url = "https://aviationdb.uk/api/v1/airports.php?" . http_build_query([ "airport_full" => "EGKK", "api_key" => "YOUR_KEY" ]);
{
"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
}
]
}Aircraft Short
Returns a compact aircraft identity record. Accepts either a tail number or a 6-character ICAO24 hex address.
404 means it hasn't been seen yet.Query Parameters
| Parameter | Required | Description |
|---|---|---|
| aircraft_shortstring | Required | Registration (e.g. G-EZUC) or 6-char ICAO24 hex (e.g. 40643D). |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/aircraft.php?aircraft_short=G-EZUC&api_key=YOUR_KEY"r = requests.get("https://aviationdb.uk/api/v1/aircraft.php", params={ "aircraft_short": "G-EZUC", "api_key": "YOUR_KEY" })
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());$url = "https://aviationdb.uk/api/v1/aircraft.php?" . http_build_query([ "aircraft_short" => "G-EZUC", "api_key" => "YOUR_KEY" ]);
{
"aircraft": {
"registration": "G-EZUC",
"icao24": "40643D",
"aircraft_type": "A320",
"aircraft_model": "A320-200",
"operator": "easyJet"
}
}Aircraft Full
Returns complete aircraft details including serial, manufacturer, engine count, and optional callsign history.
&callsigns=1 to include a known_routes array. Use &limit=N to cap results (default 20, max 100).Query Parameters
| Parameter | Required | Description |
|---|---|---|
| aircraft_fullstring | Required | Registration or 6-char ICAO24 hex address. |
| callsignsinteger | Optional | Set to 1 to include known_routes. |
| limitinteger | Optional | Max callsign records when callsigns=1. Default 20, max 100. |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/aircraft.php?aircraft_full=G-EZUC&callsigns=1&limit=5&api_key=YOUR_KEY"r = requests.get("https://aviationdb.uk/api/v1/aircraft.php", params={ "aircraft_full": "G-EZUC", "callsigns": 1, "limit": 5, "api_key": "YOUR_KEY" })
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());$url = "https://aviationdb.uk/api/v1/aircraft.php?" . http_build_query([ "aircraft_full" => "G-EZUC", "callsigns" => 1, "limit" => 5, "api_key" => "YOUR_KEY" ]);
{
"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"
}
}{
"aircraft": { /* ...same as above... */ },
"known_routes": [
{ "callsign": "EZY12AB", "route_from": "EGKK", "route_to": "LEMD" }
]
}Callsign Search
Retrieve the route for an exact callsign, along with all associated historical flights and unique aircraft that have operated it.
404 means it hasn't been observed yet.Query Parameters
| Parameter | Required | Description |
|---|---|---|
| callsign_searchstring | Required | Exact callsign (e.g. EZY65CG). 2–10 alphanumeric characters. |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/callsigns.php?callsign_search=EZY65CG&api_key=YOUR_KEY"r = requests.get("https://aviationdb.uk/api/v1/callsigns.php", params={ "callsign_search": "EZY65CG", "api_key": "YOUR_KEY" })
const params = new URLSearchParams({ callsign_search: "EZY65CG", api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/callsigns.php?${params}`).then(r => r.json());$url = "https://aviationdb.uk/api/v1/callsigns.php?" . http_build_query([ "callsign_search" => "EZY65CG", "api_key" => "YOUR_KEY" ]);
{
"master": {
"callsign": "EZY65CG", "operator": "easyJet",
"route_from": "LPPT", "route_to": "EGGW",
"callsigns_total": 1, "last_seen_time": "2026-06-08 00:37:46"
},
"flights": [
{
"registration": "G-EZUC", "icao24": "40643D",
"route_from": "LPPT", "route_to": "EGGW",
"aircraft_type": "A320", "operator": "easyJet"
}
],
"aircraft": [
{ "registration": "G-EZUC", "aircraft_type": "A320", "aircraft_model": "A320-200" }
]
}Callsigns by Operator
Returns all known callsigns for a given operator name, ordered by most recent activity.
easyJet, not Easyjet). Use Operator Search to confirm the exact stored name.Query Parameters
| Parameter | Required | Description |
|---|---|---|
| callsign_operatorstring | Required | Exact operator name (e.g. Ryanair, easyJet). Min 2 characters. |
| limitinteger | Optional | Max records. Default 10, max 100. |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/callsigns.php?callsign_operator=Ryanair&limit=2&api_key=YOUR_KEY"r = requests.get("https://aviationdb.uk/api/v1/callsigns.php", params={ "callsign_operator": "Ryanair", "limit": 2, "api_key": "YOUR_KEY" })
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());$url = "https://aviationdb.uk/api/v1/callsigns.php?" . http_build_query([ "callsign_operator" => "Ryanair", "limit" => 2, "api_key" => "YOUR_KEY" ]);
{
"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"
}
]
}Route Search NEW
Returns all distinct callsigns and aircraft that have operated a specific route pair, identified by departure and arrival ICAO codes joined with a hyphen.
EGKK-LEMD (Gatwick → Madrid).Query Parameters
| Parameter | Required | Description |
|---|---|---|
| route_searchstring | Required | Route pair in ICAO-ICAO format (e.g. EGKK-LEMD). |
| limitinteger | Optional | Max records for callsigns and aircraft. Default 20, max 100. |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/callsigns.php?route_search=EGKK-LEMD&limit=5&api_key=YOUR_KEY"r = requests.get("https://aviationdb.uk/api/v1/callsigns.php", params={ "route_search": "EGKK-LEMD", "limit": 5, "api_key": "YOUR_KEY" })
const params = new URLSearchParams({ route_search: "EGKK-LEMD", limit: 5, api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/callsigns.php?${params}`).then(r => r.json());$url = "https://aviationdb.uk/api/v1/callsigns.php?" . http_build_query([ "route_search" => "EGKK-LEMD", "limit" => 5, "api_key" => "YOUR_KEY" ]);
{
"route": { "from": "EGKK", "to": "LEMD" },
"count": 2,
"callsigns": [
{
"callsign": "EZY12AB", "route_from": "EGKK", "route_to": "LEMD",
"operator": "easyJet", "callsigns_total": 4,
"last_seen_time": "2026-06-07 22:14:09"
}
],
"aircraft": [
{
"registration": "G-EZUC", "icao24": "40643D",
"aircraft_type": "A320", "operator": "easyJet"
}
]
}Operator Search
Look up an airline operator by exact name to retrieve a summary, their known callsigns, and their full fleet of known aircraft.
easyJet).Query Parameters
| Parameter | Required | Description |
|---|---|---|
| operator_searchstring | Required | Exact operator name (e.g. easyJet, Ryanair). Min 2 characters. |
| limitinteger | Optional | Max callsigns to return. Default 20, max 100. Does not affect aircraft list. |
| api_keystring | Required | Your active API key. |
Example Request
curl -X GET "https://aviationdb.uk/api/v1/operator.php?operator_search=easyJet&api_key=YOUR_KEY"r = requests.get("https://aviationdb.uk/api/v1/operator.php", params={ "operator_search": "easyJet", "api_key": "YOUR_KEY" })
const params = new URLSearchParams({ operator_search: "easyJet", api_key: "YOUR_KEY" });
const data = await fetch(`https://aviationdb.uk/api/v1/operator.php?${params}`).then(r => r.json());$url = "https://aviationdb.uk/api/v1/operator.php?" . http_build_query([ "operator_search" => "easyJet", "api_key" => "YOUR_KEY" ]);
{
"operator": {
"operator": "easyJet", "total_callsigns": 842,
"total_aircraft": 156, "last_seen_time": "2026-06-08 01:12:04"
},
"callsigns": [
{ "callsign": "EZY65CG", "route_from": "LPPT", "route_to": "EGGW",
"callsigns_total": 1, "last_seen_time": "2026-06-08 00:37:46" }
],
"aircraft": [
{ "registration": "G-EZUC", "icao24": "40643D",
"aircraft_type": "A320", "aircraft_model": "A320-200" }
]
}Active Flights
Returns aircraft currently tracked in your reception area. Data is scoped exclusively to the API key owner and requires an active tracking subscription.
403. Authenticate with Authorization: Bearer YOUR_KEY or ?api_key=.Query Parameters
| Parameter | Required | Description |
|---|---|---|
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/active"
r = requests.get("https://aviationdb.uk/api/v1/me/active", headers={"Authorization": "Bearer YOUR_KEY"})
const data = await fetch("https://aviationdb.uk/api/v1/me/active", { headers: { Authorization: "Bearer YOUR_KEY" } }).then(r => r.json());
{
"active_now": 2,
"flights": [
{
"callsign": "EZY12AB", "registration": "G-EZUC",
"route_from": "EGKK", "route_to": "LEMD",
"seen_at": "2026-06-07 22:14:09"
}
]
}Sightings History
Paginated personal sighting log, clamped to your plan history window. Optional filters for registration, callsign, and since timestamp.
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| limitinteger | Optional | Max records. Default 50, max 100. |
| offsetinteger | Optional | Pagination offset. Default 0. |
| registrationstring | Optional | Filter by tail number (e.g. G-EZUC). |
| callsignstring | Optional | Filter by callsign. |
| sincestring | Optional | Only sightings on or after this timestamp (ISO 8601 or YYYY-MM-DD HH:MM:SS). |
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/sightings?registration=G-EZUC&limit=20&offset=0"
r = requests.get("https://aviationdb.uk/api/v1/me/sightings", headers={"Authorization": "Bearer YOUR_KEY"}, params={"registration": "G-EZUC", "limit": 20})
{
"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"
}
]
}Tracking Summary
Aggregate counts for your account within the current plan window: total sightings, unique registrations, and active aircraft now.
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/summary"
{
"plan": { "name": "30 days of tracking history", "history_days": 30 },
"total_sightings": 142,
"unique_registrations": 87,
"active_now": 1
}Aircraft Lookup NEW
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
| Parameter | Required | Description |
|---|---|---|
| registrationstring | Required | Aircraft tail number (e.g. G-EZUC). |
| limitinteger | Optional | Max recent sightings returned. Default 20, max 100. |
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft?registration=G-EZUC&limit=10"
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft", headers={"Authorization": "Bearer YOUR_KEY"}, params={"registration": "G-EZUC", "limit": 10})
{
"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": [ ... ]
}Callsign Lookup NEW
Returns global route metadata for a callsign plus your personal sightings, aircraft operated, and stats within your plan window.
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| callsignstring | Required | Flight callsign (e.g. EZY12AB). |
| limitinteger | Optional | Max recent sightings. Default 20, max 100. |
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/callsign?callsign=EZY12AB"
{
"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": [ ... ]
}Route History NEW
Returns your personal sightings on a specific route pair, including distinct callsigns and aircraft you have logged on that leg.
route_search=EGKK-LEMD or separate route_from and route_to ICAO codes.Query Parameters
| Parameter | Required | Description |
|---|---|---|
| route_searchstring | Required* | Route pair in ICAO-ICAO format (e.g. EGKK-LEMD). *Or use route_from + route_to. |
| route_fromstring | Optional | Departure ICAO when not using route_search. |
| route_tostring | Optional | Arrival ICAO when not using route_search. |
| limitinteger | Optional | Max recent sightings. Default 20, max 100. |
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/route?route_search=EGKK-LEMD&limit=10"
r = requests.get("https://aviationdb.uk/api/v1/me/route", headers={"Authorization": "Bearer YOUR_KEY"}, params={"route_search": "EGKK-LEMD"})
{
"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": [ ... ]
}Registration flight list
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.
/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
| Parameter | Required | Description |
|---|---|---|
| limitinteger | Optional | Page size. Default 50, max 100. |
| offsetinteger | Optional | Pagination offset (default 0). |
| include_pointsflag | Optional | Set to 1 to embed ADS-B track points on each flight (large payloads). |
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft_tracker/flights?limit=20&offset=0"
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft_tracker/flights", headers={"Authorization": "Bearer YOUR_KEY"}, params={"limit": 20, "offset": 0})
{
"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"
}
]
}Single registration flight
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
| Parameter | Required | Description |
|---|---|---|
| flight_idinteger | Required | Flight row ID from /me/aircraft_tracker/flights. |
| include_pointsflag | Optional | Set to 0 to omit track_points (metadata only). Default includes points. |
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft_tracker/flight?flight_id=482&include_points=1"
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft_tracker/flight", headers={"Authorization": "Bearer YOUR_KEY"}, params={"flight_id": 482, "include_points": 1})
{
"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" }
]
}
}Live registration follows
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
| Parameter | Required | Description |
|---|---|---|
| api_keystring | Optional | Your active API key (if not using Bearer header). |
Example Request
curl -H "Authorization: Bearer YOUR_KEY" "https://aviationdb.uk/api/v1/me/aircraft_tracker/live"
r = requests.get("https://aviationdb.uk/api/v1/me/aircraft_tracker/live", headers={"Authorization": "Bearer YOUR_KEY"})
{
"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
}
]
}can_track is false, trackings is empty and a message explains that an Active plan is required. History endpoints still work for verified accounts.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
}