Skip to Content
f1owdocs
Tool reference

Options Positioning

Put/call open interest, strike and expiry concentrations, expiring notional, theoretical max pain and recent option trades. One venue; aggregate open interest does not reveal who is long or short, and max pain is not a forecast.

Optionsoptions_positioningGET /options/positioning/{currency}x402 · $0.02 / callRead-only

What it does

Crypto options positioning for one underlying: total call/put open interest in coins and USD notional, put/call OI and volume ratios, largest strike concentrations, upcoming expirations with expiring notional and theoretical max pain, OI change over 24h/7d (from hourly snapshots), and recent trade flow (aggressor premium by calls/puts, block share, largest trades). Descriptive positioning — not a direction signal.

Parameters

NameTypeDescription
currencyrequiredpathstringUnderlying symbol, e.g. "BTC".
expiriesqueryintegerUpcoming expirations to list, default 6, max 20.
trades_hoursquerynumberTrade-flow window in hours, default 4, max 24; 0 skips trades.

Call it

One API key works for MCP, REST and WebSocket; each call uses one unit. Agents without an account can pay per call with x402.

curl "https://mcp.f1ow.com/v1/options/positioning/BTC?expiries=4" \
  -H "Authorization: Bearer $F1OW_API_KEY"
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "options_positioning",
    "arguments": {
      "currency": "BTC",
      "expiries": 4
    }
  }
}
const res = await fetch("https://mcp.f1ow.com/v1/options/positioning/BTC?expiries=4", {
  headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);
import os, requests

res = requests.get(
    "https://mcp.f1ow.com/v1/options/positioning/BTC?expiries=4",
    headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json()  # the tool's result as JSON, typed in the OpenAPI spec
print(data)
// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "options_positioning",
    "arguments": {
      "currency": "BTC",
      "expiries": 4
    }
  }
}

// Or push a fresh result whenever it changes (minimum interval 15 s)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "subscriptions/subscribe",
  "params": {
    "name": "options_positioning",
    "arguments": {
      "currency": "BTC",
      "expiries": 4
    },
    "intervalSeconds": 60
  }
}
# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/options/positioning/BTC?expiries=4"

Sample response

A real response captured 2026-11-13. JSON is what REST and WebSocket return, and the structuredContent of an MCP call (trimmed for length), with generatedAt for freshness. Text is the report an MCP client hands to a model.

=== BTC options positioning — Deribit ===
Observed 2026-11-13T08:05:16Z (26s ago) | spot index $68625.86
OI: calls 185.33K BTC ($12.72B) / puts 145.84K BTC ($10.01B) → total $22.73B across 1572 instruments
Put/call OI 0.79 → BALANCED (descriptive bands: < 0.7 call-heavy, > 1.0 put-heavy) | put/call 24h volume 1.12
OI change 24h: n/a (no snapshot near that time yet)
OI change 7d: n/a (no snapshot near that time yet)

Largest strikes (all expiries):
  $80000.00: calls 12.72K / puts 6.07K BTC ($1.29B)
  $60000.00: calls 2.42K / puts 12.93K BTC ($1.05B)
  $70000.00: calls 2.91K / puts 11.26K BTC ($972.6M)
  $90000.00: calls 12.52K / puts 821.65 BTC ($915.5M)
  $100000.00: calls 11.16K / puts 367.62 BTC ($791.0M)

Upcoming expirations (08:00 UTC; max pain = theoretical minimum holder payout, not a forecast):
  14 Nov 2026    1.0d $160.9M (0.7% of OI) P/C 0.82 | max pain $73500.00 | top $75500.00 C 252.95/P 0.00; $75000.00 C 230.60/P 11.86; $73000.00 C 5.80/P 177.99
  15 Nov 2026    2.0d $76.7M (0.3% of OI) P/C 0.82 | max pain $73500.00 | top $74000.00 C 118.54/P 54.10; $82000.00 C 99.61/P 0.00; $78000.00 C 80.00/P 0.00
  16 Nov 2026    3.0d $49.0M (0.2% of OI) P/C 2.17 | max pain $72500.00 | top $70000.00 C 11.00/P 182.20; $71500.00 C 15.70/P 111.20; $73000.00 C 27.20/P 23.40
  17 Nov 2026    4.0d $0 (0.0% of OI) P/C n/a | max pain n/a | top 

Trade flow 2026-11-13T04:05:42Z → 2026-11-13T08:05:42Z (3965 trades):
  aggressor premium — calls bought $2.4M / sold $3.4M | puts bought $10.2M / sold $12.3M
  notional traded $1.60B, block trades $1.01B (63%)
  largest:
    2026-11-13T04:50:10Z BTC-25DEC26-100000-C buy 1.90K BTC ($130.4M notional, $117k premium, IV 48.9) block
    2026-11-13T04:50:10Z BTC-27NOV26-73000-C sell 1.10K BTC ($75.5M notional, $664k premium, IV 37.1) block
    2026-11-13T06:16:31Z BTC-4DEC26-75000-C sell 1.10K BTC ($75.2M notional, $526k premium, IV 36.0) block
    2026-11-13T04:50:10Z BTC-26MAR27-100000-C buy 750.00 BTC ($51.5M notional, $504k premium, IV 40.9) block
    2026-11-13T07:08:32Z BTC-4DEC26-62000-P buy 500.00 BTC ($34.6M notional, $249k premium, IV 43.7) block
    2026-11-13T07:08:32Z BTC-29JAN27-65000-P sell 500.00 BTC ($34.6M notional, $1.4M premium, IV 40.5) block
    2026-11-13T07:08:32Z BTC-29JAN27-62000-P buy 500.00 BTC ($34.6M notional, $1.0M premium, IV 42.2) block
    2026-11-13T07:08:32Z BTC-20NOV26-65000-P sell 500.00 BTC ($34.6M notional, $169k premium, IV 44.6) block
Units: OI and volume in underlying coins (reported); USD notional = coins × spot index (calculated); IV in % annualized; premiums quoted in the coin on inverse books (BTC/ETH), in USDC on linear books.
Positioning and pricing, not direction: put/call ratios, skew and max pain do not predict price, and aggregate OI cannot show dealer gamma, who is long or short, or pinning. Max pain is a theoretical calculation.
{
  "caveat": "Positioning and pricing, not direction: put/call ratios, skew and max pain do not predict price, and aggregate OI cannot show dealer gamma, who is long or short, or pinning. Max pain is a theoretical calculation.",
  "expiries": [
    {
      "days": 0.996154560185185,
      "expiry": "2026-11-14T08:00:00Z",
      "maxPainTheoretical": {
        "holderPayoutUsd": 166035,
        "strike": 73500
      },
      "shareOfOiPct": 0.707999714947271,
      "topStrikes": [
        {
          "callOi": 252.95,
          "notionalUsd": 17358911.287,
          "putOi": 0,
          "strike": 75500
        },
        {
          "callOi": 230.6,
          "notionalUsd": 16639026.0156,
          "putOi": 11.86,
          "strike": 75000
        },
        {
          "callOi": 5.8,
          "notionalUsd": 12612746.8094,
          "putOi": 177.99,
          "strike": 73000
        }
      ],
      "totals": {
        "callNotionalUsd": 88434028.2304,
        "callOi": 1288.64,
        "callVolume24h": 927.689999999999,
        "instruments": 124,
        "putCallOi": 0.819484107275888,
        "putCallVolume": 1.50208582608415,
        "putNotionalUsd": 72470280.6772,
        "putOi": 1056.02,
        "putVolume24h": 1393.47
      }
    },
    {
      "days": 1.99615456018519,
      "expiry": "2026-11-15T08:00:00Z",
      "maxPainTheoretical": {
        "holderPayoutUsd": 112250,
        "strike": 73500
      },
      "shareOfOiPct": 0.337497599397041,
      "topStrikes": [
        {
          "callOi": 118.54,
          "notionalUsd": 11847568.4704,
          "putOi": 54.1,
          "strike": 74000
        },
        {
          "callOi": 99.61,
          "notionalUsd": 6835821.9146,
          "putOi": 0,
          "strike": 82000
        },
        {
          "callOi": 80,
          "notionalUsd": 5490068.8,
          "putOi": 0,
          "strike": 78000
        }
      ],
      "totals": {
        "callNotionalUsd": 42048436.9392,
        "callOi": 612.72,
        "callVolume24h": 832.54,
        "instruments": 120,
        "putCallOi": 0.82412847630239,
        "putCallVolume": 0.832224277512192,
        "putNotionalUsd": 34653314.2656,
        "putOi": 504.96,
        "putVolume24h": 692.86
      }
    },
    {
      "days": 2.99615456018519,
      "expiry": "2026-11-16T08:00:00Z",
      "maxPainTheoretical": {
        "holderPayoutUsd": 150350,
        "strike": 72500
      },
      "shareOfOiPct": 0.215761362552043,
      "topStrikes": [
        {
          "callOi": 11,
          "notionalUsd": 13258516.152,
          "putOi": 182.2,
          "strike": 70000
        },
        {
          "callOi": 15.7,
          "notionalUsd": 8708621.634,
          "putOi": 111.2,
          "strike": 71500
        },
        {
          "callOi": 27.2,
          "notionalUsd": 3472468.516,
          "putOi": 23.4,
          "strike": 73000
        }
      ],
      "totals": {
        "callNotionalUsd": 15454543.672,
        "callOi": 225.2,
        "callVolume24h": 558.01,
        "instruments": 124,
        "putCallOi": 2.17286856127886,
        "putCallVolume": 1.42397089657891,
        "putNotionalUsd": 33580692.0738,
        "putOi": 489.33,
        "putVolume24h": 794.59
      }
    },
    {
      "days": 3.99615456018519,
      "expiry": "2026-11-17T08:00:00Z",
      "shareOfOiPct": 0,
      "topStrikes": [],
      "totals": {
        "callNotionalUsd": 0,
        "callOi": 0,
        "callVolume24h": 0,
        "instruments": 84,
        "putNotionalUsd": 0,
        "putOi": 0,
        "putVolume24h": 0
      }
    }
  ],
  "indexPriceUsd": 68625.86,
  "meta": {
    "ageSeconds": 26,
    "observedAt": "2026-11-13T08:05:16Z",
    "provider": "Deribit",
    "underlying": "BTC"
  },
  "metricSources": {
    "calculated": [
      "notionalUsd",
      "putCallOi",
      "putCallVolume",
      "maxPain",
      "oiChange",
      "tradeFlow"
    ],
    "reported": [
      "callOi",
      "putOi",
      "callVolume24h",
      "putVolume24h",
      "indexPriceUsd"
    ]
  },
  "notes": [],
  "state": "BALANCED",
  "topStrikes": [
    {
      "callOi": 12721.47,
      "notionalUsd": 1289592455.8104,
      "putOi": 6070.17,
      "strike": 80000
    },
    {
      "callOi": 2424,
      "notionalUsd": 1053819392.4186,
      "putOi": 12932.01,
      "strike": 60000
    },
    {
      "callOi": 2908.68,
      "notionalUsd": 972606863.436,
      "putOi": 11263.92,
      "strike": 70000
    },
    {
      "callOi": 12518.13,
      "notionalUsd": 915453874.7108,
      "putOi": 821.65,
      "strike": 90000
    },
    {
      "callOi": 11158.3,
      "notionalUsd": 790976172.2912,
      "putOi": 367.62,
      "strike": 100000
    }
  ],
  "totals": {
    "callNotionalUsd": 12718193188.3244,
    "callOi": 185326.54,
    "callVolume24h": 24316.45,
    "instruments": 1572,
    "putCallOi": 0.786936722608645,
    "putCallVolume": 1.1152594231477,
    "putNotionalUsd": 10008413265.1236,
    "putOi": 145840.26,
    "putVolume24h": 27119.15
  },
  "tradeFlow": {
    "blockNotionalUsd": 1011944790.343,
    "callBuyPremiumUsd": 2381868.5947789,
    "callSellPremiumUsd": 3382181.4044084,
    "from": "2026-11-13T04:05:42Z",
    "largest": [
      {
        "amount": 1900,
        "at": "2026-11-13T04:50:10Z",
        "block": true,
        "direction": "buy",
        "instrument": "BTC-25DEC26-100000-C",
        "iv": 48.88,
        "notionalUsd": 130407222,
        "premiumUsd": 117366.4998
      },
      {
        "amount": 1100,
        "at": "2026-11-13T04:50:10Z",
        "block": true,
        "direction": "sell",
        "instrument": "BTC-27NOV26-73000-C",
        "iv": 37.07,
        "notionalUsd": 75498918,
        "premiumUsd": 664390.4784
      },
      {
        "amount": 1100,
        "at": "2026-11-13T06:16:31Z",
        "block": true,
        "direction": "sell",
        "instrument": "BTC-4DEC26-75000-C",
        "iv": 35.98,
        "notionalUsd": 75181777,
        "premiumUsd": 526272.439
      },
      {
        "amount": 750,
        "at": "2026-11-13T04:50:10Z",
        "block": true,
        "direction": "buy",
        "instrument": "BTC-26MAR27-100000-C",
        "iv": 40.88,
        "notionalUsd": 51476535,
        "premiumUsd": 504470.043
      },
      {
        "amount": 500,
        "at": "2026-11-13T07:08:32Z",
        "block": true,
        "direction": "buy",
        "instrument": "BTC-4DEC26-62000-P",
        "iv": 43.67,
        "notionalUsd": 34565935,
        "premiumUsd": 248874.732
      },
      {
        "amount": 500,
        "at": "2026-11-13T07:08:32Z",
        "block": true,
        "direction": "sell",
        "instrument": "BTC-29JAN27-65000-P",
        "iv": 40.47,
        "notionalUsd": 34565935,
        "premiumUsd": 1441399.4895
      },
      "… 2 more"
    ],
    "notionalUsd": 1603954151.0467,
    "putBuyPremiumUsd": 10151002.0880033,
    "putSellPremiumUsd": 12298378.1196556,
    "to": "2026-11-13T08:05:42Z",
    "trades": 3965,
    "truncated": false
  },
  "generatedAt": "2026-11-13T08:05:16Z"
}

Call Options Positioning from your agent

Sign in, get an API key and make your first call in under a minute. No card required.

For agents: this page as Markdown · all docs

On this page