Get Deribit BTC Max Pain History
arena_get_max_pain_historyDoes max pain actually pull price to the strike? Settled Deribit BTC options expiries with the max-pain level we compute per expiry, for measuring the convergence question: does spot drift toward the max-pain level as expiry approaches? Each row: expiry_date, max_pain_strike, spot_at_expiry, %-diff, P/C ratio, notional, expiry-type flags. The mandatory base_rates block answers the convergence question PER expiry class (n, median |diff|, shares within 1%/2%, max, sample_adequate at n>=30) — the pooled median mixes tiny daily expiries with large quarterlies, which is what the per-class split separates. Filter with expiry_type / min_contracts / snapshot_expiry_date instead of post-processing the full row set. With include_open_snapshots=true it adds the daily observation series of still-open expiries — that series starts 2026-05-28, is not backfillable, and its per-expiry depth is thin, so check open_snapshot_coverage before computing anything from it. Days auto-capped by tier: Pro 365d, Power 3650d. Max-pain levels are our own aggregation across the option chain; the chain itself is not redistributed. Source: Deribit. Related: arena_get_max_pain (current + upcoming), arena_get_iv_snapshot. [API Pro tier]
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days back from today (default 90, capped by tier). | |
| market | No | Options market: 'DERIBIT_BTC' (default) or 'IBIT' (collected since 2026-08-24 — history is correspondingly short). | |
| expiry_type | No | Filter expiries AND open_snapshots to one expiry class (label = highest level reached; the nesting booleans stay untouched). base_rates are always computed BEFORE this filter. | |
| min_contracts | No | Only finalized expiries with total_contracts >= this (rows with unknown contracts drop out when set). | |
| snapshot_expiry_date | No | Reduce open_snapshots[] to exactly this expiry date (YYYY-MM-DD). Only meaningful with include_open_snapshots=true. | |
| include_open_snapshots | No | Default false. When true, adds open_snapshots[] (daily observations of not-yet-expired contracts) plus open_snapshot_coverage. Omit for the unchanged response. |