Historical API Historical GEX
ALPHA TIER HISTORICAL

Historical GEX Data API

Query gamma exposure by strike at any minute since January 2017. Same response shape as the live /v1/exposure/gex endpoint - just add an at= timestamp to replay GEX, gamma flip, call/put walls, and dealer hedging from any historical moment.

Coverage
2026-06-02 → 2026-10-09
Granularity
1 minute
Dataset Size
80B+ option rows
Format
JSON (REST)
New to GEX? What is gamma exposure? covers the formula and dealer hedging mechanics. For backtest patterns: backtesting GEX-regime strategies.

Endpoint

GET /v1/exposure/gex/{symbol}?at=...
Host: historical.flashalpha.com Auth: X-Api-Key Tier: Alpha

Parameters

NameInRequiredDefaultDescription
symbolpathyes-Underlying symbol (e.g. SPY)
atqueryyes-As-of timestamp. yyyy-MM-ddTHH:mm:ss for minute resolution, or yyyy-MM-dd (defaults to 16:00 ET close). Treated as ET wall-clock.
expirationquerynoallFilter to a single expiry (yyyy-MM-dd)
min_oiqueryno0Minimum open interest threshold

The at Parameter

Every historical endpoint hangs off at - the as-of timestamp. Greeks and spot are stored at 1-minute resolution (9:30→16:00 ET) and resolved with a LATEST ON per-contract query, so any at within the trading day returns the contract state as of that minute. Open interest is EOD and applies to all intraday timestamps for that day.

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://historical.flashalpha.com/v1/exposure/gex/SPY?at=2020-03-16T15:30:00"
import httpx, pandas as pd
from tqdm import tqdm

# Replay net GEX at 15:30 ET for every trading day in 2024
dates = pd.bdate_range("2024-01-02", "2024-12-31")
rows  = []
for d in tqdm(dates):
    at = d.strftime("%Y-%m-%dT15:30:00")
    r  = httpx.get(
        f"https://historical.flashalpha.com/v1/exposure/gex/SPY?at={at}",
        headers={"X-Api-Key": "YOUR_API_KEY"}, timeout=10
    )
    if r.status_code == 200:
        j = r.json()
        rows.append({"date": d, "net_gex": j["net_gex"], "flip": j["gamma_flip"]})
df = pd.DataFrame(rows)
const at = "2020-03-16T15:30:00";  // COVID crash, 15:30 ET
const r  = await fetch(
  `https://historical.flashalpha.com/v1/exposure/gex/SPY?at=${at}`,
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const j = await r.json();
console.log(`Net GEX: $${j.net_gex.toLocaleString()}`);
console.log(`Regime:  ${j.net_gex_label}`);
console.log(`Flip:    ${j.gamma_flip}`);

Response

Identical shape to the live /v1/exposure/gex endpoint, with two extra fields (as_of, as_of_requested) that echo the resolved timestamp.

{
  "symbol": "SPY",
  "underlying_price": 246.01,
  "as_of": "2020-03-16T15:30:00",
  "as_of_requested": "2020-03-16T15:30:00",
  "gamma_flip": 270.92,
  "net_gex": -2633970601,
  "net_gex_label": "negative",
  "strikes": [
    {
      "strike": 240,
      "call_gex": 145210000,
      "put_gex": 88420000,
      "net_gex": 233630000,
      "call_oi": 14211,
      "put_oi": 38820,
      "call_volume": 0,
      "put_volume": 0,
      "call_oi_change": null,
      "put_oi_change": null
    }
  ]
}

Granularity: spot, greeks, and per-strike GEX are minute-level; OI is EOD-stamped (one value per trade day, applied across all intraday at=). Per-strike volume and prior-day OI deltas are not stored at minute granularity.

What This Unlocks

  • Backtest GEX-regime strategies - pull regime labels at 15:30 ET for every day in your test window, join forward returns, measure edge. Walkthrough →
  • Replay specific events - what did dealer positioning look like at 15:30 ET on the COVID crash (2020-03-16, -12%)? GameStop squeeze (2021-01-27)? SVB collapse (2023-03-13)?
  • Train ML models on minute-level GEX features without lookahead bias - every at resolves with point-in-time semantics.
  • Validate GEX research from blogs / papers against the actual historical sequence.
  • Build dashboards that overlay historical gamma flip vs price for any day or window.

Coverage - Supported Tickers

Live coverage pulled from GET /v1/tickers. Additional symbols backfill on demand for Alpha customers (typically <48h).

SymbolFirst dateLast dateHealthy daysTotal days
AA 2026-06-02 2026-10-09 91 130
AAL 2018-01-02 2026-10-09 2,203 3,203
AAPL 2017-06-26 2026-10-09 2,329 3,393
ABBV 2026-06-02 2026-10-09 91 130
ABNB 2026-06-02 2026-10-09 91 130
AEP 2026-06-02 2026-10-09 91 130
AMC 2018-01-02 2026-10-09 2,162 3,203
AMD 2017-01-03 2026-10-09 2,454 3,567
AMGN 2026-06-02 2026-10-09 91 130
AMT 2026-06-02 2026-10-09 91 130
AMZN 2017-01-03 2026-10-09 2,369 3,567
ANET 2026-06-02 2026-10-09 91 130
ARKK 2018-05-30 2026-10-09 1,986 3,055
ARM 2023-10-11 2026-10-09 752 1,095
AVGO 2018-01-02 2026-10-09 2,203 3,203
BA 2026-06-02 2026-10-09 91 130
BABA 2018-01-02 2026-10-09 2,200 3,203
BAC 2018-01-02 2026-10-09 2,203 3,203
BHP 2026-06-02 2026-10-09 91 130
BIDU 2026-06-02 2026-10-09 91 130
BIIB 2026-06-02 2026-10-09 91 130
BMY 2026-06-02 2026-10-09 91 130
BNTX 2026-06-02 2026-10-09 91 130
C 2026-06-02 2026-10-09 91 130
CAT 2018-01-02 2026-10-09 2,203 3,203
CCI 2026-06-02 2026-10-09 91 130
CCJ 2026-06-02 2026-10-09 91 130
CCL 2026-06-02 2026-10-09 91 130
CI 2026-06-02 2026-10-09 91 130
CLF 2026-06-02 2026-10-09 91 130
COIN 2021-04-20 2026-10-09 1,375 1,999
COP 2026-06-02 2026-10-09 91 130
COST 2018-01-02 2026-10-09 2,203 3,203
CRWD 2021-08-16 2026-10-09 1,293 1,881
CSCO 2026-06-02 2026-10-09 91 130
CVNA 2026-06-02 2026-10-09 91 130
CVS 2026-06-02 2026-10-09 91 130
CVX 2026-06-02 2026-10-09 91 130
D 2026-06-02 2026-10-09 78 130
DASH 2026-06-02 2026-10-09 91 130
DDOG 2019-10-07 2026-10-09 1,760 2,560
DE 2018-01-02 2026-10-09 2,203 3,203
DG 2026-06-02 2026-10-09 91 130
DHI 2026-06-02 2026-10-09 91 130
DIS 2026-06-02 2026-10-09 91 130
DKNG 2026-06-02 2026-10-09 91 130
DLR 2026-06-02 2026-10-09 91 130
DLTR 2026-06-02 2026-10-09 91 130
DOCU 2026-06-02 2026-10-09 91 130
DUK 2026-06-02 2026-10-09 91 130
DVN 2026-06-02 2026-10-09 91 130
EEM 2018-01-02 2026-10-09 2,203 3,203
ELV 2026-06-02 2026-10-09 91 130
ENPH 2026-06-02 2026-10-09 91 130
EOG 2026-06-02 2026-10-09 91 130
EQIX 2026-06-02 2026-10-09 91 130
EXC 2026-06-02 2026-10-09 79 130
F 2018-01-02 2026-10-09 2,203 3,203
FCX 2026-06-02 2026-10-09 91 130
FSLR 2026-06-02 2026-10-09 91 130
FXI 2026-06-02 2026-10-09 90 130
GD 2026-06-02 2026-10-09 91 130
GDX 2018-01-02 2026-09-18 2,188 3,182
GE 2026-06-02 2026-10-09 91 130
GILD 2026-06-02 2026-10-09 91 130
GLD 2018-01-02 2026-10-09 2,203 3,203
GM 2026-06-02 2026-10-09 91 130
GME 2018-01-02 2026-10-09 2,176 3,203
GOOG 2017-01-03 2026-10-09 2,455 3,567
GOOGL 2018-05-31 2026-10-09 2,101 3,054
HAL 2026-06-02 2026-10-09 91 130
HD 2026-06-02 2026-10-09 91 130
HON 2026-06-02 2026-10-09 89 130
HOOD 2021-08-04 2026-10-09 1,301 1,893
HUM 2026-06-02 2026-10-09 91 130
HYG 2018-01-02 2026-10-07 2,033 3,201
IBB 2026-06-02 2026-10-09 91 130
IBIT 2024-11-20 2026-10-09 472 689
INTC 2017-01-03 2026-10-09 2,455 3,567
IRM 2026-06-02 2026-10-09 91 130
ITB 2026-06-02 2026-10-09 91 130
IWM 2017-01-03 2026-10-09 2,454 3,567
JD 2026-06-02 2026-10-09 91 130
JNJ 2026-06-02 2026-10-09 91 130
JPM 2026-06-02 2026-10-09 91 130
KDP 2026-06-03 2026-10-09 67 129
KO 2026-06-02 2026-10-09 91 130
KR 2026-06-02 2026-10-09 91 130
KRE 2018-01-02 2026-10-09 2,202 3,203
KWEB 2018-01-02 2026-10-09 2,202 3,203
LABU 2026-06-02 2026-10-09 91 130
LCID 2021-07-26 2026-10-09 1,285 1,902
LEN 2026-06-02 2026-10-09 91 130
LI 2026-06-02 2026-10-09 91 130
LLY 2018-01-02 2026-10-09 2,049 3,203
LMT 2018-01-02 2026-10-09 2,049 3,203
LOW 2026-06-02 2026-10-09 91 130
LULU 2026-06-02 2026-10-09 91 130
MARA 2020-08-13 2026-10-09 1,491 2,249
MCD 2026-06-02 2026-10-09 91 130
MDB 2018-03-13 2026-10-09 2,015 3,133
META 2021-07-13 2026-10-09 1,314 1,915
MMM 2026-06-02 2026-10-09 91 130
MPC 2026-06-02 2026-10-09 91 130
MRK 2026-06-02 2026-10-09 91 130
MRNA 2026-06-02 2026-10-09 91 130
MSFT 2017-01-03 2026-10-09 2,455 3,567
MSTR 2017-01-03 2026-10-09 2,445 3,567
MU 2018-01-02 2026-10-09 2,203 3,203
NEE 2026-06-02 2026-10-09 91 130
NET 2026-06-02 2026-10-09 91 130
NFLX 2017-01-03 2026-10-09 2,455 3,567
NIO 2026-06-02 2026-10-09 91 130
NKE 2026-06-02 2026-10-09 91 130
NOC 2026-06-02 2026-10-09 91 130
NRG 2026-06-02 2026-10-09 91 130
NUE 2026-06-02 2026-10-09 91 130
NVDA 2017-01-03 2026-10-09 2,365 3,567
O 2026-06-02 2026-10-09 91 130
OXY 2026-06-02 2026-10-09 91 130
PANW 2018-01-02 2026-10-09 2,203 3,203
PCG 2026-06-02 2026-10-09 91 130
PDD 2026-06-02 2026-10-09 91 130
PEP 2026-06-02 2026-10-09 91 130
PFE 2018-01-02 2026-10-09 2,202 3,203
PINS 2026-06-02 2026-10-09 91 130
PLD 2026-06-02 2026-10-09 91 130
PLTR 2020-10-06 2026-10-09 1,508 2,195
PLUG 2026-06-02 2026-10-09 91 130
PSA 2026-06-02 2026-10-09 91 130
PYPL 2018-01-02 2026-10-09 2,203 3,203
QQQ 2017-01-03 2026-10-09 2,370 3,567
RIO 2026-06-02 2026-10-09 91 130
RIOT 2026-06-02 2026-10-09 91 130
RIVN 2021-11-16 2026-10-09 1,228 1,789
ROKU 2026-06-02 2026-10-09 91 130
ROST 2026-06-02 2026-10-09 91 130
RTX 2026-06-02 2026-10-09 91 130
RUN 2026-06-02 2026-10-09 91 130
RUT 2018-06-11 2026-09-18 2,079 3,022
SBUX 2026-06-02 2026-10-09 91 130
SCCO 2026-06-02 2026-10-09 91 130
SEDG 2026-06-02 2026-10-09 91 130
SHOP 2026-06-02 2026-10-09 91 130
SLB 2026-06-02 2026-10-09 91 130
SLV 2018-01-02 2026-09-18 2,188 3,182
SMCI 2018-01-02 2026-10-09 1,249 3,203
SMH 2018-01-02 2026-10-09 2,203 3,203
SNAP 2026-06-02 2026-10-09 91 130
SNOW 2020-09-22 2026-10-09 1,518 2,209
SO 2026-06-02 2026-10-09 91 130
SOFI 2021-06-01 2026-10-09 1,345 1,957
SOXL 2018-01-02 2026-10-09 2,203 3,203
SOXS 2026-06-02 2026-10-09 89 130
SPCX 2026-06-17 2026-10-09 80 115
SPX 2022-01-05 2026-10-09 1,193 1,739
SPXU 2026-06-02 2026-10-09 91 130
SPXW 2018-05-16 2026-10-09 2,111 3,069
SPY 2017-01-03 2026-10-09 2,388 3,567
SQQQ 2018-01-02 2026-10-09 2,196 3,203
T 2017-01-03 2026-10-09 2,454 3,567
TAN 2026-06-02 2026-10-09 91 130
TGT 2026-06-02 2026-10-09 91 130
TJX 2026-06-02 2026-10-09 91 130
TLT 2017-01-03 2026-10-09 2,455 3,567
TOL 2026-06-02 2026-10-09 91 130
TQQQ 2018-01-02 2026-10-09 2,203 3,203
TSLA 2017-01-03 2026-10-09 2,454 3,567
TSM 2018-01-02 2026-10-09 2,156 3,203
TTD 2026-06-02 2026-10-09 91 130
U 2026-06-02 2026-10-09 91 130
UBER 2019-05-16 2026-09-18 1,844 2,683
UNG 2026-06-02 2026-10-09 91 130
UNH 2018-01-02 2026-10-09 2,203 3,203
UPRO 2026-06-02 2026-10-09 91 130
URA 2026-06-02 2026-10-09 91 130
USO 2018-01-02 2026-10-09 2,202 3,203
UVXY 2026-06-02 2026-10-09 91 130
VALE 2026-06-02 2026-10-09 91 130
VICI 2026-06-04 2026-10-09 65 128
VIX 2022-01-03 2026-10-09 1,197 1,741
VLO 2026-06-02 2026-10-09 91 130
VNQ 2026-06-02 2026-10-09 88 130
VST 2026-06-02 2026-10-09 91 130
VXX 2026-06-02 2026-10-09 91 130
VZ 2026-06-02 2026-10-09 91 130
WBD 2022-04-11 2026-10-02 1,093 1,636
WFC 2026-06-02 2026-10-09 91 130
WMT 2018-01-02 2026-10-09 2,203 3,203
WY 2026-06-02 2026-10-09 72 130
XBI 2026-06-02 2026-10-09 91 130
XHB 2026-06-02 2026-10-09 91 130
XLB 2026-06-02 2026-10-09 86 130
XLE 2018-01-02 2026-10-09 2,202 3,203
XLF 2018-01-02 2026-10-09 2,154 3,203
XLI 2026-06-02 2026-10-09 91 130
XLK 2018-01-02 2026-10-09 2,203 3,203
XLP 2026-06-02 2026-10-09 91 130
XLU 2026-06-02 2026-10-09 91 130
XLV 2026-06-02 2026-10-09 90 130
XLY 2026-06-02 2026-10-09 89 130
XOM 2026-06-02 2026-10-09 91 130
XOP 2018-01-02 2026-10-09 2,202 3,203
XPEV 2026-06-02 2026-10-09 91 130
XSP 2018-01-02 2026-10-09 2,202 3,203
XYZ 2026-06-02 2026-10-09 91 130
ZM 2026-06-02 2026-10-09 91 130
ZS 2026-06-02 2026-10-09 91 130

Errors

StatusCodeWhen
400invalid_atat missing or wrong format
400invalid_expirationexpiration not yyyy-MM-dd
401-Missing or invalid X-Api-Key
403tier_restrictedPlan below Alpha
404no_data(symbol, at) outside coverage window or in a gap
429rate_limitedDaily quota exhausted (shared with live API)

Why Historical GEX Is Hard to Find

Most GEX dashboards show live exposure - useful for today, useless for backtests. The few vendors who store history typically keep EOD aggregates, which collapse the intraday flip and ruin any signal that depends on knowing where dealers stood at 14:00 ET vs 15:30 ET. FlashAlpha's historical service stores minute-level greeks per contract, so the GEX you query at 14:00 on 2020-03-16 is computed from the actual greeks and spot at that minute - not interpolated, not stamped with the close. More on why this is rare →

Related reading

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