Flow Levels API - Live Gamma Flip, Walls, Max Pain - FlashAlpha Lab API
Lab API Flow Levels

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.

Endpoint

GET /v1/flow/levels/{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/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
symbolstringUnderlying symbol
as_ofstringISO 8601 timestamp
underlying_pricenumberCurrent price of underlying
live_gamma_flipnumberStrike where live net GEX crosses zero (the gamma flip point)
live_call_wallnumberStrike with highest live call GEX - the call wall (resistance)
live_put_wallnumberStrike with highest live put GEX - the put wall (support)
live_max_painnumberMax 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

  • Live wall tracking - watch call/put walls migrate during the session instead of staring at stale morning levels
  • Gamma flip alerts - trigger when the live gamma flip crosses spot
  • Pin-magnet planning - pair live max pain with proximity to set end-of-day targets
  • Setup confirmation - validate a trade idea against live walls before sizing up
  • Settled vs live diff - fetch both endpoints and surface the deltas as a "levels are shifting" signal

Ready to build?

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