Flow Live Bundle API - One-Call Flow Analytics - FlashAlpha Lab API
Lab API Flow Live Bundle

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

GET /v1/flow/live/{symbol}
Auth required (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
symbolstringUnderlying symbol
as_ofstringISO 8601 timestamp
underlying_pricenumberCurrent price of underlying
contracts / contracts_with_flownumberChain size and how many contracts have moved (see Flow OI)
official_oi / simulated_oi / effective_oinumberSame as Flow OI
intraday_oi_delta / oi_delta_confidencenumberSimulator's signed per-contract delta and confidence weight
live_gexnumberNet dealer GEX on effective OI (matches Flow GEX)
live_gex_deltanumberNet DEX on effective OI (flattened from the underlying dex calculator)
live_gamma_flip / live_call_wall / live_put_wall / live_max_painnumberSame as Flow Levels
live_pin_risknumberComposite pin-risk score (see Flow Pin Risk)
flow_adjusted_dealer_riskobjectFull 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.