Options

Filtered options chain

Per-contract data (greeks, OI, IV, bid/ask) plus aggregate stats. Filters supported:

  • expiries — CSV of tokens (e.g. 28MAR25,25APR25).
  • dte_min / dte_max — days-to-expiry bounds.
  • oi_min / oi_max — open interest bounds.
  • delta_min / delta_max — applied to |delta| (0..1).
  • strike_min / strike_max — absolute strike bounds.
  • moneyness_min / moneyness_max — strike / spot ratio bounds, e.g. 0.9..1.1 keeps strikes within ±10% of spot. Useful for cross-symbol screens since it normalises the strike grid.
  • option_type — call, put, or both.

Two layers of projection:

  • fields (top-level): comma-sep subset of aggregates,available_expiries,contracts — drops whole sections of the response, e.g. ?fields=contracts to skip aggregates.
  • include (per-contract): comma-sep subset of bid_ask,gex,greeks,iv,oi,volume — keeps only the named sub-sections of each contract dict. Core identity fields (strike,expiry,dte,type) are always present. Default is every section, matching v1 shape.

Payload is capped at ?max_contracts= (default 2000, hard ceiling 5000). On overflow the response is truncated to the closest-to-spot subset and truncated=true is set with total_matching_count so the client knows to narrow the filter.

Response is cached for 30s keyed by the exact filter combination, so repeated calls with identical filters are sub-millisecond.

get/options/chain

Request

  • Base URL: https://docs.backquant.com/v2
  • URL: https://docs.backquant.com/v2/options/chain
  • Auth: API key in header X-API-Key

Query parameters

symbol'BTCUSDT' | 'ETHUSDT' | 'SOLUSDT' | 'HYPEUSDT'

Trading symbol: BTCUSDT, ETHUSDT, SOLUSDT, or HYPEUSDT.

expiriesstring nullable

CSV of expiry tokens (e.g. 28MAR25,25APR25)

dte_mininteger nullable

Inclusive lower bound on days-to-expiry.

dte_maxinteger nullable

Inclusive upper bound on days-to-expiry.

oi_minnumber nullable

Minimum open interest per contract.

oi_maxnumber nullable

Maximum open interest per contract.

delta_minnumber nullable

Minimum |delta| (0..1).

delta_maxnumber nullable

Maximum |delta| (0..1).

strike_minnumber nullable

Minimum strike price (absolute).

strike_maxnumber nullable

Maximum strike price (absolute).

moneyness_minnumber nullable

Strike/spot lower bound (e.g. 0.9 for ATM-10%).

moneyness_maxnumber nullable

Strike/spot upper bound (e.g. 1.1 for ATM+10%).

option_type'call' | 'put' | 'both'

Filter to call, put, or both contract types.

max_contractsinteger

Cap on the number of contracts returned (default 2000, hard ceiling 5000). When more contracts match the filters, the response is truncated to the closest-to-spot subset and truncated=true is set with total_matching_count so the client knows to narrow the filter.

fieldsstring nullable

Top-level projection: aggregates,available_expiries,contracts

includestring nullable

Per-contract projection: bid_ask,gex,greeks,iv,oi,volume. Default is all sections.

Headers

X-API-Keystring nullable

Response

Successful Response

successtrue

Changes

No recorded changes to this operation across all 1 revision of this API.