Zero-DTE Strike Flow API - Per-Strike Signed Aggressor Flow - FlashAlpha Lab API
Lab API Strike Flow

Zero-DTE Strike Flow API

Per-strike signed aggressor flow over today's 0DTE session - for each bar and each strike, the signed delta-dollars, signed gamma-dollars, and contract count (per-bar increments, not cumulative), as three parallel arrays index-aligned to a top-level strikes_grid.

Endpoint

GET /v1/flow/zero-dte/strike-flow/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Alpha plan+

Parameters

Name In Required Default Description
symbol path yes - Underlying symbol. Trimmed and upper-cased.
bar query no 1m Bar size. Only 1m is supported in this phase (5m/15m are planned); any other value returns 400 bar_unavailable.
minutes query no 60 Lookback window in minutes. Clamped to 1-390.
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/flow/zero-dte/strike-flow/SPY?bar=1m&minutes=120"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/flow/zero-dte/strike-flow/SPY",
    params={"bar": "1m", "minutes": 120},
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(data["strikes_grid"])
const resp = await fetch(
  "https://lab.flashalpha.com/v1/flow/zero-dte/strike-flow/SPY?bar=1m&minutes=120",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(data.strikes_grid);

Response

{
  "symbol": "SPY",
  "underlying_price": 590.42,
  "expiration": "2026-06-05",
  "bar_size": "1m",
  "as_of": "2026-06-05T18:45:12Z",     // UTC
  "tier_used": "raw",
  "strikes_grid": [588, 589, 590, 591, 592],
  "bars": [
    {
      "t": "2026-06-05T18:44:00Z",                    // bar timestamp (UTC)
      "spot": 590.42,
      "signed_delta_dollars": [ -120000, 45000, 880000, 210000, -30000 ],  // per strike
      "signed_gamma_dollars": [ 18000, 24000, 96000, 31000, 9000 ],
      "contracts": [ 1200, 1850, 5400, 2100, 640 ]
    }
    // ... ascending by t
  ],
  "gap_intervals": []
}

No 0DTE samples returns 200 with empty strikes_grid and bars (no flag envelope), same as the series and heatmap endpoints. The gap_intervals array is reserved and not yet populated.

Key Response Fields

Field Type Description
underlying_pricenumberCurrent underlying spot
expirationstringToday's 0DTE expiry (ET)
bar_sizestringEchoes the requested bar size
as_ofstringServer time the response was built (UTC)
tier_usedstringStorage tier the data was read from
strikes_gridarrayStrikes the per-bar arrays are index-aligned to
bars[].tstringBar timestamp (UTC)
bars[].spotnumberUnderlying spot at the bar
bars[].signed_delta_dollarsarrayPer-strike signed delta-dollars (per-bar increment)
bars[].signed_gamma_dollarsarrayPer-strike signed gamma-dollars (per-bar increment)
bars[].contractsarrayPer-strike contract count (per-bar increment)
gap_intervalsarrayReserved for sampler-gap intervals; not yet populated

Errors

Status Description
400bar_unavailable - bar is anything other than 1m
403tier_restricted - caller is below the Alpha plan

About

The strike-flow endpoint returns per-strike signed aggressor flow over today's 0DTE session - for each bar and each strike, the signed delta-dollars, signed gamma-dollars, and contract count, all as per-bar increments (not cumulative).

Each bar carries three parallel arrays, each index-aligned to the top-level strikes_grid - the shape bubble-grid plotters want.

Common Use Cases

  • Plot a bubble grid of signed_delta_dollars by strike and time, index-aligned to strikes_grid, to see where directional flow concentrates
  • Pinpoint which strikes are absorbing the most aggressive flow each minute by scanning the largest-magnitude entries per bar
  • Compare signed_delta_dollars against signed_gamma_dollars to separate directional from convexity flow and infer whether dealers are forced to chase
  • Weight per-strike flow by the contracts count to confirm a move is backed by real participation rather than one large print
  • Watch the strikes nearest underlying_price for a pin tug-of-war as same-day flow piles into the ATM region
  • Detect a sign flip in a strike's signed_delta_dollars across bars as the moment aggressor flow at that level reverses direction

Related reading

Complementary endpoints

Ready to build?

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