- Live API Reference
- Flow Analytics
- 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
X-Api-Key)
Rate Limited: Yes
Plan: Growth+
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
symbol |
path | string | required | - | Underlying symbol |
expiry |
query | date | all expiries | Filter chain to a single expiry (yyyy-MM-dd). Omit to aggregate across all expiries. Invalid values return 400 invalid_expiry. |
ES=F or NQ=F and URL-encode the = as %3D - e.g. /v1/flow/summary/ES%3DF. Flow analytics recompute on intraday effective OI; options-on-futures are priced with Black-76 ($50/pt ES, $20/pt NQ). CME futures and flow are Growth plan. See the futures hub.
Request
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"}
)
resp.raise_for_status()
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" } }
);
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();
console.log(`Flow direction: ${data.flow_direction}`);
console.log(`Live GEX: $${data.live_gex.toLocaleString()}`);Try it live
Runs on live market data and uses 1 request from your daily quota.
Response
{
"symbol": "SPY",
"as_of": "2026-10-30T13:46:09.3154414Z",
"underlying_price": 760.225,
"expiry": null,
"flow_direction": "neutral",
"intraday_oi_delta": 24615,
"contracts_with_flow": 1385,
"contracts_total": 12318,
"live_gex": -15649324149,
"flow_gex_pct_shift": -0.001363,
"endpoint_version": "2026.09.30",
"data_as_of": {
"node": "fa4",
"equity_feed": "2026-10-30T13:46:08.984Z",
"equity_options_feed": "2026-10-30T13:46:08Z",
"index_feed": "2026-10-30T13:46:08.091Z",
"index_options_feed": "2026-10-30T13:46:03Z",
"futures_feed": "2026-10-30T13:46:07.407Z",
"futures_options_feed": "2026-10-30T13:45:49.971Z",
"flow_feed": "2026-10-30T13:45:00Z",
"oi_feed": "2026-10-29T20:00:00Z",
"macro_feed": "2026-10-29T21:00:20Z"
}
}Sending request…
See this endpoint on live data
Send this exact request and the real response shows up here, right next to the example.
Response Fields
| Field | Type | Description |
|---|---|---|
symbol | string | Underlying symbol |
as_of | string | ISO 8601 timestamp |
underlying_price | number | Current price of underlying |
flow_direction | string | no_flow, amplifying, dampening, regime_flip, or neutral |
intraday_oi_delta | number | Net signed OI delta across the chain (simulator estimate) |
contracts_with_flow | number | Number of contracts whose effective OI has changed since open |
contracts_total | number | Total contracts in the chain |
live_gex | number | Net dealer gamma exposure recomputed on effective OI |
flow_gex_pct_shift | number, nullable | (live - settled) / |settled|. null when settled GEX is zero and live is non-zero (regime created with no baseline) |
expiry | string | null | The expiry filter from the request, null when it was omitted |
endpoint_version, data_as_of | string, object | Response envelope, see Response envelope. |
Errors
| Status | Error | When |
|---|---|---|
400 | invalid_expiry | expiry is not a valid yyyy-MM-dd date. |
401 | - | Missing or invalid X-Api-Key. The body is empty; check the status code before parsing JSON. |
403 | tier_restricted | Your plan is below Growth. The body includes current_plan and required_plan. |
404 | no_data | No data for the symbol. |
429 | Quota exceeded | Daily quota used up. Retry-After gives the seconds until the reset at 00:00 UTC. Rejected requests (including 403) count toward the quota. |
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
- Headline a dashboard - render
flow_directionplusflow_gex_pct_shiftas one line ("flow has amplified dealer GEX 9.4% since open") instead of explaining four endpoints - Alert on regime shifts - fire when
flow_directionbecomesregime_flipso you catch the moment dealers cross from long to short gamma - Detect a stale settled picture - watch
flow_gex_pct_shiftto know when the morning OPRA-settled GEX has stopped being representative and live positioning has diverged - Overlay flow confirmation - combine
flow_directionwith directional signals to filter out trades that fight intraday repositioning - Poll cheaply across a watchlist - one lightweight call per symbol answers "is anything interesting happening today" before you spend budget on the full bundle
- Track the intraday OI delta - read
intraday_oi_deltato gauge how much fresh positioning has built since open and weight the flow signal accordingly
Related
Related reading
- Options flow API: recent trades, blocks & leaderboard - the underlying flow this summary distils
- Flow vs exposure endpoints: which GEX API to use - when to read live flow GEX vs settled exposure
Complementary endpoints
- Flow Live - the full bundle when the headline says something is happening
- Flow Signals - the scored prints driving the direction the summary reports
- Live Flow GEX - the per-strike live dealer-gamma behind
flow_gex_pct_shift - Live Flow Levels - intraday support/resistance updated by the same OI simulator
Unlock DEX, VEX and CHEX with Basic
Everything in Free, plus:
- DEX, VEX and CHEX exposure
- Full max pain
- ETF & index symbols SPY, QQQ, SPX, VIX
Go full-chain with Growth
Everything in Basic, plus:
- Full-chain GEX Every expiration
- 0DTE analytics
- Exposure summary & AI narrative
- CME futures & live screener
Add history and vol surfaces with Alpha
Everything in Growth, plus:
- Historical API replay Since 2017
- SVI vol surfaces
- VRP analytics
- Greeks surfaces Vanna, charm, volga and speed grids