# Crypto Market Breadth API
> The health of the whole crypto market under the surface, computed live from Binance candles — no key, nothing stored. A market-cap index can be dragged up by two or three megacaps while everything else falls; breadth tells you how broad a move really is — how many coins are actually participating. The breadth endpoint scans a basket of liquid coins and returns the share trading above their 20-, 50- and 200-day moving averages (the classic participation gauges), the advancers versus decliners on the day with the advance/decline ratio, the average and median 24-hour change and a regime label (broad strength, mixed or broad weakness). The components endpoint returns the per-coin table behind it — each coin's price, 24-hour change and whether it is above each moving average — so you can see exactly which names are carrying the market. The symbols endpoint lists tradable pairs. This is the market-internals / breadth cut for crypto — distinct from the single-coin momentum, the movers/gainers, the fear-and-greed sentiment index and the price APIs in the catalogue. It answers "is this rally broad or narrow?", not "how is one coin doing?". The default basket is about 30 liquid majors; pass coins=BTC,ETH,... to customise (3-50 coins).

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

## Pricing
- **Free** (Free) — 400 calls/Mo, 2 req/s
- **Starter** ($10/Mo) — 12,600 calls/Mo, 6 req/s
- **Pro** ($33/Mo) — 73,000 calls/Mo, 16 req/s
- **Business** ($77/Mo) — 375,000 calls/Mo, 40 req/s

## Endpoints

### Breadth

#### `GET /v1/breadth` — Market-wide breadth, advance/decline & regime

**Parameters:**
- `coins` (query, optional, string) — Comma list of coins (default ~30 liquid majors) Example: `BTC,ETH,SOL,BNB,XRP`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptobreadth-api/v1/breadth?coins=BTC%2CETH%2CSOL%2CBNB%2CXRP"
```

**Response:**
```json
{
    "data": {
        "note": "Breadth measures how many coins participate in the market's move. pct_above_ma200 is the share trading above their 200-day average — high = a broad bull market, low = a broad bear. advance_decline_ratio above 1 means more coins up than down today. Default basket is ~30 liquid majors; pass coins=BTC,ETH,... to customise.",
        "regime": "broad weakness (most coins in downtrends)",
        "source": "Binance",
        "advancers": 3,
        "decliners": 2,
        "coins_scanned": 5,
        "pct_above_ma20": 0,
        "pct_above_ma50": 0,
        "pct_above_ma200": 0,
        "avg_change_24h_pct": 0.05,
        "advance_decline_ratio": 1.5,
        "median_change_24h_pct": 0.1
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:36.974Z",
        "request_id": "cc3ddccd-5d64-428f-b975-d91c22b30dd0"
    },
    "status": "ok",
    "message": "Breadth retrieved successfully",
    "success": true
}
```

#### `GET /v1/components` — Per-coin breadth table

**Parameters:**
- `coins` (query, optional, string) — Comma list of coins (default ~30 liquid majors) Example: `BTC,ETH,SOL,BNB,XRP`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptobreadth-api/v1/components?coins=BTC%2CETH%2CSOL%2CBNB%2CXRP"
```

**Response:**
```json
{
    "data": {
        "note": "Per-coin breadth table: price, 24h change and whether each coin is above its 20/50/200-day moving average. Sorted by 24h change.",
        "source": "Binance",
        "components": [
            {
                "coin": "ETH",
                "price": 1676.31,
                "above_ma20": false,
                "above_ma50": false,
                "above_ma200": false,
                "change_24h_pct": 0.17
            },
            {
                "coin": "BTC",
                "price": 63724.62,
                "above_ma20": false,
                "above_ma50": false,
                "above_ma200": false,
                "change_24h_pct": 0.16
            },
            {
                "coin": "XRP",
                "price": 1.1439,
                "above_ma20": false,
                "above_ma50": false,
                "above_ma200": false,
                "change_24h_pct": 0.1
            },
            {
                "coin": "BNB",
                "price": 605.45,
                "above_ma20": false,
                "above_ma50": false,
                "above_ma200": false,
                "change_24h_pct": -0.05
            },
            {
                "coin": "SOL",
                "price": 66.85,
                "above_ma20": false,
                "above_ma50": false,
                "above_ma200": false,
                "change_24h_pct": -0.12
            }
        ],
        "coins_scanned": 5
    },
    "meta": {
  
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/symbols` — Tradable Binance pairs

**Parameters:**
- `quote` (query, optional, string) — Filter by quote asset Example: `USDT`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptobreadth-api/v1/symbols?quote=USDT"
```

**Response:**
```json
{
    "data": {
        "count": 435,
        "quote": "USDT",
        "source": "Binance",
        "symbols": [
            "0GUSDT",
            "1000CATUSDT",
            "1000CHEEMSUSDT",
            "1000SATSUSDT",
            "1INCHUSDT",
            "1MBABYDOGEUSDT",
            "2ZUSDT",
            "AAVEUSDT",
            "ACEUSDT",
            "ACHUSDT",
            "ACMUSDT",
            "ACTUSDT",
            "ACXUSDT",
            "ADAUSDT",
            "ADXUSDT",
            "AEURUSDT",
            "AEVOUSDT",
            "AGLDUSDT",
            "AIGENSYNUSDT",
            "AIUSDT",
            "AIXBTUSDT",
            "ALCXUSDT",
            "ALGOUSDT",
            "ALICEUSDT",
            "ALLOUSDT",
            "ALPINEUSDT",
            "ALTUSDT",
            "AMPUSDT",
            "ANIMEUSDT",
            "ANKRUSDT",
            "APEUSDT",
            "API3USDT",
            "APTUSDT",
            "ARBUSDT",
            "ARDRUSDT",
            "ARKMUSDT",
            "ARKUSDT",
            "ARPAUSDT",
            "ARUSDT",
            "ASRUSDT",
            "ASTERUSDT",
            "ASTRUSDT",
            "ATMUSDT",
            "ATOMUSDT",
            "ATUSDT",
            "AUCTIONUSDT",
            "AUDIOUSDT",
            "AUSDT",
            "AVAUSDT",
            "AVAXUSDT",
            "AVNTUSDT",
            "AWEUSDT",
            "AXLUSDT",
            "AXSUSDT",
            "BABYUSDT",
            "BANANAS31USDT",
            "BANANAUSDT",
          
…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "Default basket is ~30 liquid majors; pass coins=BTC,ETH,... (3-50). Moving averages are simple (20/50/200-day). Read fresh per call; only the tradable-symbol list is cached hourly.",
        "source": "Binance public REST (api.binance.com/api/v3/klines, daily, live)",
        "service": "cryptobreadth-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/breadth": "Market-wide breadth: % above MAs, advance/decline, regime (coins=BTC,ETH,SOL optional).",
            "GET /v1/symbols": "Tradable Binance pairs, optionally filtered by quote (quote=USDT).",
            "GET /v1/components": "Per-coin breadth table (price, 24h change, above each MA)."
        },
        "description": "Crypto market breadth — how broad the market's move is under the surface, computed live from Binance candles (no key, nothing stored). breadth scans a basket of liquid coins and returns the share above their 20/50/200-day moving averages, advancers vs decliners, the average/median 24h change and a regime label. components returns the per-coin table behind it. symbols lists tradable pairs. The market-internals / breadth cut for crypto — distinct from single-coin momentum, the movers/gainers, the fear-and-greed sentiment index and the price APIs. It answers whether a rally is broad or narrow.",
        "trading_symbols": 1363,
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:37.504Z
…(truncated, see openapi.json for full schema)
```


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