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
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 / _dex | number | Computed on this morning's OPRA settled OI |
live_net_gex / _dex | number | Computed on simulator-effective OI |
flow_gex_adjustment / flow_dex_adjustment | number | live - settled for GEX and DEX, in USD notional |
flow_gex_pct_shift / flow_dex_pct_shift | number, nullable | adjustment / |settled|. null when the settled value is zero and the live value is non-zero (regime created with no baseline) |
total_abs_delta_contracts | number | Sum of absolute per-contract effective-OI changes |
contracts_with_flow | number | Number of contracts whose effective OI moved |
flow_direction | string | no_flow, amplifying, dampening, regime_flip, neutral (when absolute percent shift is below 5%) |
description | string | Human-readable summary of the shift |
Direction Labels
| Label | Meaning |
|---|---|
no_flow | Simulator reported zero per-contract movement on every contract. Distinct from neutral so consumers can tell 'no flow yet' from 'flow exists but is small' |
amplifying | Same sign as settled, magnitude grew (dealers more exposed) |
dampening | Same sign as settled, magnitude shrank (positions resolving) |
regime_flip | Net GEX changed sign, or a regime was created from a zero baseline |
neutral | Absolute 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_directionbecomesregime_flip - Quantifying intraday repositioning -
total_abs_delta_contractsis the single magnitude number you'd cite in a daily desk note - Pre-built narrative - drop
descriptionstraight into a dashboard tile or chat alert - Flow-direction filter - trade with flow during
amplifying, fade or de-risk duringdampening - Stale-snapshot detection - high
flow_gex_pct_shifttells 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.