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
X-Api-Key)
Rate Limited: Yes
Growth plan+
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
symbol | path | yes | - | SPY or QQQ |
strike | query | yes | - | 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_usd | The 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_expiry | The 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_pct | 100 × (strike / spot − 1). |
data_status | Same provenance and quality fields (reasons[], snapshot_id, timestamps) as expiry impact. |
Errors
| Status | Description |
|---|---|
400 | invalid_strike: missing, not a number, or not positive |
403 | Requires Growth plan or higher |
404 | symbol_not_found, or strike_not_found when the exact strike has no eligible active contracts (body echoes requested_strike) |
422 | unsupported_symbol: only SPY and QQQ are supported |
503 | invalid_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
Related
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.
- Does expiring gamma move the market? - results and method
- Research pack
trader-context-spy-qqq-2022-2025-v2-34105d743fac- data, audit and reproduction (Alpha)
Related reading
- Call wall, put wall and gamma flip explained - how the levels are defined
Complementary endpoints
- Expiry Impact - the chain with one expiry excluded
- Key Levels - locate the walls to attribute
- Gamma Exposure (GEX) - strike-level GEX across the chain