# Aviation Hub — Airports, Airlines, Routes & Live Flights (`straightforward_hydra/aviation-hub`) Actor

Full aviation database: 85k+ airports, the airline registry, a route mapper with geocoded endpoints & distances, live ADS-B aircraft and live METAR airport weather. Open data, no key.

- **URL**: https://apify.com/straightforward\_hydra/aviation-hub.md
- **Developed by:** [Dev D](https://apify.com/straightforward_hydra) (community)
- **Categories:** Travel, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Aviation Hub — Airports, Airlines, Routes & Live Flights ✈️🌍

**A complete aviation database in one Actor: 85,000+ airports, the world airline registry, a full route mapper with geocoded endpoints and great-circle distances, live aircraft in the sky, and live airport weather. All from public open data — no API key.**

Most aviation APIs are locked behind keys, quotas and paywalls. This Actor fuses the best **keyless open datasets** — OurAirports, OpenFlights, ADS-B and NOAA aviation weather — into one clean, structured feed you can query six ways.

---

### Six modes

| Mode | What you get |
|---|---|
| **airports** | Search/filter **85,000+ airports** — IATA/ICAO codes, coordinates, elevation, country, city, type, scheduled service, and (optionally) full runway lists. |
| **airlines** | The **airline registry** — ~6,000 airlines with IATA/ICAO codes, callsign, country and active status. |
| **routes** | A real **route mapper** — every airline route with **both endpoints geocoded** (lat/lon), **great-circle distance in km**, the operating airlines and aircraft types. Perfect for drawing route maps. |
| **live** | **Live aircraft** in the sky around any airport or coordinate (ADS-B): callsign, registration, type, altitude, speed, heading, position, distance. |
| **weather** | **Live METAR** airport weather: temperature, wind, visibility, ceiling, altimeter and flight category (VFR/MVFR/IFR). |
| **digest** | One **aviation-market summary** row: busiest airports by routes, biggest airlines, airport counts by type and country, most common aircraft. |

### Examples

**Every large airport in a country, with runways**
```json
{ "mode": "airports", "country": "GB", "airportType": "large_airport", "includeRunways": true }
````

**Route mapper — all routes out of Heathrow, longest first**

```json
{ "mode": "routes", "from": "LHR" }
```

Each row carries `source_latitude/longitude` and `destination_latitude/longitude` plus `distance_km`, so you can plot great-circle lines directly.

**Does anyone fly JFK → Dubai, and on what aircraft?**

```json
{ "mode": "routes", "from": "JFK", "to": "DXB" }
```

**Live aircraft within 60 nm of LAX**

```json
{ "mode": "live", "near": "KLAX", "radiusNm": 60 }
```

**Live weather at five hub airports**

```json
{ "mode": "weather", "near": "KJFK,EGLL,OMDB,VCBI,YSSY" }
```

### What each airport row looks like

`ident` · `type` · `name` · `iata` · `icao` · `latitude` · `longitude` · `elevation_ft` · `municipality` · `country_code` · `country` · `region_code` · `scheduled_service` · `wikipedia_link` · `runways[]`

### Run it on a schedule

Airport and airline data update daily; aircraft and weather are real-time. Schedule a run to keep a live airport/route table in a sheet or dashboard, power a flight-map, feed a travel or logistics app, or track live traffic and weather at the airports you care about.

### Data sources & notes

- **Airports / runways / countries** — [OurAirports](https://ourairports.com) open data (public domain), refreshed daily. ~85k airports worldwide.
- **Airlines / routes** — [OpenFlights](https://openflights.org) open database — the standard open airline and route network (community-maintained). It is a broad reference network, not a live schedule; treat routes as "which carriers have flown this city pair" rather than today's timetable.
- **Live aircraft** — [adsb.lol](https://adsb.lol) community ADS-B feed (no key). Coverage depends on volunteer receivers; ground/low-altitude aircraft may not appear.
- **Airport weather** — [aviationweather.gov](https://aviationweather.gov) (NOAA) live METAR (no key).
- All data is public and non-personal (airport facilities, airline registries, aircraft tail numbers, weather). **No API key required for any mode.**

***

#### Keywords

aviation database, airport database, airport API, airline database, IATA code, ICAO code, airport codes, airline codes, flight routes, route map, airline routes, great circle distance, live flights, live aircraft, ADS-B, flight tracker, METAR, airport weather, aviation weather, runway data, OurAirports, OpenFlights, airports by country, busiest airports, flight data, aviation data, no API key.

# Actor input Schema

## `mode` (type: `string`):

airports = search the airport database. airlines = the airline registry. routes = route mapper (geocoded endpoints + distance). live = live aircraft near a point. weather = live METAR airport weather. digest = one aviation-market summary row.

## `search` (type: `string`):

Match by name, city, code or callsign. e.g. "Heathrow", "Emirates", "JFK".

## `country` (type: `string`):

airports: ISO country code (e.g. US, GB, LK, AE). airlines: country name (e.g. "United States").

## `airportType` (type: `string`):

Restrict to one airport type.

## `hasIata` (type: `boolean`):

airports / airlines: only entries that have an IATA code (i.e. commercially coded).

## `scheduledServiceOnly` (type: `boolean`):

Only airports that have scheduled commercial airline service.

## `includeRunways` (type: `boolean`):

Attach the runway list (length, width, surface, lighting) to each airport.

## `activeOnly` (type: `boolean`):

airlines mode: only airlines currently marked active.

## `from` (type: `string`):

Origin airport code (IATA or ICAO), e.g. "LHR" or "EGLL".

## `to` (type: `string`):

Destination airport code (IATA or ICAO), e.g. "JFK".

## `airline` (type: `string`):

Filter routes by airline code (IATA/ICAO) or name, e.g. "BA" or "Emirates".

## `near` (type: `string`):

live: one airport code to centre the aircraft search on (e.g. "KJFK"). weather: one or more codes, comma-separated (e.g. "KJFK,EGLL,OMDB").

## `lat` (type: `string`):

Alternative to `near`: centre latitude for the live aircraft search.

## `lon` (type: `string`):

Alternative to `near`: centre longitude for the live aircraft search.

## `radiusNm` (type: `integer`):

Search radius for live aircraft (1–250 nm).

## `maxResults` (type: `integer`):

Cap on rows returned.

## Actor input object example

```json
{
  "mode": "airports",
  "airportType": "",
  "hasIata": false,
  "scheduledServiceOnly": false,
  "includeRunways": false,
  "activeOnly": false,
  "radiusNm": 100,
  "maxResults": 500
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("straightforward_hydra/aviation-hub").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("straightforward_hydra/aviation-hub").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call straightforward_hydra/aviation-hub --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=straightforward_hydra/aviation-hub",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Aviation Hub — Airports, Airlines, Routes & Live Flights",
        "description": "Full aviation database: 85k+ airports, the airline registry, a route mapper with geocoded endpoints & distances, live ADS-B aircraft and live METAR airport weather. Open data, no key.",
        "version": "0.1",
        "x-build-id": "aE1QZJAKQzc43e2wY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/straightforward_hydra~aviation-hub/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-straightforward_hydra-aviation-hub",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/straightforward_hydra~aviation-hub/runs": {
            "post": {
                "operationId": "runs-sync-straightforward_hydra-aviation-hub",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/straightforward_hydra~aviation-hub/run-sync": {
            "post": {
                "operationId": "run-sync-straightforward_hydra-aviation-hub",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "airports",
                            "airlines",
                            "routes",
                            "live",
                            "weather",
                            "digest"
                        ],
                        "type": "string",
                        "description": "airports = search the airport database. airlines = the airline registry. routes = route mapper (geocoded endpoints + distance). live = live aircraft near a point. weather = live METAR airport weather. digest = one aviation-market summary row.",
                        "default": "airports"
                    },
                    "search": {
                        "title": "Search (airports / airlines)",
                        "type": "string",
                        "description": "Match by name, city, code or callsign. e.g. \"Heathrow\", \"Emirates\", \"JFK\"."
                    },
                    "country": {
                        "title": "Country",
                        "type": "string",
                        "description": "airports: ISO country code (e.g. US, GB, LK, AE). airlines: country name (e.g. \"United States\")."
                    },
                    "airportType": {
                        "title": "Airport type (airports mode)",
                        "enum": [
                            "",
                            "large_airport",
                            "medium_airport",
                            "small_airport",
                            "heliport",
                            "seaplane_base",
                            "balloonport",
                            "closed"
                        ],
                        "type": "string",
                        "description": "Restrict to one airport type.",
                        "default": ""
                    },
                    "hasIata": {
                        "title": "Has IATA code only",
                        "type": "boolean",
                        "description": "airports / airlines: only entries that have an IATA code (i.e. commercially coded).",
                        "default": false
                    },
                    "scheduledServiceOnly": {
                        "title": "Scheduled service only (airports)",
                        "type": "boolean",
                        "description": "Only airports that have scheduled commercial airline service.",
                        "default": false
                    },
                    "includeRunways": {
                        "title": "Include runways (airports)",
                        "type": "boolean",
                        "description": "Attach the runway list (length, width, surface, lighting) to each airport.",
                        "default": false
                    },
                    "activeOnly": {
                        "title": "Active airlines only",
                        "type": "boolean",
                        "description": "airlines mode: only airlines currently marked active.",
                        "default": false
                    },
                    "from": {
                        "title": "From airport (routes mode)",
                        "type": "string",
                        "description": "Origin airport code (IATA or ICAO), e.g. \"LHR\" or \"EGLL\"."
                    },
                    "to": {
                        "title": "To airport (routes mode)",
                        "type": "string",
                        "description": "Destination airport code (IATA or ICAO), e.g. \"JFK\"."
                    },
                    "airline": {
                        "title": "Airline (routes mode)",
                        "type": "string",
                        "description": "Filter routes by airline code (IATA/ICAO) or name, e.g. \"BA\" or \"Emirates\"."
                    },
                    "near": {
                        "title": "Near airport (live / weather)",
                        "type": "string",
                        "description": "live: one airport code to centre the aircraft search on (e.g. \"KJFK\"). weather: one or more codes, comma-separated (e.g. \"KJFK,EGLL,OMDB\")."
                    },
                    "lat": {
                        "title": "Latitude (live mode)",
                        "type": "string",
                        "description": "Alternative to `near`: centre latitude for the live aircraft search."
                    },
                    "lon": {
                        "title": "Longitude (live mode)",
                        "type": "string",
                        "description": "Alternative to `near`: centre longitude for the live aircraft search."
                    },
                    "radiusNm": {
                        "title": "Radius in nautical miles (live mode)",
                        "minimum": 1,
                        "maximum": 250,
                        "type": "integer",
                        "description": "Search radius for live aircraft (1–250 nm).",
                        "default": 100
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 20000,
                        "type": "integer",
                        "description": "Cap on rows returned.",
                        "default": 500
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
