DOCS
GEX API
Computed dealer gamma exposure over a simple REST endpoint: per-strike GEX, net gamma/delta/vanna/charm, call & put walls and the zero-gamma flip, for futures and single-name stocks.
GEX API
The computed dealer-gamma levels behind our free GEX tool, as clean JSON. Non-naive per-strike gamma exposure, the net gamma/delta/vanna/charm regimes, call & put walls and the zero-gamma flip — for index futures and single-name stocks, on your existing API key.
This endpoint requires the GEX API add-on ($29.99/mo). It's a standalone entitlement — it works alongside any stream or data plan and is unlocked automatically when you subscribe.
GET /v1/gex
Returns the full GEX read for one symbol, computed live from the option chain.
curl "https://api.tick-stream.xyz/v1/gex?underlying=NQ&weight=oi&dte=all" \
-H "Authorization: Bearer sk_live_…"import requests
r = requests.get("https://api.tick-stream.xyz/v1/gex",
params={"underlying": "NQ", "weight": "oi", "dte": "all"},
headers={"Authorization": "Bearer sk_live_…"})
print(r.json()["callWall"], r.json()["flipLevel"]) Query parameters
underlying | yes | Symbol. Futures: NQ ES GC SI CL. Stocks: AAPL NVDA TSLA AMZN META MSFT. |
weight | no | oi (default) weights by open interest — standing positioning. vol weights by today's contract volume — intraday flow. |
dte | no | all (default), 0 (expires today) or 1 (tomorrow). Filters every field to that expiry group. |
Response
{
"symbol": "NQ", "spot": 29304.0, "ratio": 41.32,
"weight": "oi", "dte": "all",
"netGexM": 4099, "regime": "positive",
"dexM": -10741, "vannaK": 1120, "charmM": -116,
"flipLevel": 28835,
"callWall": 29335, "putWall": 28095,
"hvl": 28095,
"blindspots": [{ "level": 29010, "gexM": 640, "side": "call" }],
"levels": [
{
"strike": 710, "level": 29335, "gexM": 1700,
"callGexM": 2300, "putGexM": -589,
"callOI": 12000, "putOI": 8000, "volume": 790000,
"side": "call"
}
],
"updated": 1784680283
} netGexM / regime | Net gamma exposure at spot in $M per 1% move, and positive/negative regime. |
dexM | Net dealer delta exposure ($M) — directional hedge pressure at spot. |
vannaK / charmM | Net vanna and charm — how dealer delta shifts with vol and with time (the end-of-day pin forces). |
flipLevel | Zero-gamma flip, root-found on the spot-parametrized net-GEX curve, in futures price. |
callWall / putWall | Biggest positive strike above spot / biggest negative below, in futures price. |
hvl | High-gamma level — the single largest-|gamma| strike (the dealer magnet / intraday pivot), in futures price. |
blindspots | Array of the strongest secondary gamma peaks between the walls (one above, one below spot): { level, gexM, side }. Reaction levels that aren't the obvious wall. |
levels[] | Per strike (±6% of spot): strike, futures level, gexM, the callGexM/putGexM split, callOI/putOI, volume, and side. |
Method
GEX is computed non-naively: each strike's gamma is evaluated at that strike (Black-Scholes, using each contract's own implied vol and expiry) — its hedging force when price actually trades there — not with today's spot-decayed gamma, which would make far walls invisible and glue levels to spot. Net regimes are evaluated at the current spot; the flip is root-found along the spot axis. Levels are computed on the deep ETF option surface (QQQ for NQ, SPY for ES, etc.) and mapped onto the future via the live price ratio; single names are computed on the name's own chain.
note GEX levels are context, not signals. Our own 7-year backtests show touching a big strike is not an edge by itself — what carries information is the regime. Refreshed continuously (chains ~90s, quotes live).