Flow DEX API - Live Delta Exposure Per Strike | FlashAlpha
  1. Flow DEX

Flow DEX API

Live delta exposure: net total and per-strike profile, computed on effective OI.

Endpoint

GET /v1/flow/dex/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Plan: Growth+

Parameters

Name In Type Required Default Description
symbol path string required - Underlying symbol
expiry query date all expiries Filter chain to a single expiry (yyyy-MM-dd). Omit to aggregate across all expiries. Invalid values return 400 invalid_expiry.
Works with CME futures. Pass ES=F or NQ=F and URL-encode the = as %3D - e.g. /v1/flow/dex/ES%3DF. Flow analytics recompute on intraday effective OI; options-on-futures are priced with Black-76 ($50/pt ES, $20/pt NQ). CME futures and flow are Growth plan. See the futures hub.

Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/flow/dex/SPY"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/flow/dex/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
resp.raise_for_status()
data = resp.json()
print(f"Live net DEX: ${data['live_net_dex']:,.0f}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/flow/dex/SPY",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();
console.log(`Live net DEX: $${data.live_net_dex.toLocaleString()}`);

Try it live

Runs on live market data and uses 1 request from your daily quota.

GET

Response

{
  "symbol": "SPY",
  "as_of": "2026-10-30T13:45:43.8290563Z",
  "underlying_price": 760.425,
  "expiry": null,
  "live_net_dex": -30692234816,
  "strikes": [
    {
      "strike": 50,
      "call_dex": 5036089,
      "put_dex": -175043.24,
      "net_dex": 4861045
    },
    {
      "strike": 55,
      "call_dex": 149360.62,
      "put_dex": -3324.12,
      "net_dex": 146036.5
    }
  ],
  "endpoint_version": "2026.09.30",
  "data_as_of": {
    "node": "fa5",
    "equity_feed": "2026-10-30T13:45:43.822Z",
    "equity_options_feed": "2026-10-30T13:45:43Z",
    "index_feed": "2026-10-30T13:45:43.102Z",
    "index_options_feed": "2026-10-30T13:45:42Z",
    "futures_feed": "2026-10-30T13:45:28.31Z",
    "futures_options_feed": "2026-10-30T13:45:27.486Z",
    "flow_feed": "2026-10-30T13:45:00Z",
    "oi_feed": "2026-10-29T20:00:00Z",
    "macro_feed": "2026-10-29T21:00:20Z"
  }
}

Sending request…

See this endpoint on live data

Send this exact request and the real response shows up here, right next to the example.

Response Fields

Field Type Description
symbolstringUnderlying symbol
as_ofstringISO 8601 timestamp
underlying_pricenumberCurrent price of underlying
live_net_dexnumberNet delta exposure across strikes, computed on effective OI
strikesarrayPer-strike call DEX, put DEX, and net DEX on effective OI
expirystring | nullThe expiry filter from the request, null when it was omitted
strikes[].strikenumberStrike price
strikes[].call_dexnumberCall delta exposure (USD)
strikes[].put_dexnumberPut delta exposure (USD)
strikes[].net_dexnumberNet delta exposure (USD)
endpoint_version, data_as_ofstring, objectResponse envelope, see Response envelope.

Errors

Status Error When
400invalid_expiryexpiry is not a valid yyyy-MM-dd date.
401-Missing or invalid X-Api-Key. The body is empty; check the status code before parsing JSON.
403tier_restrictedYour plan is below Growth. The body includes current_plan and required_plan.
404no_dataNo data for the symbol.
429Quota exceededDaily quota used up. Retry-After gives the seconds until the reset at 00:00 UTC. Rejected requests (including 403) count toward the quota.

About Flow DEX

Flow DEX is the live counterpart to /v1/exposure/dex. The settled version uses morning OPRA-broadcast OI and stays frozen all day; this endpoint runs the same delta-exposure math on the OI simulator's effective open interest, so net DEX and the per-strike profile keep moving as positioning shifts. Use it to track directional dealer hedging pressure in real time.

Common Use Cases

  • Read directional bias off live_net_dex - track the sign and magnitude intraday and flag the moment net DEX flips, marking a shift in net dealer directional positioning
  • Estimate hedging flow with GEX - combine live_net_dex with live net GEX to size the share volume dealers must trade to stay delta-neutral as spot moves
  • Detect skew from per-strike DEX - compare strikes[].call_dex vs strikes[].put_dex to surface call-skewed (upside-chasing) or put-skewed (downside-hedged) positioning
  • Locate the directional center of gravity - scan strikes[].net_dex for the strikes carrying the heaviest directional exposure that price tends to gravitate around
  • Diff against settled DEX - contrast net and per-strike DEX with /v1/exposure/dex to see where directional positioning has actually moved since the open
  • Confirm GEX signals - use the DEX direction to corroborate a regime read from Live Flow GEX before committing to a directional trade

Related reading

Complementary endpoints

  • Delta Exposure (DEX) - the settled morning baseline to diff this live DEX against
  • Live Flow GEX - live gamma to pair with directional delta exposure
  • Live Flow Levels - walls and flip that frame where directional pressure builds
  • Flow Summary - a one-call digest of live positioning across the flow endpoints

Ready to build with FlashAlpha?

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

No credit card required Setup in 60 seconds Secure & reliable