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.

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
  • Quantifying intraday repositioning - total_abs_delta_contracts is the single magnitude number you'd cite in a daily desk note
  • Pre-built narrative - drop description straight into a dashboard tile or chat alert
  • Flow-direction filter - trade with flow during amplifying, fade or de-risk during dampening
  • Stale-snapshot detection - high flow_gex_pct_shift tells you the morning settled view has stopped being representative

Ready to build?

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