/v1/screener
Rank markets by COT Index, flag crowded extremes
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/cotindex-api/v1/screener" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/cotindex-api/v1/screener", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/cotindex-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/cotindex-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": "Markets ranked by the large speculators (non-commercials) COT Index (0-100) over window_weeks. High = that group is near its most net-long of the window (crowded long, contrarian bearish); low = most net-short (crowded short, contrarian bullish). Source CFTC, updated weekly.",
"class": "all",
"count": 17,
"group": "noncomm",
"source": "CFTC Commitments of Traders (legacy futures-only)",
"results": [
{
"name": "Copper",
"rank": 1,
"class": "metal",
"market": "copper",
"extreme": "bullish-extreme (net long crowded — contrarian bearish)",
"available": true,
"cot_index": 100,
"report_date": "2026-06-02",
"net_position": 78833,
"net_change_week": 5793,
"cot_index_change": 5.2
},
{
"name": "Soybeans",
"rank": 2,
"class": "grain",
"market": "soybeans",
"extreme": "bullish-extreme (net long crowded — contrarian bearish)",
"available": true,
"cot_index": 85.3,
"report_date": "2026-06-02",
"net_position": 187784,
"net_change_week": -16891,
"cot_index_change": -3.7
},
{
"name": "Australian Dollar",
"rank": 3,
"class": "fx",
"market": "aud",
"extreme": "leaning long",
"available": true,
"cot_index": 77.3,
"report_date": "2026-06-02",
"net_position": 41812,
"net_change_week": -18343,
"cot_index_change": -9.5
},
{
"name": "Wheat (SRW)",
"rank": 4,
"class": "grain",
"market": "wheat",
"extreme": "leaning long",
"available": true,
"cot_index": 65,
"report_date": "2026-06-02",
"net_position": -40762,
"net_change_week": -31304,
"cot_index_change": -26.3
},
{
"name": "Corn",
"rank": 5,
"class": "grain",
"market": "corn",
"extreme": "leaning long",
"available": true,
"cot_index": 63.4,
"report_date": "2026-06-02",
"net_position": 199942,
"net_change_week": -102060,
"cot_index_change": -13.9
},
{
"name": "Dow Jones (DJIA x$5)",
"rank": 6,
"class": "index",
"market": "djia",
"extreme": "neutral",
"available":
…