Skip to content
GET /v1/screener

Cross-asset board with 20/55-day breakouts and channel-position ranking

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/donchian-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/donchian-api/v1/screener" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/donchian-api/v1/screener", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/donchian-api/v1/screener");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/donchian-api/v1/screener",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "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_20": false,
                "breakout_down_55": false,
                "donchian20_lower": 374.55,
                "donchian20_upper": 432.49,
                "donchian55_lower": 374.55,
                "donchian55_upper": 448.7,
                "channel_position_20": 20.3
            },
            {
                "key": "silver",
                "class": "commodities",
                "label": "Silver",
                "price": 60.82,
                "status": "approaching lower channel",
                "breakout_up_20": false,
                "breakout_up_55": false,
                "donchian20_mid": 69.245,
                "breakout_down_20": false,
                "breakout_down_55": false,
                "donchian20_lower": 57.63,
                "donchian20_upper": 80.86,
                "donchian55_lower": 57.63,
                "donchian55_upper": 80.86,
                "channel_position_20": 13.7
            },
            {
                "key": "oil",
                "class": "commodities",
                "label": "Crude Oil",
                "price": 128.83,
                "status": "approaching lower channel",
                "breakout_up_20": false,
                "breakout_up_55": false,
                "donchian20_mid": 140.315,
                "breakout_down_20": false,
                "breakout_down_55": false,
                "donchian20_lower": 126.55,
                "donchian20_upper": 154.08,
                "donchian55_lower": 109.02,
       
…