# GET /api/mcp/data/cross-index-gex

> Which index has the most negative dealer gamma today?

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.

- **Family:** Gamma exposure (https://apexvol.com/developers/gamma-exposure-api)
- **Plan:** Premium and above. Every call needs `Authorization: Bearer avmcp_<token>`; tokens are issued to paid and trial accounts under Account, then API Access.
- **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.
- **MCP tools:** `get_cross_index_gex`
- **Background:** https://apexvol.com/learn/gamma-exposure-explained

## Parameters

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

## Request

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

## Response (captured 2026-09-08)

Real response, lists cut to the rows nearest the money. The envelope is `{"success": true, "data": ...}`.

```json
{
  "success": true,
  "data": {
    "comparison": {
      "DIA": {
        "flip_level": 549.4243,
        "normalized_gex": 109665.9343,
        "stock_price": 533.74,
        "total_gex": 58533095.7487
      },
      "IWM": {
        "flip_level": null,
        "normalized_gex": -7440286.7267,
        "stock_price": 295.82,
        "total_gex": -2200985619.4867
      },
      "QQQ": {
        "flip_level": null,
        "normalized_gex": -32228.4822,
        "stock_price": 718.88,
        "total_gex": -23168411.3125
      },
      "SPY": {
        "flip_level": null,
        "normalized_gex": -4194083.4797,
        "stock_price": 770.25,
        "total_gex": -3230492800.2033
      }
    },
    "indices": {
      "DIA": {
        "call_gex": 408125500.9471,
        "expirations_horizon_days": 90,
        "expirations_included": 9,
        "expirations_through": "2026-11-20",
        "expirations_total": 20,
        "flip_degenerate": false,
        "flip_level": 549.4243,
        "gamma_flip": 549.4243,
        "gex_ratio": 1.1674,
        "implications": {
          "directional_bias": "Balanced (call/put GEX 1.17)",
          "net_to_gross": 0.0772,
          "pin_at_spot": false,
          "positioning": "largest strike $540.00 (+1.2%); call wall $540.00 (+1.2%); put wall $530.00 (-0.7%); flip $549.42 (+2.9%)",
          "regime_code": "balanced",
          "support_resistance": "Flip at $549.42 (2.9% above spot): hedging amplifies moves below it, dampens above",
          "volatility_regime": "Balanced GEX (net 7.7% of gross, no dominant side)"
        },
        "key_levels": {
          "call_wall": 540.0,
          "call_wall_unconstrained": false,
          "call_wall_value": 75356308.6812,
          "flip_degenerate": false,
          "flip_level": 549.4243,
          "key_strike": 540.0,
          "key_strike_net": 68976896.8278,
          "max_pain": null,
          "put_wall": 530.0,
          "put_wall_unconstrained": false,
          "put_wall_value": 44256843.2937,
          "spot": 533.74
        },
        "max_gex_strike": 540.0,
        "normalized_gex": 109665.9343,
        "put_gex": -349592405.1984,
        "stock_price": 533.74,
        "ticker": "DIA",
        "total_gex": 58533095.7487,
        "total_gex_billions": 0.0585
      },
      "IWM": {
        "call_gex": 2098181483.3277,
        "expirations_horizon_days": 90,
        "expirations_included": 16,
        "expirations_through": "2026-11-20",
        "expirations_total": 30,
        "flip_degenerate": false,
        "flip_level": null,
        "gamma_flip": null,
        "gex_ratio": 0.488,
        "implications": {
          "directional_bias": "Put-heavy (call/put GEX 0.49)",
          "net_to_gross": -0.344,
          "pin_at_spot": false,
          "positioning": "largest strike $290.00 (-2.0%); call wall $300.00 (+1.4%); put wall $290.00 (-2.0%)",
          "regime_code": "negative",
          "support_resistance": "--",
          "volatility_regime": "Negative GEX (dealers amplify moves)"
        },
        "key_levels": {
          "call_wall": 300.0,
          "call_wall_unconstrained": false,
          "call_wall_value": 354716869.761,
          "flip_degenerate": false,
          "flip_level": null,
          "key_strike": 290.0,
          "key_strike_net": 609426189.0504,
          "max_pain": null,
          "put_wall": 290.0,
          "put_wall_unconstrained": false,
          "put_wall_value": 720542331.6019,
          "spot": 295.82
        },
        "max_gex_strike": 290,
        "normalized_gex": -7440286.7267,
        "put_gex": -4299167102.8144,
        "stock_price": 295.82,
        "ticker": "IWM",
        "total_gex": -2200985619.4867,
        "total_gex_billions": -2.201
      },
      "QQQ": {
        "call_gex": 7556293659.4015,
        "expirations_horizon_days": 90,
        "expirations_included": 16,
        "expirations_through": "2026-11-20",
        "expirations_total": 31,
        "flip_degenerate": false,
        "flip_level": null,
        "gamma_flip": null,
        "gex_ratio": 0.9969,
        "implications": {
          "directional_bias": "Balanced (call/put GEX 1.00)",
          "net_to_gross": -0.0015,
          "pin_at_spot": false,
          "positioning": "largest strike $700.00 (-2.6%); call wall $730.00 (+1.5%); put wall $700.00 (-2.6%)",
          "regime_code": "balanced",
          "support_resistance": "--",
          "volatility_regime": "Balanced GEX (net 0.2% of gross, no dominant side)"
        },
        "key_levels": {
          "call_wall": 730.0,
          "call_wall_unconstrained": false,
          "call_wall_value": 666241251.0777,
          "flip_degenerate": false,
          "flip_level": null,
          "key_strike": 700.0,
          "key_strike_net": 670370841.253,
          "max_pain": null,
          "put_wall": 700.0,
          "put_wall_unconstrained": false,
          "put_wall_value": 936624637.4421,
          "spot": 718.88
        },
        "max_gex_strike": 700,
        "normalized_gex": -32228.4822,
        "put_gex": -7579462070.714,
        "stock_price": 718.88,
        "ticker": "QQQ",
        "total_gex": -23168411.3125,
        "total_gex_billions": -0.0232
      },
      "SPY": {
        "call_gex": 12388200841.1688,
        "expirations_horizon_days": 90,
        "expirations_included": 16,
        "expirations_through": "2026-11-20",
        "expirations_total": 32,
        "flip_degenerate": false,
        "flip_level": null,
        "gamma_flip": null,
        "gex_ratio": 0.7932,
        "implications": {
          "directional_bias": "Balanced (call/put GEX 0.79)",
          "net_to_gross": -0.1153,
          "pin_at_spot": false,
          "positioning": "largest strike $760.00 (-1.3%); call wall $775.00 (+0.6%); put wall $760.00 (-1.3%)",
          "regime_code": "negative",
          "support_resistance": "--",
          "volatility_regime": "Negative GEX (dealers amplify moves)"
        },
        "key_levels": {
          "call_wall": 775.0,
          "call_wall_unconstrained": false,
          "call_wall_value": 969364047.7614,
          "flip_degenerate": false,
          "flip_level": null,
          "key_strike": 760.0,
          "key_strike_net": 1376738203.7852,
          "max_pain": null,
          "put_wall": 760.0,
          "put_wall_unconstrained": false,
          "put_wall_value": 1809628588.0631,
          "spot": 770.25
        },
        "max_gex_strike": 760,
        "normalized_gex": -4194083.4797,
        "put_gex": -15618693641.3721,
        "stock_price": 770.25,
        "ticker": "SPY",
        "total_gex": -3230492800.2033,
        "total_gex_billions": -3.2305
      }
    }
  }
}
```

## Fields

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

## Errors

- `401`: no or revoked token
- `429`: Retry-After seconds
- `403`: Premium plan required
- `424`: data feed unavailable, retry
- Full list: https://apexvol.com/developers/errors

## Ask it in an MCP client

- Compare dealer gamma across SPY, QQQ and IWM.
- Which index is in the deepest negative gamma?
- Give me a cross-index gamma summary for the open.

Conventions for units, bases and timestamps: https://apexvol.com/developers/conventions
