Skip to main content
GET
Strike ladder: dealer exposure by strike x expiry
The grid behind the terminal’s HEATMAP: one metric per call (gex, dex, vanna, charm, vega, oi or pos), with a row per strike and a column per expiry, plus each strike’s total over every expiry in scope. pos is the dealer position itself, in contracts: where dealers are longest and shortest, by strike and by expiry. With positioning=flow (the default for BTC and ETH) it is measured from the tape; see How flow is measured.
expiry takes all, 0dte, front, week, month, ISO dates or tokens such as 30OCT26. Every expiry in the response carries both forms.

See also

Dealer positioning

Strike profile

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
metric
enum<string>
default:gex

Which exposure: gex, dex, vanna, charm, vega, oi or pos.

Available options:
gex,
dex,
vanna,
charm,
vega,
oi,
pos
positioning
string | null
default:flow

Dealer positioning model. flow (default) is BackQuant's measured dealer model, available for BTC/ETH; it falls back to std when it cannot be produced for a symbol. std is the textbook convention (call:+OI / put:-OI). The response reports which model actually ran in meta.extra.positioning.

expiry
string
default:all

all, 0dte, front, week, month, or a comma list of ISO dates / tokens (30OCT26).

Maximum string length: 400
expiries
integer
default:8

How many of the nearest expiries get their own column.

Required range: 0 <= x <= 24
span
number | null

Strikes within spot x (1 +/- span). Default 0.12.

Required range: 0.005 <= x <= 0.5
group
integer
default:1

Merge strikes into buckets about this many strike steps wide.

Required range: 1 <= x <= 20

Response

Successful Response