API
Units and nulls
Units are part of the contract. GEX is in dollars per $1 move (with the conversion to shares), timestamps are epoch milliseconds, strikes are integer thousandths of a dollar, and a missing value stays null, never zero.
The rules
| Quantity | Unit | Example |
|---|---|---|
Timestamps (*_ms, captured_at, ts) | Epoch milliseconds, UTC | 1790256713559 |
| Dates | ISO calendar date, YYYY-MM-DD | 2026-09-25 |
| Option strikes, strike filters | Integer thousandths of a dollar | 600000 = $600.00 |
| Prices (spot, bars, quotes, flip point) | Dollars | 764.18 |
GEX (gex, net_gex, max_abs_gex, delta_adj) | Dollars of dealer hedging per $1 move in the underlying | -878059914.5 |
Premium (*_usd) | US dollars | 250000 |
| Implied volatility | Annualised, as a fraction | 0.119 = 11.9% |
Protobuf prices (*_scaled) | Integer dollars × 10,000 | 7641800 = $764.18 |
Each reference page marks a field's unit next to its type where the contract states one.
Dollars, shares and delta-adjusted
GEX answers one question: if the underlying moves $1, how much stock do dealers have to buy or sell to stay hedged? There are two ways to say "how much", and each comes plain or delta-adjusted:
| Unit | Means | On the API |
|---|---|---|
| Dollars | Dollars of stock dealers trade per $1 move | gex, net_gex, max_abs_gex on the grid, history and reference reads |
| Shares | Shares of stock dealers trade per $1 move | gex_shares on each reference book strike; everywhere else, convert (below) |
| Delta-adjusted dollars | The strike's delta-adjusted exposure, in dollars per $1 move | delta_adj (null on rows captured before the field existed) |
| Delta-adjusted shares | The same, in shares | Convert delta_adj (below) |
The grid and history serve GEX in dollars only; the reference book also serves per-strike shares. The ITMatrixHQ Terminal lets you switch its grid between all four units.
Converting to shares. Divide the dollar figure by the underlying price the snapshot was valued at: its spot. If spot is null, use prior_close_spot from the same response. If both are null, there is no share figure: show it as unavailable, not as zero. Delta-adjusted shares work the same way: delta_adj ÷ spot. This is exactly how the terminal derives its share views; the reference book's gex_shares is likewise gex ÷ that capture's spot.
A worked example, from the GEX grid example (spot = 764.18):
| Field | Dollars (served) | ÷ spot | Shares |
|---|---|---|---|
Strike $785 gex | 176396331.9 | ÷ 764.18 | ≈ 230,831 shares |
Strike $785 delta_adj | 20865974.6 | ÷ 764.18 | ≈ 27,305 shares |
net_gex | -878059914.5 | ÷ 764.18 | ≈ −1,149,022 shares |
So at that capture, dealers would trade about 230,831 SPY shares per $1 move to stay hedged at the $785 strike. Use the same response's spot for every row, so the rows stay consistent with each other and with the totals.
Time zones
Time-of-day inputs — at=2026-09-25T10:30, a bare date, HH:MM windows — are interpreted in America/New_York unless you pass tz with an IANA zone. Sessions are exchange sessions: "2026-09-25" means that trading day's regular session in New York.
Epoch-millisecond inputs are absolute and ignore tz.
Nulls are information
A value the API does not have is null (None in Python), not 0:
flip_point: nullmeans the cumulative net GEX never crosses zero — not that it crosses at $0.captured_at: nullon a reference book means the book is unavailable for that session.- A missing price stays missing; nothing is interpolated or carried forward to fill it.
Zero is a real value when it appears. Keep the distinction in your own code: if value is None is not the same test as if not value.
Signs
Call GEX is positive and put GEX is negative. A positive net_gex means dealers are net long gamma at that snapshot. The sign describes hedging pressure, not market direction; do not read it as a forecast.
Integer precision
Protobuf bodies carry some fields as 64-bit integers. Python keeps them exact. The TypeScript SDK's friendly methods reject an integer outside JavaScript's safe range instead of rounding it; its lower-level wire methods return bigint.