# WiFi Channel API
> Wi-Fi channel maths as an API, computed locally and deterministically from the standard channel-numbering formulas. The channel endpoint returns the centre frequency of a Wi-Fi channel on the 2.4, 5 or 6 GHz band — the band is auto-detected from the channel number or can be given explicitly (2.4 GHz: 2407 + 5·channel, with channel 14 at 2484; 5 GHz: 5000 + 5·channel; 6 GHz: 5950 + 5·channel). The frequency endpoint does the reverse, returning the nearest channel and band for a centre frequency in MHz or GHz. The overlap endpoint reports whether two channels overlap at a chosen channel width (two channels overlap when their centre-frequency separation is less than the width) and gives the recommended non-overlapping set — the classic 1, 6 and 11 on 2.4 GHz at 20 MHz. Everything is computed locally and deterministically, so it is instant and private. Channel availability is regulated and varies by country. Ideal for networking and Wi-Fi tools, site-survey and IoT apps, and router and access-point configuration software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is Wi-Fi channel mapping; for general wavelength/frequency and photon energy use a wavelength API.

## 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/wifichannel-api/..."
```

## Pricing
- **Free** (Free) — 12,035 calls/Mo, 2 req/s
- **Starter** ($14/Mo) — 21,650 calls/Mo, 8 req/s
- **Pro** ($33/Mo) — 266,500 calls/Mo, 20 req/s
- **Mega** ($71/Mo) — 1,375,000 calls/Mo, 50 req/s

## Endpoints

### WiFi

#### `GET /v1/channel` — Channel → centre frequency

**Parameters:**
- `channel` (query, required, string) — Channel number Example: `6`
- `band` (query, optional, string) — 2.4|5|6 (auto if omitted)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/wifichannel-api/v1/channel?channel=6"
```

**Response:**
```json
{
    "data": {
        "note": "Channel→frequency. 2.4 GHz: 2407 + 5·ch (ch14 = 2484). 5 GHz: 5000 + 5·ch. 6 GHz: 5950 + 5·ch.",
        "input": {
            "band": "2.4",
            "channel": 6
        },
        "band_ghz": "2.4",
        "center_frequency_ghz": 2.437,
        "center_frequency_mhz": 2437
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:15.106Z",
        "request_id": "5af14703-40f5-4a21-8f6d-63e3636ceb8f"
    },
    "status": "ok",
    "message": "Channel to frequency",
    "success": true
}
```

#### `GET /v1/frequency` — Frequency → nearest channel

**Parameters:**
- `frequency` (query, required, string) — Centre frequency (MHz or GHz) Example: `2437`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/wifichannel-api/v1/frequency?frequency=2437"
```

**Response:**
```json
{
    "data": {
        "note": "Nearest Wi-Fi channel for a centre frequency (accepts MHz or GHz).",
        "input": {
            "frequency_mhz": 2437
        },
        "channel": 6,
        "band_ghz": "2.4",
        "center_frequency_mhz": 2437
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:15.191Z",
        "request_id": "9e7b0690-0b60-494b-a939-11d172594021"
    },
    "status": "ok",
    "message": "Frequency to channel",
    "success": true
}
```

#### `GET /v1/overlap` — Channel overlap & non-overlapping set

**Parameters:**
- `channel_a` (query, required, string) — First channel Example: `1`
- `channel_b` (query, required, string) — Second channel Example: `6`
- `band` (query, optional, string) — 2.4|5|6 (default 2.4) Example: `2.4`
- `width` (query, optional, string) — Channel width MHz (default 20) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/wifichannel-api/v1/overlap?channel_a=1&channel_b=6&band=2.4&width=20"
```

**Response:**
```json
{
    "data": {
        "note": "Two channels overlap if their centre-frequency separation is less than the channel width. 2.4 GHz 20 MHz non-overlapping set is 1/6/11.",
        "input": {
            "band": "2.4",
            "channel_a": 1,
            "channel_b": 6,
            "channel_width_mhz": 20
        },
        "overlaps": false,
        "separation_mhz": 25,
        "frequency_a_mhz": 2412,
        "frequency_b_mhz": 2437,
        "recommended_non_overlapping": [
            1,
            6,
            11
        ]
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:15.282Z",
        "request_id": "2e827e63-4251-4a7e-97bb-0e7d6f7aa19b"
    },
    "status": "ok",
    "message": "Channel overlap",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Spec

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

**Response:**
```json
{
    "data": {
        "note": "Standard channel-numbering formulas. Regulatory channel availability varies by country.",
        "bands": [
            "2.4",
            "5",
            "6"
        ],
        "service": "wifichannel",
        "endpoints": {
            "/v1/channel": "Centre frequency for a Wi-Fi channel (band auto-detected or specified).",
            "/v1/overlap": "Whether two channels overlap at a given width, plus the non-overlapping set.",
            "/v1/frequency": "Nearest Wi-Fi channel and band for a centre frequency."
        },
        "description": "Wi-Fi channel maths: channel/frequency conversion for 2.4/5/6 GHz, channel overlap, and non-overlapping channels."
    },
    "meta": {
        "timestamp": "2026-06-04T01:59:15.372Z",
        "request_id": "91d12206-cdae-4fc8-a026-e809e652556c"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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