Zero-DTE Flow Snapshot API
Current live 0DTE dealer-positioning shape for a symbol, computed on effective OI (settled + intraday simulator delta), returning the full zero-DTE exposure response plus a flow_direction block describing how flow has shifted dealer GEX since open.
Endpoint
X-Api-Key)
Rate Limited: Yes
Growth plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
symbol |
path | yes | - | Underlying symbol (e.g. SPY, SPX, QQQ, IWM) |
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/flow/zero-dte/snapshot/SPY"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/zero-dte/snapshot/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(data["flow_direction"]["label"])
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/zero-dte/snapshot/SPY",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(data.flow_direction.label);
Response
The response is the same JSON shape as /v1/exposure/zero-dte/{symbol} (regime, exposures, expected_move, pin_risk, hedging, decay, vol_context, flow, levels, liquidity, strikes) PLUS an extra flow_direction block. The flow_direction block is shown below.
{
"symbol": "SPY",
"underlying_price": 522.34,
"as_of": "2026-05-27T15:30:12Z",
"market_open": true,
// ...all ZeroDteResponse fields...
"flow_direction": {
"label": "amplifying", // no_flow | neutral | amplifying | dampening | regime_flip
"settled_net_gex": -1.2e9,
"live_net_gex": -1.45e9,
"flow_gex_adjustment": -2.5e8,
"flow_gex_pct_shift": 0.208, // null when settled GEX is 0
"contracts_with_flow": 412,
"total_abs_delta_contracts": 18432,
"description": "Flow has amplified dealer GEX by 20.8% since open. ..."
}
}
Two degraded shapes also return 200 OK so clients can switch on the flags. When the symbol has no 0DTE expiry today: { "symbol": "TSLA", "no_zero_dte": true, "next_zero_dte_expiry": "2026-05-29", "message": "..." }. When the market is closed: { "symbol": "SPY", "session_closed": true, "last_session": "2026-05-23", "message": "..." }.
Key Response Fields
| Field | Type | Description |
|---|---|---|
flow_direction.label | string | One of no_flow, neutral, amplifying, dampening, regime_flip |
flow_direction.settled_net_gex | number | Net GEX from the morning settled OI |
flow_direction.live_net_gex | number | Net GEX on effective (settled + intraday) OI |
flow_direction.flow_gex_adjustment | number | Live minus settled net GEX (the flow contribution) |
flow_direction.flow_gex_pct_shift | number/null | Percent shift in GEX from flow; null when settled GEX is 0 |
flow_direction.contracts_with_flow | integer | Number of contracts that saw intraday flow |
flow_direction.total_abs_delta_contracts | integer | Total absolute intraday delta contracts |
flow_direction.description | string | Human-readable summary of the flow shift |
Errors
| Status | Description |
|---|---|
403 | tier_restricted - caller's plan is below Growth |
404 | symbol_not_found - symbol is unknown or has no live data |
About
The Zero-DTE Flow snapshot gives a live, intraday-aware view of today's 0DTE dealer-positioning landscape. It is computed on effective OI - settled open interest plus the simulator's intraday delta - so the response reflects how dealer GEX has shifted since open.
This differs from /v1/exposure/zero-dte/, which uses the morning OPRA broadcast and goes stale by 10:30 AM ET. The added flow_direction block summarizes whether intraday flow is amplifying, dampening, or flipping the morning regime.
Common Use Cases
- Read the live 0DTE regime from
live_net_gexwithout the 10:30 AM staleness of the settled exposure endpoint, switching strategy on its sign - Check
flow_direction.labelto see whether intraday flow isamplifying,dampening, or producing aregime_flipof dealer GEX, and gate trade-with versus fade decisions on it - Quantify the flow contribution with
flow_gex_adjustmentandflow_gex_pct_shiftto judge how far the morning settled view has drifted - Lean on the embedded
pin_riskblock alongside the live regime to find the magnet strike price is most likely to settle into at the close - Confirm the move budget with the
expected_moveblock before sizing same-day directional or premium-selling structures - Branch on the
no_zero_dteandsession_closedflags to handle off-session requests or symbols with no 0DTE expiry today
Related
Related reading
- Live 0DTE pin-risk API: the intraday flow-adjusted magnet - how flow-adjusted exposure sharpens the same-day pin read
- Pin-risk score 0-100: how to read the 0DTE pin magnet - interpreting the embedded pin_risk block
Complementary endpoints
- Zero-DTE Flow Series - the same snapshot sampled through the session as a time series
- Zero-DTE Hedge Flow - the dealer hedging pressure driving intraday 0DTE moves
- Zero-DTE Exposure - the settled-OI baseline this snapshot adjusts
- Flow Pin Risk - the standalone flow-adjusted pin magnet
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.