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-12
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-12 92 133
AAL 2018-01-02 2026-10-12 2,204 3,206
AAPL 2017-06-26 2026-10-12 2,330 3,396
ABBV 2026-06-02 2026-10-12 92 133
ABNB 2026-06-02 2026-10-12 92 133
AEP 2026-06-02 2026-10-12 92 133
AMC 2018-01-02 2026-10-12 2,163 3,206
AMD 2017-01-03 2026-10-12 2,455 3,570
AMGN 2026-06-02 2026-10-12 92 133
AMT 2026-06-02 2026-10-12 92 133
AMZN 2017-01-03 2026-10-12 2,370 3,570
ANET 2026-06-02 2026-10-12 92 133
ARKK 2018-05-30 2026-10-12 1,987 3,058
ARM 2023-10-11 2026-10-12 753 1,098
AVGO 2018-01-02 2026-10-12 2,204 3,206
BA 2026-06-02 2026-10-12 92 133
BABA 2018-01-02 2026-10-12 2,201 3,206
BAC 2018-01-02 2026-10-12 2,204 3,206
BHP 2026-06-02 2026-10-12 92 133
BIDU 2026-06-02 2026-10-12 92 133
BIIB 2026-06-02 2026-10-12 92 133
BMY 2026-06-02 2026-10-12 92 133
BNTX 2026-06-02 2026-10-12 92 133
C 2026-06-02 2026-10-12 92 133
CAT 2018-01-02 2026-10-12 2,204 3,206
CCI 2026-06-02 2026-10-12 92 133
CCJ 2026-06-02 2026-10-12 92 133
CCL 2026-06-02 2026-10-12 92 133
CI 2026-06-02 2026-10-12 92 133
CLF 2026-06-02 2026-10-12 92 133
COIN 2021-04-20 2026-10-12 1,376 2,002
COP 2026-06-02 2026-10-12 92 133
COST 2018-01-02 2026-10-12 2,204 3,206
CRWD 2021-08-16 2026-10-12 1,294 1,884
CSCO 2026-06-02 2026-10-12 92 133
CVNA 2026-06-02 2026-10-12 92 133
CVS 2026-06-02 2026-10-12 92 133
CVX 2026-06-02 2026-10-12 92 133
D 2026-06-02 2026-10-12 79 133
DASH 2026-06-02 2026-10-12 92 133
DDOG 2019-10-07 2026-10-12 1,761 2,563
DE 2018-01-02 2026-10-12 2,204 3,206
DG 2026-06-02 2026-10-12 92 133
DHI 2026-06-02 2026-10-12 92 133
DIS 2026-06-02 2026-10-12 92 133
DKNG 2026-06-02 2026-10-12 92 133
DLR 2026-06-02 2026-10-12 92 133
DLTR 2026-06-02 2026-10-12 92 133
DOCU 2026-06-02 2026-10-12 92 133
DUK 2026-06-02 2026-10-12 92 133
DVN 2026-06-02 2026-10-12 92 133
EEM 2018-01-02 2026-10-12 2,204 3,206
ELV 2026-06-02 2026-10-12 92 133
ENPH 2026-06-02 2026-10-12 92 133
EOG 2026-06-02 2026-10-12 92 133
EQIX 2026-06-02 2026-10-12 92 133
EXC 2026-06-02 2026-10-12 80 133
F 2018-01-02 2026-10-12 2,204 3,206
FCX 2026-06-02 2026-10-12 92 133
FSLR 2026-06-02 2026-10-12 92 133
FXI 2026-06-02 2026-10-12 91 133
GD 2026-06-02 2026-10-12 92 133
GDX 2018-01-02 2026-09-18 2,188 3,182
GE 2026-06-02 2026-10-12 92 133
GILD 2026-06-02 2026-10-12 92 133
GLD 2018-01-02 2026-10-12 2,204 3,206
GM 2026-06-02 2026-10-12 92 133
GME 2018-01-02 2026-10-12 2,177 3,206
GOOG 2017-01-03 2026-10-12 2,456 3,570
GOOGL 2018-05-31 2026-10-12 2,102 3,057
HAL 2026-06-02 2026-10-12 92 133
HD 2026-06-02 2026-10-12 92 133
HON 2026-06-02 2026-10-12 90 133
HOOD 2021-08-04 2026-10-12 1,302 1,896
HUM 2026-06-02 2026-10-12 92 133
HYG 2018-01-02 2026-10-07 2,033 3,201
IBB 2026-06-02 2026-10-12 92 133
IBIT 2024-11-20 2026-10-12 473 692
INTC 2017-01-03 2026-10-12 2,456 3,570
IRM 2026-06-02 2026-10-12 92 133
ITB 2026-06-02 2026-10-12 92 133
IWM 2017-01-03 2026-10-12 2,455 3,570
JD 2026-06-02 2026-10-12 92 133
JNJ 2026-06-02 2026-10-12 92 133
JPM 2026-06-02 2026-10-12 92 133
KDP 2026-06-03 2026-10-12 68 132
KO 2026-06-02 2026-10-12 92 133
KR 2026-06-02 2026-10-12 92 133
KRE 2018-01-02 2026-10-12 2,203 3,206
KWEB 2018-01-02 2026-10-12 2,203 3,206
LABU 2026-06-02 2026-10-12 92 133
LCID 2021-07-26 2026-10-12 1,286 1,905
LEN 2026-06-02 2026-10-12 92 133
LI 2026-06-02 2026-10-12 92 133
LLY 2018-01-02 2026-10-12 2,050 3,206
LMT 2018-01-02 2026-10-12 2,050 3,206
LOW 2026-06-02 2026-10-12 92 133
LULU 2026-06-02 2026-10-12 92 133
MARA 2020-08-13 2026-10-12 1,492 2,252
MCD 2026-06-02 2026-10-12 92 133
MDB 2018-03-13 2026-10-12 2,016 3,136
META 2021-07-13 2026-10-12 1,315 1,918
MMM 2026-06-02 2026-10-12 92 133
MPC 2026-06-02 2026-10-12 92 133
MRK 2026-06-02 2026-10-12 92 133
MRNA 2026-06-02 2026-10-12 92 133
MSFT 2017-01-03 2026-10-12 2,456 3,570
MSTR 2017-01-03 2026-10-12 2,446 3,570
MU 2018-01-02 2026-10-12 2,204 3,206
NEE 2026-06-02 2026-10-12 92 133
NET 2026-06-02 2026-10-12 92 133
NFLX 2017-01-03 2026-10-12 2,456 3,570
NIO 2026-06-02 2026-10-12 92 133
NKE 2026-06-02 2026-10-12 92 133
NOC 2026-06-02 2026-10-12 92 133
NRG 2026-06-02 2026-10-12 92 133
NUE 2026-06-02 2026-10-12 92 133
NVDA 2017-01-03 2026-10-12 2,366 3,570
O 2026-06-02 2026-10-12 92 133
OXY 2026-06-02 2026-10-12 92 133
PANW 2018-01-02 2026-10-12 2,204 3,206
PCG 2026-06-02 2026-10-12 92 133
PDD 2026-06-02 2026-10-12 92 133
PEP 2026-06-02 2026-10-12 92 133
PFE 2018-01-02 2026-10-12 2,203 3,206
PINS 2026-06-02 2026-10-12 92 133
PLD 2026-06-02 2026-10-12 92 133
PLTR 2020-10-06 2026-10-12 1,509 2,198
PLUG 2026-06-02 2026-10-12 92 133
PSA 2026-06-02 2026-10-12 92 133
PYPL 2018-01-02 2026-10-12 2,204 3,206
QQQ 2017-01-03 2026-10-16 2,375 3,574
RIO 2026-06-02 2026-10-12 92 133
RIOT 2026-06-02 2026-10-12 92 133
RIVN 2021-11-16 2026-10-12 1,229 1,792
ROKU 2026-06-02 2026-10-12 92 133
ROST 2026-06-02 2026-10-12 92 133
RTX 2026-06-02 2026-10-12 92 133
RUN 2026-06-02 2026-10-12 92 133
RUT 2018-06-11 2026-09-18 2,079 3,022
SBUX 2026-06-02 2026-10-12 92 133
SCCO 2026-06-02 2026-10-12 92 133
SEDG 2026-06-02 2026-10-12 92 133
SHOP 2026-06-02 2026-10-12 92 133
SLB 2026-06-02 2026-10-12 92 133
SLV 2018-01-02 2026-09-18 2,188 3,182
SMCI 2018-01-02 2026-10-12 1,250 3,206
SMH 2018-01-02 2026-10-12 2,204 3,206
SNAP 2026-06-02 2026-10-12 92 133
SNOW 2020-09-22 2026-10-12 1,519 2,212
SO 2026-06-02 2026-10-12 92 133
SOFI 2021-06-01 2026-10-12 1,346 1,960
SOXL 2018-01-02 2026-10-12 2,204 3,206
SOXS 2026-06-02 2026-10-12 90 133
SPCX 2026-06-17 2026-10-12 81 118
SPX 2022-01-05 2026-10-12 1,194 1,742
SPXU 2026-06-02 2026-10-12 92 133
SPXW 2018-05-16 2026-10-12 2,112 3,072
SPY 2017-01-03 2026-10-12 2,389 3,570
SQQQ 2018-01-02 2026-10-12 2,197 3,206
T 2017-01-03 2026-10-12 2,455 3,570
TAN 2026-06-02 2026-10-12 92 133
TGT 2026-06-02 2026-10-12 92 133
TJX 2026-06-02 2026-10-12 92 133
TLT 2017-01-03 2026-10-12 2,456 3,570
TOL 2026-06-02 2026-10-12 92 133
TQQQ 2018-01-02 2026-10-12 2,204 3,206
TSLA 2017-01-03 2026-10-12 2,455 3,570
TSM 2018-01-02 2026-10-12 2,157 3,206
TTD 2026-06-02 2026-10-12 92 133
U 2026-06-02 2026-10-12 92 133
UBER 2019-05-16 2026-09-18 1,844 2,683
UNG 2026-06-02 2026-10-12 92 133
UNH 2018-01-02 2026-10-12 2,204 3,206
UPRO 2026-06-02 2026-10-12 92 133
URA 2026-06-02 2026-10-12 92 133
USO 2018-01-02 2026-10-12 2,203 3,206
UVXY 2026-06-02 2026-10-12 92 133
VALE 2026-06-02 2026-10-12 92 133
VICI 2026-06-04 2026-10-12 66 131
VIX 2022-01-03 2026-10-12 1,198 1,744
VLO 2026-06-02 2026-10-12 92 133
VNQ 2026-06-02 2026-10-12 89 133
VST 2026-06-02 2026-10-12 92 133
VXX 2026-06-02 2026-10-12 92 133
VZ 2026-06-02 2026-10-12 92 133
WBD 2022-04-11 2026-10-02 1,093 1,636
WFC 2026-06-02 2026-10-12 92 133
WMT 2018-01-02 2026-10-12 2,204 3,206
WY 2026-06-02 2026-10-12 73 133
XBI 2026-06-02 2026-10-12 92 133
XHB 2026-06-02 2026-10-12 92 133
XLB 2026-06-02 2026-10-12 87 133
XLE 2018-01-02 2026-10-12 2,203 3,206
XLF 2018-01-02 2026-10-12 2,155 3,206
XLI 2026-06-02 2026-10-12 92 133
XLK 2018-01-02 2026-10-12 2,204 3,206
XLP 2026-06-02 2026-10-12 92 133
XLU 2026-06-02 2026-10-12 92 133
XLV 2026-06-02 2026-10-12 91 133
XLY 2026-06-02 2026-10-12 90 133
XOM 2026-06-02 2026-10-12 92 133
XOP 2018-01-02 2026-10-12 2,203 3,206
XPEV 2026-06-02 2026-10-12 92 133
XSP 2018-01-02 2026-10-12 2,203 3,206
XYZ 2026-06-02 2026-10-12 92 133
ZM 2026-06-02 2026-10-12 92 133
ZS 2026-06-02 2026-10-12 92 133

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