Skip to main content
GET
Filtered options chain
Filtered chain with two-layer projection (?fields= top-level, ?include= per-contract) and a payload cap (?max_contracts). Cached 30s per filter combination.

See also

Greeks beyond delta

Authorizations

X-API-Key
string
header
required

Your BackQuant API key (same key as v1)

Headers

X-API-Key
string | null

Query Parameters

symbol
enum<string>
default:BTCUSDT

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

Available options:
BTCUSDT,
ETHUSDT,
SOLUSDT,
HYPEUSDT
expiries
string | null

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

dte_min
integer | null

Inclusive lower bound on days-to-expiry.

Required range: 0 <= x <= 720
dte_max
integer | null

Inclusive upper bound on days-to-expiry.

Required range: 0 <= x <= 720
oi_min
number | null

Minimum open interest per contract.

Required range: x >= 0
oi_max
number | null

Maximum open interest per contract.

Required range: x >= 0
delta_min
number | null

Minimum |delta| (0..1).

Required range: 0 <= x <= 1
delta_max
number | null

Maximum |delta| (0..1).

Required range: 0 <= x <= 1
strike_min
number | null

Minimum strike price (absolute).

Required range: x >= 0
strike_max
number | null

Maximum strike price (absolute).

Required range: x >= 0
moneyness_min
number | null

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

Required range: 0 <= x <= 10
moneyness_max
number | null

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

Required range: 0 <= x <= 10
option_type
enum<string>
default:both

Filter to call, put, or both contract types.

Available options:
call,
put,
both
max_contracts
integer
default:2000

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.

Required range: 1 <= x <= 5000
fields
string | null

Top-level projection: aggregates,available_expiries,contracts

include
string | null

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

Response

Successful Response

data
ChainData · object
required
meta
V2Meta · object
required

The meta block returned alongside every v2 response.

Every field after version/timestamp is optional because endpoints attach different combinations — e.g. /v2/status skips symbol, the chain endpoint sets extra.filter_hash, etc. Listing them here means SDKs get a typed accessor for each instead of a generic meta: dict.

success
boolean
default:true