Skip to main content

Free API · v0.3.0 · beta

Every endpoint. Public. Forever.

CBOE-derived options analytics, served over JSON. All endpoints below are the same surface that powers the Gamma Flow frontend — consume them directly from a notebook, a Pine indicator, a Discord bot, anything.

AuthCurrently no auth required during beta — public CBOE-derived data. Rate limit: 60 req/min/IP. Once the paid tier ships, the same endpoints will gain a higher rate ceiling under an API key, but the free path will remain.
01

Gamma Levels

Walls, HVL, gamma wall, max pain — the core read.

GET/api/levels/{symbol}Stable

Pure-gamma levels for any tracked symbol

Call resistance 1–3, put support 1–3, HVL, gamma_wall, gamma_flip, max_pain, 0DTE counterparts, plus aggregate total_gex / net_gex / total_dex / net_dex / put_call_gex_ratio and the regime label.

Parameters

NameInTypeDefaultDescription
symbol*pathstringSPX, NDX, QQQ, SPY, GLD, IWM, TLT, or any other native-chain symbol. Futures (NQ, ES, GC, RTY, ZB) go through /api/conversion instead.

Example request

curl https://gamma-flow.com/api/levels/SPY

Example response

{
  "symbol": "SPY",
  "spot": 732.41,
  "asof": "2026-05-19T14:50:14Z",
  "call_resistance_1": 740.0,
  "call_resistance_2": 745.0,
  "call_resistance_3": 750.0,
  "put_support_1": 730.0,
  "put_support_2": 700.0,
  "put_support_3": 725.0,
  "hvl": null,
  "gamma_wall": 730.0,
  "gamma_flip": null,
  "max_pain": 737.0,
  "call_resistance_0dte": 740.0,
  "put_support_0dte": 730.0,
  "hvl_0dte": null,
  "gamma_wall_0dte": 730.0,
  "total_gex": 22594804910.87,
  "net_gex": -7471230645.99,
  "total_dex": 243872684267.08,
  "net_dex": 243872684267.08,
  "put_call_gex_ratio": 1.462,
  "gamma_regime": "NEUTRAL"
}
Notehvl ≠ gamma_wall — see /methodology#hvl-vs-wall. The two were conflated in our pre-2026-05-19 payloads; the field names are now correct.
GET/api/menthorq/{symbol}Stable

MenthorQ-compatible level payload

Same numbers as /api/levels but renamed to match the field semantics MenthorQ's TradingView indicator publishes. Includes the top-10 sorted GEX strikes (gex_1 … gex_10) and the 1D max/min lines.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.

Example request

curl https://gamma-flow.com/api/menthorq/SPY

Example response

{
  "symbol": "SPY",
  "spot": 732.41,
  "asof": "2026-05-19T14:50:14Z",
  "call_resistance": 740.0,
  "put_support": 730.0,
  "hvl": null,
  "gamma_wall": 730.0,
  "gex_1": 730.0, "gex_2": 700.0, "gex_3": 740.0, "gex_4": 725.0,
  "gex_5": 745.0, "gex_6": 710.0, "gex_7": 750.0, "gex_8": 755.0,
  "gex_9": 735.0, "gex_10": 715.0,
  "call_resistance_0dte": 735.0,
  "put_support_0dte": 730.0,
  "hvl_0dte": null,
  "gamma_wall_0dte": 730.0,
  "one_d_max": 735.0,
  "one_d_min": 730.0
}
GET/api/menthorq/{symbol}/pineStable

Paste-ready Pine v5 script

Returns a text/plain Pine v5 script with every level baked in as a constant. Paste into TradingView → custom indicator. No subscription, no Pine Seeds.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.

Example request

curl https://gamma-flow.com/api/menthorq/SPY/pine
02

GEX+ / VEX

Gamma + vanna combined dealer-rehedge measure.

GET/api/gex-plus/{symbol}Stable

Combined GEX + VEX dealer-rehedge sensitivity

net_gex + net_vex + net_gex_plus + vex_share, plus the GEX+ derived walls and the GEX+ flip. Same $/1%-spot-move unit across all three components. See /methodology#gex-plus for the math.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
min_oiqueryinteger10Drop strikes below this OI from the per-strike aggregation. Affects walls and flip detection.

Example request

curl 'https://gamma-flow.com/api/gex-plus/SPY?min_oi=10'

Example response

{
  "symbol": "SPY",
  "asof": "2026-05-19T14:50:14Z",
  "spot": 732.41,
  "net_gex": -7473365078.71,
  "net_vex": -52853187677.54,
  "net_gex_plus": -60326552756.25,
  "vex_share": -0.876,
  "call_wall_plus": 740.0,
  "put_wall_plus": 700.0,
  "gex_plus_flip": null
}
GET/api/profile/{symbol}Stable

Per-strike GEX / DEX / VEX / GEX+

One bar per strike inside ±range_pct of spot — call_gex, put_gex, net_gex, call_dex, put_dex, net_dex, vex, gex_plus, oi. Used by the GEX Profile chart. Also returns whole-chain totals (call/put OI, volumes, ratios).

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
range_pctqueryfloat0.10Strike range ± from spot. Min 0.01, max 0.50.
min_oiqueryinteger10Drop low-OI strikes before binning.

Example request

curl 'https://gamma-flow.com/api/profile/SPY?range_pct=0.05&min_oi=20'
03

Market Pulse

Composite header read + session + fast-lanes.

GET/api/pulse/{symbol}Stable

Composite Market Pulse (one call per dashboard header)

Gamma regime + label, net_gex, zero_gamma_distance_pct, volatility regime, GVI magnitude, ATR%, VIX (live from yfinance), iv_30d, expected_move pts/%, realized_range_pct, realized_vs_expected_pct, skew + label, vanna/charm states, charm magnet, plain-English diagnosis title + body.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.

Example request

curl https://gamma-flow.com/api/pulse/SPY
GET/api/pulse/sessionStable

Current trading session + 6-session TLAD strip

now_utc, now_et, current session id, is_market_open, next_rth_open_et, seconds_until_rth_open, and the 6 ET-anchored session windows (Asia, Premarket, RTH-open, Lunch, Power Hour, After-hours).

Example request

curl https://gamma-flow.com/api/pulse/session
GET/api/pulse/{symbol}/fast-lanesBeta

Detect FAST LANE zones (gaps in gamma profile)

Zones between adjacent walls where dealer hedging density is low — spot moves through these with less resistance. Returns low/high strike, width in points and %, and density score per lane.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
range_pctqueryfloat0.05Search range ± from spot.
significance_pctqueryfloat0.20Minimum lane width as % of search range to qualify.
04

Multi-Symbol + Multi-Expiry

Screeners, per-expiry breakdown, composite Q-Score.

GET/api/matrixStable

Multi-symbol screener (light)

One row per tracked symbol — spot, call_resistance, put_support, hvl, net_gex, total_gex, gamma_regime, asof. The fast variant — no Q-Score, no qscore-derived signals.

Example request

curl https://gamma-flow.com/api/matrix
GET/api/matrix-fullStable

Multi-symbol screener with full pulse

Like /api/matrix but with iv_30d, gamma_regime, and (optional) composite_score + composite_signal per symbol. Parallel-fetched, 30s response cache.

Parameters

NameInTypeDefaultDescription
include_qscorequerybooleanfalseAdd the 4D Q-Score per symbol. Adds ~1s/symbol; off by default.

Example request

curl 'https://gamma-flow.com/api/matrix-full?include_qscore=true'
GET/api/multi-expiry/{symbol}Stable

Per-expiry GEX breakdown + 4 highlighted panels

panels[]: FIRST (front expiry), NEXT (second), HIGHEST (highest total GEX), SECOND_HIGHEST. Each panel includes total_gex, net_gex, pct_of_total, call_resistance, put_support, hvl + a mini-histogram bars[] per strike. by_expiry[] is the full table.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.

Example request

curl https://gamma-flow.com/api/multi-expiry/SPY
GET/api/qscore/{symbol}Beta

4D composite signal — Option / Vol / Momentum / Seasonality

Each of 4 components scored 0–5 with a BULLISH/BEARISH/NEUTRAL signal + plain-English description. composite_score = 0.40·Option + 0.20·Volatility + 0.25·Momentum + 0.15·Seasonality. Not financial advice.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.

Example request

curl https://gamma-flow.com/api/qscore/SPY
05

Vanna / Charm / DEX Ladders

Per-strike ladders for the 4-panel ladder view.

GET/api/ladders/{symbol}/{ladder_type}Stable

DEX · convexity · vanna · charm ladder

ladder_type ∈ {dex, convexity, vanna, charm}. Returns one signed bar per strike (convexity returns long_gex + short_gex pair), plus max_abs and net_value for chart auto-scale.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
ladder_type*pathenumOne of dex · convexity · vanna · charm.
range_pctqueryfloat0.05Strike range ± from spot.
min_oiqueryinteger10Drop low-OI strikes.

Example request

curl 'https://gamma-flow.com/api/ladders/SPY/vanna?range_pct=0.05'
GET/api/ladders/{symbol}/history-lookbackBeta

Recent-change ladder bars (lookback window)

Per-strike delta vs. an N-period-ago snapshot. Surfaces strikes where dealer exposure shifted most.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
GET/api/ladders/{symbol}/max-changeBeta

Top movers across multiple lookback windows

windows[]: 30m, 1h, 1d. Top-N strikes by absolute change per window.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
06

Volatility Surface

IV, smile, term structure, surface, skew-cross, blind spots.

GET/api/vol/{symbol}Stable

VRP + smile + term structure

iv30, realized_30d, vrp (= iv30 − realized_30d), smile points for the highlighted expiry, term-structure points (atm IV per expiry).

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol or futures (^NDX, ^SPX, NQ, ES, GC, RTY).

Example request

curl https://gamma-flow.com/api/vol/SPY
GET/api/surface/{symbol}Beta

Full IV surface (smile × term)

Used by the heatmap. Returns the IV grid + axes + spot reference line.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
GET/api/skew-crossBeta

Cross-symbol skew comparison

ATM IV vs 25Δ put IV across all tracked symbols — surfaces which symbols are pricing the steepest tail risk right now.

GET/api/blind-spots/{group_id}Beta

Strikes the chain is structurally blind to

Strikes with low OI / low recent volume where the dealer-hedge map has gaps. /groups returns the list of available group ids.

Parameters

NameInTypeDefaultDescription
group_id*pathstringGroup identifier — see /api/blind-spots/groups for the catalog.
GET/api/blind-spots/groupsBeta

Catalog of blind-spot group definitions

Lookup table for the group_id parameter.

07

Raw Chain + Spot + Hero

Lower-level reads for chart and notebook consumers.

GET/api/chain/{symbol}Stable

Raw CBOE options chain (slim)

Per-contract: strike, cp, expiry, oi, volume, bid/ask/last, IV, delta, gamma, theta, vega, rho. The full CBOE chain after our slim filter.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
GET/api/spot/{symbol}Stable

Live spot + change + market-open flag

price, previous_close, change_abs, change_pct, asof_utc, is_market_open, is_likely_realtime, source label, proxy_etf + proxy_ratio when the symbol is a futures contract.

Parameters

NameInTypeDefaultDescription
symbol*pathstringNative symbols + futures (NQ, ES, GC, RTY) supported.

Example request

curl https://gamma-flow.com/api/spot/SPY

Example response

{
  "symbol": "SPY",
  "yf_ticker": "SPY",
  "price": 731.67,
  "raw_yf_price": 731.67,
  "previous_close": 738.89,
  "change_abs": -7.22,
  "change_pct": -0.977,
  "asof_utc": "2026-05-19T14:51:22.117798Z",
  "source": "yfinance_direct",
  "proxy_etf": null,
  "proxy_ratio": null,
  "is_market_open": true,
  "is_likely_realtime": true
}
GET/api/hero/{symbol}Stable

All hero-page data in one call (chart + levels + pulse)

Combines /api/levels + /api/pulse + 1-minute OHLCV intraday bars for the chart. 10s response cache.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
GET/api/history/{symbol}Beta

Historical snapshots of computed levels

Past N intraday snapshots of the levels payload. Used by the History view.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
08

Futures Conversion + Copy

Ratio-derived levels for futures + paste-ready exports.

GET/api/conversion/{futures_symbol}Stable

Futures levels via ratio conversion

Pairs: NQ ← QQQ (default) or NDX · ES ← SPY (default) or SPX · GC ← GLD · RTY ← IWM · ZB ← TLT. Returns source_symbol, futures_spot, source_spot, live ratio, method, and the full converted level set.

Parameters

NameInTypeDefaultDescription
futures_symbol*pathstringNQ, ES, GC, RTY, or ZB.
sourcequerystringOverride default source (e.g. NDX instead of QQQ).
methodquerystring'ratio' or 'spread' — overrides default.

Example request

curl https://gamma-flow.com/api/conversion/NQ

Example response

{
  "futures_symbol": "NQ",
  "source_symbol": "QQQ",
  "asof": "2026-05-19T14:51:15Z",
  "futures_spot": 28773.0,
  "source_spot": 696.87,
  "ratio": 41.29,
  "method": "ratio",
  "converted_levels": {
    "call_resistance_1": 30140.90,
    "put_support_1": 28902.23,
    "max_pain": 29108.68,
    "hvl": null
  }
}
GET/api/conversion/{futures_symbol}/copyStable

Paste-ready text export for a futures symbol

Same format as /api/copy but for the converted futures levels.

Parameters

NameInTypeDefaultDescription
futures_symbol*pathstringNQ, ES, GC, RTY, ZB.
GET/api/copy/{symbol}Stable

Paste-ready text export for any symbol

text/plain. The format parsed by the BackQuant / OutsiderEdge style Pine indicator. Keywords: HVL, Call Resistance N, Put Support N, Net GEX, Regime, plus a [0DTE] block and a [Metrics] block.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.

Example request

curl https://gamma-flow.com/api/copy/SPY
09

Ops + Misc

Scheduler status, alerts, newsletter, AI chat, polygon-HIRO.

GET/scheduler/statusStable

Scheduler runtime state

Used by /status page. Returns last_run_at, last_run_ok, in_flight, next_run_at, gc state, etc.

GET/api/alertsBeta

List + create alerts

GET = list. POST = create. Schema documented in OpenAPI.

GET/api/newsletter/{symbol}Beta

Plain-text daily newsletter snippet

Per-symbol prose summary suitable for email or Discord.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
POST/api/ai/chatBeta

Grounded AI chat over the live numbers

POST body: {symbol, message}. Returns the model's response, grounded on the symbol's current levels + pulse + Q-Score.

GET/api/backtest/{symbol}Beta

(stub) Per-symbol backtest payload

Surface is stable; backing store ships in Sprint 2.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
GET/api/polygon-hiro/{symbol}Beta

(future) Polygon HIRO-style flow

Stub — wired up only when a paid Polygon key is present. Free deployments return 503.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.
GET/api/forced-flow/{symbol}Beta

Forced-rehedging flow under price-shock scenarios

Computes the implied dealer rehedge curve under +/- N% spot shocks.

Parameters

NameInTypeDefaultDescription
symbol*pathstringAny native-chain symbol.