# Crypto Donchian Breakout Screener API
> Which coins are breaking out of their recent trading range, computed live from Binance candles — no key, nothing stored. The Donchian channel is the highest high and lowest low of the last N periods; a price above the upper band is a classic trend-following breakout (the original turtle-trading signal) and a price below the lower band a breakdown. The breakout endpoint returns, for one pair, the N-day Donchian upper and lower bands, the current price, where it sits in the channel (0% at the low, 100% at the high), the distance to each band and a status — new_high, new_low, near_high, near_low or inside. The screener endpoint scans a basket of coins and surfaces the ones currently breaking to new highs (momentum-long candidates) and to new lows (breakdowns), ranked by how decisively they have cleared the band. The symbols endpoint lists tradable pairs. This is the range-breakout / Donchian-screener cut for crypto — distinct from the generic indicator calculators (which you feed your own data), the volume-profile, the seasonality and the order-flow APIs in the catalogue. Bands use the prior completed candles, so a breakout is a genuine move beyond the established range. Pairs are Binance symbols (BTCUSDT) or a coin=BTC&quote=USDT form; lookback is 5-200 days.

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

## Pricing
- **Free** (Free) — 400 calls/Mo, 2 req/s
- **Starter** ($11/Mo) — 12,200 calls/Mo, 6 req/s
- **Pro** ($35/Mo) — 71,000 calls/Mo, 16 req/s
- **Business** ($80/Mo) — 365,000 calls/Mo, 40 req/s

## Endpoints

### Breakout

#### `GET /v1/breakout` — One pair's Donchian channel & breakout status

**Parameters:**
- `symbol` (query, required, string) — Binance pair Example: `BTCUSDT`
- `lookback` (query, optional, string) — Channel length in days (5-200, default 20) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptobreakout-api/v1/breakout?symbol=BTCUSDT&lookback=20"
```

**Response:**
```json
{
    "data": {
        "coin": "BTC",
        "note": "Donchian bands are the highest high / lowest low of the prior 20 completed daily candles. status=new_high means price has cleared the upper band (breakout); new_low is a breakdown. channel_position_pct: 0 at the low, 100 at the high.",
        "price": 63717.89,
        "source": "Binance",
        "status": "inside",
        "symbol": "BTCUSDT",
        "lookback_days": 20,
        "donchian_lower": 59130.91,
        "donchian_upper": 78080,
        "channel_position_pct": 24.2,
        "distance_to_lower_pct": 7.76,
        "distance_to_upper_pct": -18.39
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:45.879Z",
        "request_id": "ab8cd167-a00e-4250-a40f-da62b5b2ac4c"
    },
    "status": "ok",
    "message": "Breakout retrieved successfully",
    "success": true
}
```

#### `GET /v1/screener` — Scan a basket for breakouts & breakdowns

**Parameters:**
- `coins` (query, optional, string) — Comma list of coins (default liquid majors) Example: `BTC,ETH,SOL,DOGE,XRP`
- `lookback` (query, optional, string) — Channel length in days (5-200, default 20) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptobreakout-api/v1/screener?coins=BTC%2CETH%2CSOL%2CDOGE%2CXRP&lookback=20"
```

**Response:**
```json
{
    "data": {
        "note": "Coins currently breaking to a new 20-day high (breakouts, momentum-long) or new low (breakdowns). Ranked by how far they have cleared the band. Default basket is the liquid majors; pass coins=BTC,ETH,... to customise.",
        "source": "Binance",
        "scanned": 5,
        "breakouts": [],
        "breakdowns": [],
        "lookback_days": 20,
        "breakouts_count": 0,
        "breakdowns_count": 0
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:46.682Z",
        "request_id": "43e9a319-a376-4afd-bc7c-42ef14cab9bc"
    },
    "status": "ok",
    "message": "Screener retrieved successfully",
    "success": true
}
```

#### `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/cryptobreakout-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/cryptobreakout-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "symbol is a Binance pair (BTCUSDT) or coin=BTC&quote=USDT. lookback is 5-200 days (default 20). screener takes coins=BTC,ETH,... (default liquid majors, max 25). Bands use the prior completed candles. 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": "cryptobreakout-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/symbols": "Tradable Binance pairs, optionally filtered by quote (quote=USDT).",
            "GET /v1/breakout": "One pair's Donchian channel, position and breakout status (symbol=BTCUSDT, lookback=20).",
            "GET /v1/screener": "Scan a basket for new-high breakouts and new-low breakdowns (coins=BTC,ETH,SOL, lookback=20)."
        },
        "description": "Crypto Donchian breakout screener — which coins are breaking out of their recent range, computed live from Binance candles (no key, nothing stored). breakout returns one pair's N-day Donchian upper/lower bands, the current price, its position in the channel, the distance to each band and a status (new_high, new_low, near_high, near_low, inside). screener scans a basket and surfaces the coins breaking to new highs (momentum-long) and new lows (breakdowns), ranked. symbols lists tradable pairs. The range-breakout / Donchian-screener cut for crypto — distinct from the generic indicator calculators, the 
…(truncated, see openapi.json for full schema)
```


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