Flow Summary API - Live Intraday Flow Direction - FlashAlpha Lab API
Lab API Flow Summary

Flow Summary API

At-a-glance summary of intraday flow vs the morning OI baseline: directional label, intraday OI delta, contracts moved, live GEX, and percent shift from settled.

Endpoint

GET /v1/flow/summary/{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/summary/SPY"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/flow/summary/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Flow direction: {data['flow_direction']}")
print(f"Live GEX: ${data['live_gex']:,.0f}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/flow/summary/SPY",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Flow direction: ${data.flow_direction}`);
console.log(`Live GEX: $${data.live_gex.toLocaleString()}`);

Response

{
  "symbol": "SPY",
  "as_of": "2026-05-12T18:42:10Z",
  "underlying_price": 597.505,
  "expiry": "2026-05-15",
  "flow_direction": "amplifying",
  "intraday_oi_delta": 12450,
  "contracts_with_flow": 1820,
  "contracts_total": 5240,
  "live_gex": 3120000000,
  "flow_gex_pct_shift": 0.094
}

Key Response Fields

Field Type Description
symbolstringUnderlying symbol
as_ofstringISO 8601 timestamp
underlying_pricenumberCurrent price of underlying
flow_directionstringno_flow, amplifying, dampening, regime_flip, or neutral
intraday_oi_deltanumberNet signed OI delta across the chain (simulator estimate)
contracts_with_flownumberNumber of contracts whose effective OI has changed since open
contracts_totalnumberTotal contracts in the chain
live_gexnumberNet dealer gamma exposure recomputed on effective OI
flow_gex_pct_shiftnumber, nullable(live - settled) / |settled|. null when settled GEX is zero and live is non-zero (regime created with no baseline)

About the Flow Summary

The Flow Summary returns the single line you'd put at the top of a trading dashboard: how flow is reshaping dealer positioning right now. Unlike /v1/exposure/summary - which is computed on the morning OPRA-broadcast (settled) open interest and stays static through the session - this endpoint runs the same dealer-GEX math on the OI simulator's effective OI, so the value updates intraday as positioning shifts. The flow_direction label and flow_gex_pct_shift together tell you whether dealers are getting longer gamma, shorter gamma, or flipping regime versus the morning baseline.

Common Use Cases

  • Dashboard headline - one number ("flow has amplified dealer GEX 9.4% since open") instead of explaining four endpoints
  • Regime-shift alerts - fire when flow_direction becomes regime_flip
  • Intraday vs settled diff - detect when the morning GEX picture has stopped being representative
  • Flow-confirmation overlay - pair with directional signals to filter trades that fight repositioning
  • Lightweight polling - one cheap call covers "is anything interesting happening today"

Ready to build?

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