# Gamma exposure API

6 endpoints under `https://apexvol.com/api/mcp/data`. Every call needs `Authorization: Bearer avmcp_<token>`; tokens are issued to paid and trial accounts under Account, then API Access. Web version: https://apexvol.com/developers/gamma-exposure-api

| Endpoint | Plan | What it answers |
|---|---|---|
| `GET /cross-index-gex` | Premium | Which index has the most negative dealer gamma today? |
| `GET /gex/{ticker}` | Premium | Where is SPY's gamma flip today and which strikes hold the most dealer gamma? |
| `GET /greeks-exposure/{ticker}` | Premium | Beyond gamma, where are SPY dealers exposed on delta, vanna and charm? |
| `GET /max-pain/{ticker}` | Basic | What strike is max pain for SPY this expiration, and does it matter? |
| `GET /volume-profile/{ticker}` | Basic | Which SPY strikes are trading the most volume and holding the most open interest? |
| `GET /zero-dte/{ticker}` | Pro | What is priced into SPY's same-day expiration, and where are the walls? |

## GET /cross-index-gex

Runs the GEX calculation for each index ETF and returns a comparison table of total exposure, normalized exposure and flip level, with the full per-index payload underneath.

- **Units:** total_gex in dollars per 1% move; normalized_gex divides by market value so indices compare.
- **Basis:** Same dealer convention and aggregation as /gex, per ticker.
- **Markdown:** https://apexvol.com/developers/gamma-exposure-api/cross-index-gex.md

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `tickers` | query | SPY,QQQ,IWM,DIA | CSV of index ETFs | Which indices to compare. |

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/cross-index-gex"
```

- `comparison.<ticker>.total_gex, normalized_gex, flip_level, stock_price`: The side-by-side table.
- `indices.<ticker>`: The full /gex payload per index.

## GET /gex/{ticker}

Returns total, call and put gamma exposure, the gamma flip, the call and put walls and key strike, the per-strike profile, a per-expiration breakdown and an implications block that names the regime. Compact detail windows the lists around spot.

- **Units:** total_gex, call_gex, put_gex and gex per strike are dollars of gamma per 1% move; total_gex_billions is the same in billions. Strikes and levels are dollars.
- **Basis:** Dealer convention: dealers are long customer-sold calls and short customer-bought puts. Aggregated across the expirations listed in expirations_selected.
- **Markdown:** https://apexvol.com/developers/gamma-exposure-api/gex.md

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `ticker` (required) | path |  | any covered symbol | The underlying, upper case. Use /search to check coverage. |
| `expiration` | query | nearest | YYYY-MM-DD, a listed expiration | Which expiration to use. Defaults to the nearest one. |
| `aggregate` | query | True | true or false | Sum across expirations or one only. |
| `detail` | query | full for REST, compact for MCP clients | compact or full | Windowed lists or everything. |
| `strikes_around` | query | 25 | 0 for all | Strikes per side under compact. |

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/gex/SPY?detail=compact&strikes_around=8"
```

- `total_gex_billions, call_gex, put_gex, gex_ratio`: The headline exposure.
- `flip_level, gamma_flip, flip_degenerate`: Where net gamma changes sign, or null when it does not.
- `key_levels.call_wall, put_wall, key_strike, spot`: The levels traders watch.
- `gex_by_strike[].strike, gex, oi`: The profile.
- `implications.volatility_regime, positioning, directional_bias`: The regime in words.
- `window`: What compact detail trimmed.

## GET /greeks-exposure/{ticker}

Returns dealer delta, gamma, vega, theta, vanna, charm and the higher-order exposures as totals and per-strike profiles, the key strike per Greek, and the key levels with distance from spot. The units block says what each number is.

- **Units:** Per Greek; read units.<greek>. Gamma is dollars per 1% move, delta is delta shares, charm is delta shares per day.
- **Basis:** Dealer convention as /gex. Aggregated over the listed expirations.
- **Markdown:** https://apexvol.com/developers/gamma-exposure-api/greeks-exposure.md

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `ticker` (required) | path |  | any covered symbol | The underlying, upper case. Use /search to check coverage. |
| `expiration` | query | nearest | YYYY-MM-DD, a listed expiration | Which expiration to use. Defaults to the nearest one. |
| `aggregate` | query | True | true or false | Sum across expirations or one only. |

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/greeks-exposure/SPY"
```

- `exposures.<greek>.total, call_total, put_total, unit`: Aggregate exposure per Greek.
- `exposures.<greek>.profile[]`: Per-strike exposure.
- `greek_levels.<greek>.key_strike`: The strike with the largest exposure.
- `key_levels.call_wall, put_wall, vanna_resistance, charm_pressure`: Named levels with distance_pct from spot.
- `units`: Unit string per Greek.

## GET /max-pain/{ticker}

Returns the strike where option holders lose the most at expiration, the total pain there, the distance from spot and a magnet-strength label, with the pain at every strike.

- **Units:** Strikes and distance in dollars; distance_pct in percent; total_pain in dollars.
- **Basis:** Sum of intrinsic value across open interest at each candidate settlement price.
- **Markdown:** https://apexvol.com/developers/gamma-exposure-api/max-pain.md

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `ticker` (required) | path |  | any covered symbol | The underlying, upper case. Use /search to check coverage. |
| `expiration` | query | nearest | YYYY-MM-DD, a listed expiration | Which expiration to use. Defaults to the nearest one. |

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/max-pain/SPY"
```

- `max_pain_strike, max_pain_value`: The strike and the pain there.
- `distance_from_spot, distance_pct`: How far spot is from it.
- `magnet_strength, likely_direction`: Whether the pull is meaningful.
- `all_strikes[].strike, total_pain`: The distribution.

## GET /volume-profile/{ticker}

Returns the per-strike profile of call and put volume and open interest, the top strikes by each, and the aggregate put-call ratio.

- **Units:** Contracts; ratios are unitless; distance_from_spot_pct in percent.
- **Basis:** Today's cumulative volume and current open interest from the data feed.
- **Markdown:** https://apexvol.com/developers/gamma-exposure-api/volume-profile.md

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `ticker` (required) | path |  | any covered symbol | The underlying, upper case. Use /search to check coverage. |
| `expiration` | query | nearest | YYYY-MM-DD, a listed expiration | Which expiration to use. Defaults to the nearest one. |

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/volume-profile/SPY"
```

- `volume_profile[].strike, call_volume, put_volume, call_oi, put_oi`: The profile.
- `top_volume_strikes[], top_oi_strikes[]`: The leaders.
- `put_call_ratio, total_call_volume, total_put_volume`: The aggregates.

## GET /zero-dte/{ticker}

For the same-day (or next) expiration returns the ATM IV and expected move, the gamma regime and key levels, per-strike gamma and quotes, the hourly theta decay, an IV-forecast and skew read, the expected-move hit rate and an edge score. Compact detail windows the strike lists.

- **Units:** Expected move in percent and dollars; IVs in percentage points; theta in dollars per day; net_gamma in dollars per 1% move.
- **Basis:** Same dealer convention as /gex for gamma. em_hit_rate compares past same-day expected moves with realized.
- **Markdown:** https://apexvol.com/developers/gamma-exposure-api/zero-dte.md

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `ticker` (required) | path |  | any covered symbol | The underlying, upper case. Use /search to check coverage. |
| `detail` | query | full for REST, compact for MCP clients | compact or full | Windowed lists or everything. |
| `strikes_around` | query | 15 | 0 for all | Strikes per side under compact. |

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/zero-dte/SPY?detail=compact&strikes_around=5"
```

- `metrics.expected_move, expected_move_dollars, atm_iv`: The priced move.
- `key_levels.call_wall, put_wall, max_pain, em_upper, em_lower`: Levels for the session.
- `gamma_regime.regime, total_net_gex`: Positive or negative gamma.
- `by_strike[]`: Per-strike Greeks, quotes and OI.
- `theta_burn.hourly_decay[]`: How premium decays through the day.
- `edge_score, em_hit_rate, iv_forecast, skew_signal`: The scored read.

Conventions: https://apexvol.com/developers/conventions. Errors: https://apexvol.com/developers/errors. Whole API in one file: https://apexvol.com/docs/api/apexvol-api.md
