Flow Live Bundle API
One-call convenience bundle: simulator state, live levels, pin risk, live GEX/DEX totals, and the full flow-adjusted dealer-risk join.
Endpoint
X-Api-Key)
Rate Limited: Yes
Alpha 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/live/SPY"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/live/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Live GEX: ${data['live_gex']:,.0f}")
print(f"Pin risk: {data['live_pin_risk']}/100")
print(f"Direction: {data['flow_adjusted_dealer_risk']['flow_direction']}")
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/live/SPY",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Live GEX: $${data.live_gex.toLocaleString()}`);
console.log(`Pin risk: ${data.live_pin_risk}/100`);
console.log(`Direction: ${data.flow_adjusted_dealer_risk.flow_direction}`);
Response
{
"symbol": "SPY",
"as_of": "2026-05-12T18:42:10Z",
"underlying_price": 597.505,
"expiry": "2026-05-15",
"contracts": 5240,
"contracts_with_flow": 1820,
"official_oi": 14820000,
"simulated_oi": 14832450,
"intraday_oi_delta": 12450,
"oi_delta_confidence": 0.43,
"effective_oi": 14835100,
"live_gex": 3120000000,
"live_gex_delta": -480000000,
"live_gamma_flip": 595.50,
"live_call_wall": 600.0,
"live_put_wall": 595.0,
"live_max_pain": 597.0,
"live_pin_risk": 72,
"flow_adjusted_dealer_risk": {
"settled_net_gex": 2850000000,
"live_net_gex": 3120000000,
"flow_gex_adjustment": 270000000,
"flow_gex_pct_shift": 0.094,
"settled_net_dex": -450000000,
"live_net_dex": -480000000,
"flow_dex_adjustment": -30000000,
"flow_dex_pct_shift": -0.066,
"total_abs_delta_contracts": 18420,
"flow_direction": "amplifying",
"description": "Flow has amplified dealer GEX by 9.4% since open. 1820 contracts saw 18,420 contract-units of repositioning."
}
}
Key Response Fields
live_gex_delta is net DEX (the field is flattened from the underlying dex calculator); all other fields carry the same meaning as the dedicated endpoints.
| Field | Type | Description |
|---|---|---|
symbol | string | Underlying symbol |
as_of | string | ISO 8601 timestamp |
underlying_price | number | Current price of underlying |
contracts / contracts_with_flow | number | Chain size and how many contracts have moved (see Flow OI) |
official_oi / simulated_oi / effective_oi | number | Same as Flow OI |
intraday_oi_delta / oi_delta_confidence | number | Simulator's signed per-contract delta and confidence weight |
live_gex | number | Net dealer GEX on effective OI (matches Flow GEX) |
live_gex_delta | number | Net DEX on effective OI (flattened from the underlying dex calculator) |
live_gamma_flip / live_call_wall / live_put_wall / live_max_pain | number | Same as Flow Levels |
live_pin_risk | number | Composite pin-risk score (see Flow Pin Risk) |
flow_adjusted_dealer_risk | object | Full settled-vs-live join with direction label and human description (see Flow Dealer Risk) |
About Flow Live Bundle
The Live Bundle materialises the live chain once on the server and returns OI simulator state, live levels, pin risk, live GEX/DEX totals, and the full flow-adjusted dealer-risk join in one response. It's cheaper than calling each /v1/flow/* endpoint individually and removes any cross-endpoint drift from microsecond-level updates between calls. Use it whenever you'd otherwise be fanning out five or six flow requests per symbol per refresh.
Common Use Cases
- Dashboard render - power a full options-flow dashboard with one call per symbol per tick
- Multi-symbol scans - poll the bundle across a watchlist to rank by pin risk, flow direction, or dealer-GEX shift
- Snapshot consistency - all fields computed on the same materialised chain - no drift between, say, live GEX and live pin risk
- Lower request budget - collapses ~6 endpoint hits into one for plans with daily quotas
- Backend caching layer - cache the bundle once and serve derived views to multiple downstream consumers
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.