# Donchian Channel Breakout Screener (Multi-Asset) API
> Which markets are breaking out of their recent trading range, computed live from Yahoo Finance (no key, nothing stored). The Donchian channel — the highest high and lowest low of the last N days — is the breakout system the legendary Turtle traders rode: a close above the 20-day high is a classic long entry, below the 20-day low a short, and the 55-day channel is the slower, higher-conviction version. For a cross-asset, cross-sector universe — equity indices and sectors, gold, oil, commodities, bonds and crypto — this computes each asset's 20-day and 55-day Donchian channels (upper, lower and midline), where price sits inside the 20-day channel, and flags fresh breakouts above the high or below the low. The screener endpoint returns the upside and downside breakouts across the board plus the channel-position ranking. The asset endpoint returns one market's Donchian card. The universe endpoint lists what is covered. The cross-asset Donchian / channel-breakout (Turtle) screener cut — distinct from the crypto-only Donchian screener, the 52-week-range screener (a much longer window), the Bollinger-Bands screener and the bring-your-own-candle indicator APIs. It catches the range breakouts across every asset class at once.

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

## Pricing
- **Free** (Free) — 760 calls/Mo, 2 req/s
- **Starter** ($11/Mo) — 17,000 calls/Mo, 6 req/s
- **Pro** ($33/Mo) — 89,500 calls/Mo, 16 req/s
- **Business** ($76/Mo) — 486,000 calls/Mo, 40 req/s

## Endpoints

### Screener

#### `GET /v1/screener` — Cross-asset board with 20/55-day breakouts and channel-position ranking

**Parameters:**
- `class` (query, optional, string) — Filter by class: equities, sector, commodities, bonds, crypto Example: `commodities`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/donchian-api/v1/screener?class=commodities"
```

**Response:**
```json
{
    "data": {
        "note": "Each market's 20- and 55-day Donchian channels (highest high / lowest low of the prior N sessions). A close above the 20-day upper is an upside breakout (Turtle long entry); below the 20-day lower a downside breakout. new_55d_high/low flags the slower, higher-conviction breakout. channel_position_20 places price in the 20-day channel (0=on the low, 100=on the high). Sorted by channel position (strongest first).",
        "class": "commodities",
        "assets": [
            {
                "key": "natural_gas",
                "class": "commodities",
                "label": "Natural Gas",
                "price": 11.16,
                "status": "inside channel",
                "breakout_up_20": false,
                "breakout_up_55": false,
                "donchian20_mid": 11.495,
                "breakout_down_20": false,
                "breakout_down_55": false,
                "donchian20_lower": 10.76,
                "donchian20_upper": 12.23,
                "donchian55_lower": 10.11,
                "donchian55_upper": 12.39,
                "channel_position_20": 27.2
            },
            {
                "key": "gold",
                "class": "commodities",
                "label": "Gold",
                "price": 386.32,
                "status": "inside channel",
                "breakout_up_20": false,
                "breakout_up_55": false,
                "donchian20_mid": 403.52,
                "breakout_down
…(truncated, see openapi.json for full schema)
```

### Asset

#### `GET /v1/asset` — One market Donchian channel card

**Parameters:**
- `asset` (query, required, string) — Asset key (see /v1/universe) Example: `sp500`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/donchian-api/v1/asset?asset=sp500"
```

**Response:**
```json
{
    "data": {
        "key": "sp500",
        "note": "One market's Donchian card: 20- and 55-day channel highs/lows and midline, where price sits in the 20-day channel, and breakout flags above/below each channel.",
        "class": "equities",
        "label": "S&P 500",
        "price": 737.76,
        "source": "Yahoo Finance",
        "status": "inside channel",
        "symbol": "SPY",
        "breakout_up_20": false,
        "breakout_up_55": false,
        "donchian20_mid": 741.495,
        "breakout_down_20": false,
        "breakout_down_55": false,
        "donchian20_lower": 722.59,
        "donchian20_upper": 760.4,
        "donchian55_lower": 629.28,
        "donchian55_upper": 760.4,
        "channel_position_20": 40.1
    },
    "meta": {
        "timestamp": "2026-06-12T10:35:05.171Z",
        "request_id": "d1c261bd-b4a2-4cab-9f97-a96a3c1607d8"
    },
    "status": "ok",
    "message": "Asset retrieved successfully",
    "success": true
}
```

### Universe

#### `GET /v1/universe` — Supported instruments

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

**Response:**
```json
{
    "data": {
        "note": "Supported instruments. Pass key as asset= to /v1/asset, class= to /v1/screener.",
        "count": 21,
        "assets": [
            {
                "key": "sp500",
                "class": "equities",
                "label": "S&P 500",
                "symbol": "SPY"
            },
            {
                "key": "nasdaq100",
                "class": "equities",
                "label": "Nasdaq 100",
                "symbol": "QQQ"
            },
            {
                "key": "small_caps",
                "class": "equities",
                "label": "US Small Caps",
                "symbol": "IWM"
            },
            {
                "key": "developed_intl",
                "class": "equities",
                "label": "Developed ex-US",
                "symbol": "EFA"
            },
            {
                "key": "emerging",
                "class": "equities",
                "label": "Emerging Markets",
                "symbol": "EEM"
            },
            {
                "key": "technology",
                "class": "sector",
                "label": "Technology",
                "symbol": "XLK"
            },
            {
                "key": "financials",
                "class": "sector",
                "label": "Financials",
                "symbol": "XLF"
            },
            {
                "key": "energy",
                "class": "sector",
                "label": "Energy",
      
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

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

**Response:**
```json
{
    "data": {
        "note": "screener class= filters by class. asset= is a supported key (see /v1/universe). Channels use the prior 20 and 55 sessions; a close beyond the channel is a breakout. Read fresh per call, nothing cached.",
        "source": "Yahoo Finance daily OHLC (6mo range) across a multi-asset universe, live",
        "classes": [
            "equities",
            "sector",
            "commodities",
            "bonds",
            "crypto"
        ],
        "service": "donchian-api",
        "settings": {
            "entry_channel": 20,
            "trend_channel": 55
        },
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/asset": "One market's Donchian channel card (asset=sp500).",
            "GET /v1/screener": "Cross-asset board with 20/55-day breakouts and channel-position ranking (class=sector optional).",
            "GET /v1/universe": "The supported instruments."
        },
        "description": "Donchian channel breakout screener (multi-asset) — which markets are breaking out of their recent trading range, live from Yahoo Finance (no key, nothing stored). screener returns the upside and downside 20-day breakouts across a cross-asset board (with the slower 55-day flag) plus the channel-position ranking. asset returns one market's Donchian card (20/55-day channels, channel position, breakout flags). universe lists what is covered. The cross-asset Donchian / channel-breakout (Turtle) screener cut 
…(truncated, see openapi.json for full schema)
```


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