Flow Dealer Risk API - Settled vs Live Dealer GEX DEX - FlashAlpha Lab API
Lab API Flow Dealer Risk

Flow Dealer Risk API

Settled vs live dealer GEX and DEX joined into one response, with delta, percent shift, and a directional label.

Works with CME index futures. Pass ES=F or NQ=F and URL-encode the = as %3D - e.g. /v1/flow/dealer-risk/ES%3DF. Options-on-futures are priced with Black-76 using the CME multiplier ($50/pt ES, $20/pt NQ); CME index futures are Growth-tier. See the futures hub.

Endpoint

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

resp = requests.get(
    "https://lab.flashalpha.com/v1/flow/dealer-risk/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Direction: {data['flow_direction']}")
print(f"GEX shift: {data['flow_gex_pct_shift']:.1%}")
print(data['description'])
const resp = await fetch(
  "https://lab.flashalpha.com/v1/flow/dealer-risk/SPY",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Direction: ${data.flow_direction}`);
console.log(`GEX shift: ${(data.flow_gex_pct_shift * 100).toFixed(1)}%`);
console.log(data.description);

Response

{
  "symbol": "SPY",
  "as_of": "2026-05-12T18:42:10Z",
  "underlying_price": 597.505,
  "expiry": "2026-05-15",
  "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,
  "contracts_with_flow": 1820,
  "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

Field Type Description
settled_net_gex / _dexnumberComputed on this morning's OPRA settled OI
live_net_gex / _dexnumberComputed on simulator-effective OI
flow_gex_adjustment / flow_dex_adjustmentnumberlive - settled for GEX and DEX, in USD notional
flow_gex_pct_shift / flow_dex_pct_shiftnumber, nullableadjustment / |settled|. null when the settled value is zero and the live value is non-zero (regime created with no baseline)
total_abs_delta_contractsnumberSum of absolute per-contract effective-OI changes
contracts_with_flownumberNumber of contracts whose effective OI moved
flow_directionstringno_flow, amplifying, dampening, regime_flip, neutral (when absolute percent shift is below 5%)
descriptionstringHuman-readable summary of the shift

Direction Labels

Label Meaning
no_flowSimulator reported zero per-contract movement on every contract. Distinct from neutral so consumers can tell 'no flow yet' from 'flow exists but is small'
amplifyingSame sign as settled, magnitude grew (dealers more exposed)
dampeningSame sign as settled, magnitude shrank (positions resolving)
regime_flipNet GEX changed sign, or a regime was created from a zero baseline
neutralAbsolute percent shift below 5%

About Flow Dealer Risk

Dealer Risk is the join between settled and live: /v1/exposure/summary's dealer-GEX/DEX numbers are anchored to the morning OPRA-broadcast OI, while the live values use the OI simulator's effective open interest. This endpoint returns both sides plus the deltas, percent shifts, contract-flow magnitude, and a single directional label that classifies the shift as amplifying, dampening, regime_flip, or neutral. The description field is the same shift spelled out in plain English.

Common Use Cases

  • Regime-flip alerts - fire when flow_direction becomes regime_flip, signalling net GEX has changed sign and the volatility regime has inverted since the open
  • Flow-direction filter - trade with flow during amplifying, fade or de-risk during dampening, and stand down on neutral or no_flow
  • Quantify intraday repositioning - cite total_abs_delta_contracts and contracts_with_flow as the single magnitude and breadth numbers in a daily desk note
  • Detect a stale snapshot - a high flow_gex_pct_shift or flow_dex_pct_shift tells you the morning settled view has stopped being representative and the live numbers should drive decisions
  • Separate gamma from delta drift - compare flow_gex_adjustment against flow_dex_adjustment to see whether flow is reshaping pinning pressure or directional dealer lean
  • Drop in a pre-built narrative - push description straight into a dashboard tile or chat alert with no formatting work

Related reading

Complementary endpoints

  • Flow Live Bundle - the raw real-time tape that drives the repositioning
  • Flow Summary - rolled-up flow context for the same window
  • Flow GEX - the live flow-adjusted gamma surface by strike
  • Dealer Premium - signed premium flow that complements the Greek-risk view

Ready to build?

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