Strike Dependency API - Which Expiries Hold a SPY/QQQ Gamma Level - FlashAlpha Lab API
Lab API Strike Dependency

Strike Dependency API

Does a gamma level depend on one maturity? Break one exact SPY or QQQ strike's gross and net gamma into its expiries and see the dominant expiry's share.

Endpoint

GET /v1/exposure/strike-dependency/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Growth plan+

Parameters

Name In Required Default Description
symbolpathyes - SPY or QQQ
strikequeryyes - Exact listed strike, positive. Never snapped to a nearby strike.
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/exposure/strike-dependency/SPY?strike=665"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/exposure/strike-dependency/SPY",
    headers={"X-Api-Key": "YOUR_API_KEY"},
    params={"strike": 665}
)
data = resp.json()
print(f"{data['dominant_expiry']} holds {data['dominant_expiry_share_pct']:.1f}% of the strike's gross gamma")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/exposure/strike-dependency/SPY?strike=665",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(data.dominant_expiry + " holds " + data.dominant_expiry_share_pct.toFixed(1) + "% of the strike gross gamma");

Response

{
  "symbol": "SPY",
  "underlying_price": 663.42,
  "analysis_type": "strike_attribution",
  "pricing_basis": "captured_cached_gamma_current_spot",
  "data_status": "partial",
  "strike": 665,
  "distance_from_spot_pct": 0.24,
  "gross_gex_usd": 610000000,
  "net_gex_usd": 140000000,
  "call_gex_usd": 375000000,
  "put_gex_usd": -235000000,
  "contract_count": 46,
  "by_expiry": [
    { "expiry": "2026-10-16", "calendar_days_to_expiry": 0,
      "gross_gex_usd": 290000000, "net_gex_usd": 90000000, "contract_count": 2,
      "share_of_strike_gross_pct": 47.54,
      "valuation_cutoff_at": "2026-10-16T20:00:00Z", "last_trading_at": "2026-10-16T20:15:00Z",
      "settlement_at": null, "settlement_status": "unknown" }
  ],
  "dominant_expiry": "2026-10-16",
  "dominant_expiry_share_pct": 47.54
}

Key Response Fields

Field Description
gross_gex_usdThe strike's gross GEX across eligible expiries (USD per 1% move), with net_gex_usd, call_gex_usd, put_gex_usd and contract_count.
by_expiry[]One row per expiry at that strike: gross/net/call/put GEX, contract count, share_of_strike_gross_pct, the 16:00 ET valuation_cutoff_at and 16:15 ET last_trading_at. settlement_at stays null: neither clock proves settlement.
dominant_expiryThe expiry with the largest gross share of the strike, and dominant_expiry_share_pct; null when the strike's gross is zero.
distance_from_spot_pct100 × (strike / spot − 1).
data_statusSame provenance and quality fields (reasons[], snapshot_id, timestamps) as expiry impact.

Errors

Status Description
400invalid_strike: missing, not a number, or not positive
403Requires Growth plan or higher
404symbol_not_found, or strike_not_found when the exact strike has no eligible active contracts (body echoes requested_strike)
422unsupported_symbol: only SPY and QQQ are supported
503invalid_spot: no finite positive underlying price

About

A large gamma level can live almost entirely in one expiry. If that expiry rolls off, the level can fade even though nothing about the underlying changed. Strike dependency takes one exact observed strike and breaks its gross and net gamma exposure down by expiry, using the same captured inputs, eligibility rules and units as expiry impact.

The request is never snapped to a nearby strike: an absent strike returns 404 strike_not_found. The dominant expiry share describes concentration at that strike. It is not a support or resistance probability, and the calls-positive / puts-negative sign is a convention, not observed dealer inventory.

Replay the same view at a past minute on historical.flashalpha.com with at= (Alpha). Date-only at resolves to 15:55 ET so same-day Greeks stay defined. See historical trader context.

Common Use Cases

  • Check a wall before expiry - see whether the call or put wall is mostly 0DTE or spread across the term
  • Judge how durable a level is - a level held by several expiries survives one roll-off; a single-expiry level may not
  • Explain a GEX change - compare the strike's expiry mix before and after OPEX
  • Pair with expiry impact - find the strikes that lose the most gamma, then attribute each one

Research

Call and put walls were tested on every 2022-2025 SPY and QQQ session. Once distance to the price was matched, walls held mostly by the expiring expiry did not break reliably more often than other walls.

Related reading

Complementary endpoints

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