Flow Levels API
Live, intraday-adjusted versions of the key technical levels: gamma flip, call wall, put wall, and max pain - recomputed on effective OI.
ES=F or NQ=F and URL-encode the = as %3D — e.g. /v1/flow/levels/ES%3DF. Flow analytics recompute on intraday effective OI; options-on-futures are priced with Black-76 ($50/pt ES, $20/pt NQ). CME index futures and flow are Growth-tier. See the futures hub.
Endpoint
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/levels/SPY"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/flow/levels/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Live gamma flip: {data['live_gamma_flip']}")
print(f"Live call wall: {data['live_call_wall']}")
print(f"Live put wall: {data['live_put_wall']}")
const resp = await fetch(
"https://lab.flashalpha.com/v1/flow/levels/SPY",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Live gamma flip: ${data.live_gamma_flip}`);
console.log(`Live call wall: ${data.live_call_wall}`);
console.log(`Live put wall: ${data.live_put_wall}`);
Response
{
"symbol": "SPY",
"as_of": "2026-05-12T18:42:10Z",
"underlying_price": 597.505,
"expiry": "2026-05-15",
"live_gamma_flip": 595.50,
"live_call_wall": 600.0,
"live_put_wall": 595.0,
"live_max_pain": 597.0
}
Key Response Fields
| Field | Type | Description |
|---|---|---|
symbol | string | Underlying symbol |
as_of | string | ISO 8601 timestamp |
underlying_price | number | Current price of underlying |
live_gamma_flip | number | Strike where live net GEX crosses zero (the gamma flip point) |
live_call_wall | number | Strike with highest live call GEX - the call wall (resistance) |
live_put_wall | number | Strike with highest live put GEX - the put wall (support) |
live_max_pain | number | Max pain strike using effective OI |
Any field may be null if the underlying profile cannot resolve it (e.g., no gamma flip exists in the strike range).
About Flow Levels
Flow Levels returns the live versions of the four key technical levels traders anchor to: gamma flip, call wall, put wall, and max pain. The settled versions in /v1/exposure/levels are computed on the morning OPRA-broadcast OI and stay fixed all session. This endpoint runs the same level-detection logic on the OI simulator's effective OI, so when a wall starts losing OI or a new strike accumulates positioning, the levels move with it. Same definitions, intraday-adjusted inputs.
Common Use Cases
- Trade against live walls, not stale ones - read
live_call_wallas intraday resistance andlive_put_wallas support, and re-anchor entries/targets as they migrate off the morning levels - Flip regime on
live_gamma_flip- fade extensions and trade mean-reversion above it; respect momentum and trend below it, switching bias the moment spot crosses the live flip - Alert when the flip crosses spot - diff
live_gamma_flipagainstunderlying_priceand fire when the sign flips, catching the dampening-to-amplifying handoff in real time - Set EOD targets on
live_max_pain- treat the live max pain strike as the close-of-day magnet and plan exits toward it as expiry approaches - Confirm setups before sizing up - validate a long against a nearby
live_put_wallor a short againstlive_call_wallso you only press trades the dealer book supports - Surface a "levels are shifting" signal - diff each live field against the settled
/v1/exposure/levelsvalues and flag the largest deltas as early evidence of intraday repositioning - Handle null levels gracefully - any field can be
nullwhen the profile can't resolve it (e.g. no flip in range), so gate dependent logic instead of assuming a number
Related
Related reading
- Intraday gamma-flip tracker: live flow levels - build a session-long tracker on these exact fields
- Live GEX vs settled GEX explained - why effective-OI levels move while the morning ones stay frozen
Complementary endpoints
- Key Levels - the settled morning baseline to diff these live levels against
- Live Flow GEX - the per-strike profile these walls and the flip are derived from
- Flow Pin Risk - scores how strongly price is being pulled toward the live max-pain magnet
- Live Flow DEX - directional dealer positioning to pair with the gamma walls
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.