Skip to content
GET /v1/screener

Rank financial futures by leveraged-fund or asset-manager net positioning

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/tffpositioning-api

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

Get an API key

Code snippets

curl "https://api.oanor.com/tffpositioning-api/v1/screener" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/tffpositioning-api/v1/screener", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/tffpositioning-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/tffpositioning-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": "Financial futures ranked by leveraged funds (hedge funds / CTAs) net positioning as a share of open interest. High = that group is crowded net long; low/negative = crowded net short. sort=net ranks by raw contracts, sort=change by week-over-week net change. Source CFTC TFF, updated Fridays.",
        "class": "all",
        "count": 17,
        "group": "lev_money",
        "source": "CFTC Traders in Financial Futures (futures-only)",
        "results": [
            {
                "net": 56800,
                "bias": "net long",
                "name": "Australian Dollar",
                "rank": 1,
                "class": "fx",
                "market": "aud",
                "available": true,
                "net_pct_oi": 17.58,
                "long_pct_oi": 25.4,
                "report_date": "2026-06-02",
                "short_pct_oi": 7.8,
                "net_change_week": -1241
            },
            {
                "net": 27022,
                "bias": "net long",
                "name": "British Pound",
                "rank": 2,
                "class": "fx",
                "market": "gbp",
                "available": true,
                "net_pct_oi": 9.12,
                "long_pct_oi": 19.2,
                "report_date": "2026-06-02",
                "short_pct_oi": 10.1,
                "net_change_week": 647
            },
            {
                "net": -21339,
                "bias": "roughly balanced",
                "name": "Fed Funds",
                "rank": 3,
                "class": "rate",
                "market": "fedfunds",
                "available": true,
                "net_pct_oi": -1.25,
                "long_pct_oi": 15.8,
                "report_date": "2026-06-02",
                "short_pct_oi": 17,
                "net_change_week": -63818
            },
            {
                "net": -22320,
                "bias": "roughly balanced",
                "name": "Euro FX",
                "rank": 4,
                "class": "fx",
                "market": "eur",
                "available": true,
                "net_pct_oi": -2.28,
                "long_pct_oi": 8.5,
                "report_date": "2026-06-02",
                "short_pct_oi": 10.8,
                "net_change_week": 3990
            },
            {
                "net": -33033,
                "bias": "net short",
                "name": "VIX Futures",
                "rank": 5,
                "class": "index",
                "market": "vix",
                "available": true,
                "net_pct_oi": -8.04,
                "long_pct_oi": 19.7,
                "report_date": "2026-06-02",
                "short_pct_oi": 27.7,
                "net_change_week": 16303
            },
            {
                "net": -10782,
                "bias": "net short",
                "name": "Swiss Franc",
                "rank": 6,
                "class": "fx",
             
…