Net dealer gamma by strike, the zero-gamma flip, call and put walls, max pain, expected move, live options sweeps and earnings implied moves — for any liquid US ticker. No API key. No account. Just fetch it.
Free gamma-exposure data over an API is genuinely hard to find — most providers put it behind a subscription. This is open because more people using the data is the point. All we ask is a link back.
https://algoxflow.com
Every endpoint is GET, returns JSON, and sets Access-Control-Allow-Origin: * — so it works straight from browser JavaScript with no proxy.
Net dealer gamma exposure by strike, plus the derived levels. The one most people want.
| Field | Type | Meaning |
|---|---|---|
| ticker | string | Echoed symbol |
| spot | number | Last price |
| chgPct | number | Change on the day, percent |
| regime | string | positive or negative net gamma |
| totalGex | number | Net dealer gamma, $ millions per 1% move |
| flip | number|null | Zero-gamma flip — where the cumulative profile crosses zero. null if there's no crossing inside the chain. |
| callWall | number | Strike with the largest positive gamma near spot |
| putWall | number | Strike with the most negative gamma near spot |
| maxPain | number | Strike minimising total intrinsic payout |
| expMove / expMovePct | number | 1σ expected move to the nearest expiry, $ and % |
| atmIv | number | At-the-money implied volatility, whole percent |
| strikes | array | { k: strike, g: gamma $M per 1% }, ascending |
| updated | string | ISO timestamp |
curl "https://algoxflow.com/api/gexmap?ticker=NVDA"
{
"ticker": "NVDA",
"spot": 222.88,
"regime": "positive",
"totalGex": 1214,
"flip": 205.02,
"callWall": 225,
"putWall": 217.5,
"maxPain": 210,
"expMovePct": 1.18,
"strikes": [ { "k": 185, "g": -0.5 }, … ]
}
Today's largest options sweeps bought at the ask, ranked by premium. Returns { updated, count, rows[] } — each row { ticker, type, premium, strike, expiry, opening, floor, golden }.
Upcoming earnings grouped by date with the options-implied expected move. Returns { updated, count, days[] }, each day { date, items[{ ticker, time, expMovePct, sector }] }. time is BMO or AMC.
SPY intraday net options premium — call premium bought minus put premium, per minute. Returns { ticks[{ t, net }], net, tone, spy, spyPct }. tone is bullish, bearish or neutral.
// Browser — no key, no proxy, CORS is open
const r = await fetch('https://algoxflow.com/api/gexmap?ticker=SPY');
const d = await r.json();
console.log(`${d.ticker} flip ${d.flip} · wall ${d.callWall} · ${d.regime} gamma`);
# Python
import requests
d = requests.get('https://algoxflow.com/api/gexmap', params={'ticker':'QQQ'}).json()
print(d['flip'], d['callWall'], d['totalGex'])
No hard rate limit today, and I'd rather not add one. Responses are cached (15 minutes for gamma, 30 for the earnings calendar), so please cache on your side too and don't poll faster than the data changes. Roughly one request per ticker per 15 minutes is plenty — the underlying chain doesn't move faster than that.
If you're building something that needs higher volume, email hello@algoxflow.com and we'll work it out. It's easier to say yes than to discover it through a bill.
Free under CC BY 4.0. Use it commercially, build products on it, no permission needed.
Just credit it. A link back to algoxflow.com somewhere visible — a footer, an about page, a bot's !source command. That's the whole deal, and it's the only reason this is free.
<a href="https://algoxflow.com">Gamma data by AlgoxFlow</a>
Built something with it? Tell me and I'll link it from here. A directory of projects using the API is useful to everyone, including you.
Gamma is computed from the Polygon options snapshot: per-strike Γ × OI × 100 × S² × 0.01, calls positive, puts negative. The flip is where the cumulative profile crosses zero.
One caveat worth knowing. The snapshot is capped at 250 contracts per call, so on very wide chains the ladder is truncated and the flip can shift between pulls — SPY read 777.62, 782.04 and "no crossing" within minutes on 6 August. Treat a single flip as a zone, not a decimal. It's the same data our own tools run on; we're not holding a better version back.
The daily dealer-gamma read for SPY and QQQ, built off this same data. Free.
No spam · unsubscribe in one click