Flow GEX API - Live Gamma Exposure Per Strike - FlashAlpha Lab API
Lab API Flow GEX

Flow GEX API

Live gamma exposure: net total, sign label, gamma flip, and per-strike profile recomputed on effective OI.

Endpoint

GET /v1/flow/gex/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Growth plan+

Parameters

Name In Required Default Description
symbol path yes - Underlying symbol
expiry query no all expiries Filter chain to a single expiry (yyyy-MM-dd). Omit to aggregate across all expiries
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/flow/gex/SPY"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/flow/gex/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Live net GEX: ${data['live_net_gex']:,.0f} ({data['live_net_gex_label']})")
print(f"Live gamma flip: {data['live_gamma_flip']}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/flow/gex/SPY",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Live net GEX: $${data.live_net_gex.toLocaleString()} (${data.live_net_gex_label})`);
console.log(`Live gamma flip: ${data.live_gamma_flip}`);

Response

{
  "symbol": "SPY",
  "as_of": "2026-05-12T18:42:10Z",
  "underlying_price": 597.505,
  "expiry": "2026-05-15",
  "live_net_gex": 3120000000,
  "live_net_gex_label": "positive",
  "live_gamma_flip": 595.50,
  "strikes": [
    {
      "strike": 595.0,
      "call_gex": 13800000,
      "put_gex": 9600000,
      "net_gex": 23400000,
      "call_oi": 16200,
      "put_oi": 12700,
      "call_volume": 320,
      "put_volume": 240,
      "call_oi_change": 1200,
      "put_oi_change": -150
    }
  ]
}

Key Response Fields

Field Type Description
symbolstringUnderlying symbol
as_ofstringISO 8601 timestamp
underlying_pricenumberCurrent price of underlying
live_net_gexnumberSum of net_gex across strikes, computed on effective OI
live_net_gex_labelstringpositive or negative
live_gamma_flipnumberStrike where the cumulative live profile crosses zero
strikesarrayPer-strike GEX, OI, and volume on effective OI
strikes[].call_oi_change / put_oi_changenumberDay-over-day delta from prior settled snapshot (nullable)

About Flow GEX

Flow GEX is the live counterpart to /v1/exposure/gex. The settled endpoint uses morning OPRA-broadcast OI and stays frozen all session; this endpoint runs the exact same gamma-exposure math on the OI simulator's effective open interest, so the per-strike profile, net total, and gamma flip all drift intraday as positioning fills, exits, and rolls. Use it when you need a dealer-gamma snapshot that actually reflects mid-session reality.

Common Use Cases

  • Intraday regime monitoring - watch positive/negative gamma in real time instead of relying on the morning snapshot
  • Strike-level heatmap - render a live GEX-by-strike chart on top of the chain
  • Gamma flip alerts - fire when the live flip strike crosses spot
  • Volatility regime forecasting - net GEX sign is the primary input to mean-reversion vs trending bias
  • Settled vs live diff - contrast per-strike call/put GEX between the two endpoints to spot heavy intraday repositioning

Ready to build?

Get your free API key and start pulling live options data in 30 seconds.