Flow OI API - Raw OI Simulator State - FlashAlpha Lab API
Lab API Flow OI

Flow OI API

Raw OI simulator state: official, simulated, and effective open interest, plus intraday delta and the simulator's confidence weight.

Endpoint

GET /v1/flow/oi/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Alpha 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/oi/SPY"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/flow/oi/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Official OI:  {data['official_oi']:,}")
print(f"Effective OI: {data['effective_oi']:,}")
print(f"Intraday delta: {data['intraday_oi_delta']:,}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/flow/oi/SPY",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`Official OI:  ${data.official_oi.toLocaleString()}`);
console.log(`Effective OI: ${data.effective_oi.toLocaleString()}`);
console.log(`Intraday delta: ${data.intraday_oi_delta.toLocaleString()}`);

Response

{
  "symbol": "SPY",
  "as_of": "2026-05-12T18:42:10Z",
  "expiry": "2026-05-15",
  "official_oi": 14820000,
  "simulated_oi": 14832450,
  "intraday_oi_delta": 12450,
  "oi_delta_confidence": 0.43,
  "effective_oi": 14835100,
  "contracts_total": 5240,
  "contracts_with_flow": 1820
}

Key Response Fields

Field Type Description
official_oinumberSum of morning OPRA-broadcast OI across the chain
simulated_oinumberofficial + intraday_oi_delta aggregated (unclamped, surfaces overshoot)
intraday_oi_deltanumberSum of the simulator's signed per-contract delta. Never reconstructed from (effective - official) - that loses magnitude when a per-contract value overshot zero and got clamped
oi_delta_confidencenumberPer-trade confidence weight applied by the upstream simulator (currently 0.43)
effective_oinumberSum of per-contract max(0, official + delta) - what the analytics endpoints actually consume
contracts_with_flownumberNumber of contracts where intraday_delta != 0

effective_oi can differ from max(0, simulated_oi) because the clamp is applied per-contract before aggregation.


About Flow OI

Flow OI exposes the raw simulator state that powers the rest of the /v1/flow/* family. official_oi matches the morning OPRA-broadcast OI used by the settled /v1/exposure/* endpoints. effective_oi is the per-contract clamped quantity the live analytics consume, and simulated_oi is the unclamped aggregate, which can deviate when sell pressure overshoots a contract's OI to zero. The intraday_oi_delta is the true signed sum from the simulator and intentionally cannot be reconstructed from (effective - official) - use this field if you're building your own analytics on top of the simulator.

Common Use Cases

  • Build custom analytics - drive your own GEX/DEX or pin-risk variants off effective_oi, the same per-contract clamped quantity the live Flow endpoints consume
  • Audit and reconcile - surface the gap between official_oi, simulated_oi, and effective_oi to catch overshoot or clamping artefacts before they reach exposure numbers
  • Read directional flow - the sign of intraday_oi_delta shows whether the day is net opening or net closing interest, the input to opening-vs-closing bias
  • Weight by confidence - scale signal size by oi_delta_confidence and de-rate the read when the simulator is less certain about the intraday delta
  • Gauge session breadth - contracts_with_flow / contracts_total is a rough activity-heat measure for how much of the chain is repositioning
  • Power research workflows - pair with historical exposure snapshots to study how intraday OI flow predicts end-of-day positioning

Related reading

Complementary endpoints

  • OI Diff - day-over-day open-interest changes by strike
  • Flow Live Bundle - the raw real-time tape feeding the simulator
  • Flow GEX - live flow-adjusted gamma built on this effective OI

Ready to build with FlashAlpha?

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

No credit card required Setup in 60 seconds Secure & reliable