# Airport Frequencies API
> Airport radio communication frequencies as an API — 30,000+ frequencies at 11,000+ airports, from the OurAirports dataset. List every published frequency at an airport by ident (e.g. KJFK → Approach 125.7/127.4/132.4, ATIS, Tower, Ground, Clearance, …), or filter fleet-wide by type or exact frequency (e.g. find every airport using the emergency frequency 121.5). Each record carries the airport, frequency type (TWR, GND, ATIS, APP, CTAF, UNICOM, CNTR, …) with a readable name, the description and the frequency in MHz. Ideal for aviation radio, flight simulators, EFB, scanner and flight-planning apps.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/airportfreq-api/..."
```

## Pricing
- **Free** (Free) — 4,000 calls/Mo, 2 req/s
- **Starter** ($5/Mo) — 45,000 calls/Mo, 8 req/s
- **Pro** ($15/Mo) — 240,000 calls/Mo, 20 req/s
- **Mega** ($39/Mo) — 1,150,000 calls/Mo, 50 req/s

## Endpoints

### Airport Frequencies

#### `GET /v1/airport` — All frequencies at an airport

**Parameters:**
- `ident` (query, required, string) — Airport ident, e.g. KJFK Example: `KJFK`
- `type` (query, optional, string) — Filter by type, e.g. TWR, ATIS, APP

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/airportfreq-api/v1/airport?ident=KJFK"
```

**Response:**
```json
{
    "data": {
        "count": 12,
        "airport": "KJFK",
        "frequencies": [
            {
                "type": "APP",
                "airport": "KJFK",
                "type_name": "Approach",
                "description": "NEW YORK APP (ROBER)",
                "frequency_mhz": 125.7
            },
            {
                "type": "APP",
                "airport": "KJFK",
                "type_name": "Approach",
                "description": "NEW YORK APPROACH (CAMRN)",
                "frequency_mhz": 127.4
            },
            {
                "type": "APP",
                "airport": "KJFK",
                "type_name": "Approach",
                "description": "NEW YORK APPROACH (FINAL)",
                "frequency_mhz": 132.4
            },
            {
                "type": "ATIS",
                "airport": "KJFK",
                "type_name": "ATIS (automatic terminal information)",
                "description": "ATIS",
                "frequency_mhz": 115.1
            },
            {
                "type": "CLD",
                "airport": "KJFK",
                "type_name": "Clearance Delivery",
                "description": "CLNC DEL",
                "frequency_mhz": 135.05
            },
            {
                "type": "DEP",
                "airport": "KJFK",
                "type_name": "Departure",
                "description": "NEW YORK DEP",
                "frequency_mhz": 135.9
            },
            {
 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Filter frequencies by airport / type / frequency

**Parameters:**
- `airport` (query, optional, string) — Restrict to an airport ident
- `type` (query, optional, string) — TWR | GND | ATIS | APP | CTAF | UNICOM | CNTR … Example: `TWR`
- `frequency_mhz` (query, optional, string) — Exact frequency in MHz, e.g. 121.5
- `limit` (query, optional, string) — Results per page (1-100, default 20) Example: `20`
- `offset` (query, optional, string) — Pagination offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/airportfreq-api/v1/search?type=TWR&limit=20&offset=0"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "limit": 20,
        "total": 3432,
        "offset": 0,
        "filters": {
            "type": "TWR",
            "airport": null,
            "frequency_mhz": null
        },
        "results": [
            {
                "type": "TWR",
                "airport": "06FA",
                "type_name": "Tower",
                "description": "TWR",
                "frequency_mhz": 120.4
            },
            {
                "type": "TWR",
                "airport": "22XS",
                "type_name": "Tower",
                "description": "GRAY TWR",
                "frequency_mhz": 120.75
            },
            {
                "type": "TWR",
                "airport": "23XS",
                "type_name": "Tower",
                "description": "GRAY TWR",
                "frequency_mhz": 120.75
            },
            {
                "type": "TWR",
                "airport": "AL-0013",
                "type_name": "Tower",
                "description": "TWR",
                "frequency_mhz": 129.5
            },
            {
                "type": "TWR",
                "airport": "AQ-0013",
                "type_name": "Tower",
                "description": "ICE TWR",
                "frequency_mhz": 126.2
            },
            {
                "type": "TWR",
                "airport": "AR-0743",
                "type_name": "Tower",
                "description": "TWR",
                "frequen
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Totals & type breakdown

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/airportfreq-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Radio communication frequencies in MHz. Common types: TWR=Tower, GND=Ground, ATIS, APP=Approach, CTAF, UNICOM, CNTR=Center.",
        "total": 30279,
        "types": [
            {
                "name": "Tower",
                "type": "TWR",
                "count": 3425
            },
            {
                "name": "Common Traffic Advisory Frequency",
                "type": "CTAF",
                "count": 3207
            },
            {
                "name": "Unicom",
                "type": "UNIC",
                "count": 2939
            },
            {
                "name": "Miscellaneous",
                "type": "MISC",
                "count": 2215
            },
            {
                "name": "Approach",
                "type": "APP",
                "count": 1857
            },
            {
                "name": "Approach/Departure",
                "type": "A/D",
                "count": 1724
            },
            {
                "name": "Ground",
                "type": "GND",
                "count": 1656
            },
            {
                "name": "ATIS (automatic terminal information)",
                "type": "ATIS",
                "count": 1584
            },
            {
                "name": "Radio",
                "type": "RDO",
                "count": 1555
            },
            {
                "name": "Center (ARTCC/ACC)",
                "type": "CNTR",
         
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/airportfreq-api
OpenAPI spec: https://www.oanor.com/api/airportfreq-api/openapi.json
