← Back to home

MCP/API Access

Machine-readable SPX dealer market structure - walls, gamma flip, GEX, the scored strike ladder, implied 50%/80% forecast bands, strike activity, and the regime label - recomputed ~every 10 seconds during market hours. Built for agents (MCP) and scripts (REST), on one key.

Answer first: yes, this is a live SPX gamma exposure (GEX) API for 0DTE. One key gives AI agents an MCP server and scripts a REST endpoint, returning dealer gamma positioning, net GEX, call and put walls, the zero-gamma flip, and the dealer regime, refreshed about every 10 seconds during market hours. $100/month, one key covers both. It is market-structure data for your own analysis, not investment advice.

MCP/API Access

$100/mo

7-day free trial for new subscribers, then $100/mo - cancel anytime

  • One key for both the MCP server (agents) and the REST API (scripts)
  • Scored strike ladder, gamma flip, call/put walls, and net GEX
  • Implied 50%/80% forecast bands and per-strike activity
  • Expected move with the session fence, max pain, session open/high/low and gap
  • Order-flow measurements plus chain vanna/charm and per-strike ladders
  • Regime label (CHOP / TREND / BREAKOUT) recomputed ~every 10 seconds during market hours
  • Event webhooks: zero-gamma flip, new wall, regime transition
Sign up to subscribe

Already have an account? Log in

One key covers both MCP and REST. Live reads are unlimited within the per key rate limit. Every key can read up to 10 different history days in any 24 hours; a day you already read in that window does not count again. Not investment advice.

Connect - MCP (for agents)

Endpoint https://api.zdte.ai/mcp, authenticated via an X-API-Key header. Any MCP client that speaks the Streamable HTTP transport can connect.

Claude Code

claude mcp add --transport http zdte https://api.zdte.ai/mcp --header "X-API-Key: YOUR_KEY"

Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "zdte": {
      "type": "http",
      "url": "https://api.zdte.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_KEY"
      }
    }
  }
}

Any other MCP client

Point it at the endpoint above over the Streamable HTTP transport and send X-API-Key: YOUR_KEY as a request header - no OAuth flow, no session negotiation.

Connect - REST (for scripts)

Every MCP tool has a thin REST v1 mirror at https://api.zdte.ai, using the same agent key, paid-call gate, and byte-identical JSON body.

Send either X-API-Key: YOUR_KEY or Authorization: Bearer YOUR_KEY. If both are present, X-API-Key wins.

curl

curl https://api.zdte.ai/v1/market-structure \
  -H "X-API-Key: YOUR_KEY"

Python (httpx)

import httpx

resp = httpx.get(
    "https://api.zdte.ai/v1/market-structure",
    headers={"X-API-Key": "YOUR_KEY"},
    timeout=10.0,
)
resp.raise_for_status()
data = resp.json()
print(data["regime"], data["gamma_flip"])

GET /v1/market-structure

{
  "available": true,
  "as_of": "2026-07-19T17:32:05Z",
  "marketState": "pinned",
  "confidence_dots": 4,
  "spot": 7562.35,
  "gamma_flip": 7540.00,
  "call_wall": 7600.00,
  "put_wall": 7500.00,
  "total_gex": 2850000000,
  "max_pain": 7560.00,
  "gamma": {
    "flip_distance": 0.003,
    "call_gex": 3100000000,
    "put_gex": -250000000,
    "gex_above_spot": 1800000000,
    "gex_below_spot": 1050000000,
    "gex_imbalance": 0.42,
    "gex_profile_skew": 0.31,
    "profile": [
      { "strike": 7600, "net_gex": 1240000000, "call_gex": 1490000000, "put_gex": -251000000 }
    ]
  },
  "expected_move": {
    "em_open": 7551.20,
    "em_straddle_price": 80.10,
    "em_full_day_points": 104.30,
    "em_remaining_points": 68.09,
    "em_band_upper": 7655.50,
    "em_band_lower": 7446.90,
    "em_fence_frozen": true,
    "computed_at_utc": "2026-07-19T17:32:05Z"
  },
  "session": {
    "session_open": 7551.20,
    "session_high": 7574.80,
    "session_low": 7544.10,
    "prev_close": 7546.30,
    "gap_points": 4.90
  },
  "flow": {
    "flow_direction": -0.012,
    "sweep_score": 1.0,
    "dealer_bias": "neutral"
  },
  "vanna_charm": {
    "total_vanna": -12300000,
    "total_charm": 9880000,
    "strikes": [
      { "strike": 7560, "vanna": -140.0, "charm": 42.0 }
    ]
  },
  "minutes_to_close": 118,
  "pressure_points": [
    { "strike": 7600, "label": "CALL WALL", "cls": "resist", "score": 90 },
    { "strike": 7500, "label": "PUT WALL", "cls": "support", "score": 80 }
  ],
  "forecast_band": {
    "points": [
      {
        "minutes_from_now": 30,
        "median": 7563.1,
        "band_50_low": 7554.2,
        "band_50_high": 7572.0,
        "band_80_low": 7545.8,
        "band_80_high": 7580.4
      }
    ],
    "horizon_minutes": 120,
    "regime_at_compute": "pinned",
    "implied_move_atm_pts": 22.4,
    "computed_at_utc": "2026-07-19T17:32:05Z",
    "disclaimer_required": true
  },
  "strike_activity": [
    {
      "strike": 7550,
      "total_volume": 18400,
      "call_volume": 9600,
      "put_volume": 8800,
      "call_oi": 12500,
      "put_oi": 11800,
      "call_mark": 14.20,
      "put_mark": 12.85,
      "distance_pct": 0.16,
      "position_label": "at spot"
    }
  ],
  "vix": { "vix_spot": 14.82, "vix9d": 14.10, "vix3m": 15.63, "vix_basis": 0.81, "vvix": 98.40, "iv_atm": 0.142, "iv_skew_25d": 0.021 },
  "realized_vol": { "rv_mean": 0.0912, "rv_std": 0.0605 },
  "tier": "pro"
}

GET /v1/regime

{
  "available": true,
  "marketState": "pinned",
  "confidence_dots": 4,
  "tier": "pro"
}

GET /v1/history/dates

{
  "dates": ["2026-07-16", "2026-07-17", "2026-07-18"],
  "count": 3
}

GET /v1/history/2026-07-18

{
  "available": true,
  "date": "2026-07-18",
  "summary": { "open": 7480.2, "high": 7540.6, "low": 7472.9, "close": 7521.3 },
  "prices": [{ "time": 1721318400, "value": 7480.2 }],
  "sample_count": 390,
  "timeline": [
    {
      "t": 1721318400,
      "spot": 7480.2,
      "marketState": "pinned",
      "gamma_flip": 7460.0,
      "call_wall": 7520.0,
      "put_wall": 7440.0,
      "gex_total": 1240000000,
      "gex_imbalance": 0.22,
      "iv_atm": 0.138,
      "max_pain": 7500.0,
      "vix": 14.9
    }
  ]
}

timeline is included on the paid tier only.

Tool / route reference

The same 8 operations, reachable as either an MCP tool call or a REST route.

MCP toolREST routeWhat it returns
get_market_structureGET /v1/market-structureCurrent SPX dealer market structure: walls, gamma flip, net GEX + gamma-profile depth, dealer regime, scored pressure points, forecast band, strike activity, VIX term structure + IV/skew, realized-vol stats, the 0DTE expected move and its session fence, max pain, session open/high/low with the prior close and gap, order-flow measurements, and chain vanna/charm with a per-strike ladder.
get_regimeGET /v1/regimeCurrent SPX dealer regime label + confidence only.
list_history_datesGET /v1/history/datesAvailable historical replay dates.
get_dayGET /v1/history/{date}Per-day market-structure timeline + summary for one replay date (YYYY-MM-DD).
get_regime_segmentsGET /v1/history/{date}/segmentsCompressed dealer-regime segment tape for one replay date.
subscribe_eventPOST /v1/subscriptionsRegister an HTTPS callback for an event (see Webhooks below).
unsubscribeDELETE /v1/subscriptions/{id}Remove a webhook subscription.
list_subscriptionsGET /v1/subscriptionsList your active webhook subscriptions.
get_field_guideMCP tool onlyStatic, versioned dictionary of every field this surface emits - unit, value set where there is one, and a one-sentence meaning - plus the shared response conventions (tier, delay, timestamps, and how missing data is reported). No inputs; call it once per session.

Event webhooks

Subscribe to a callback via POST /v1/subscriptions (or the subscribe_event MCP tool) with an event name and a callback_url. Callback URLs must be HTTPS and resolve to a public address - no localhost, no private/internal hosts. Every delivery carries an HMAC-SHA256 signature (computed with your subscription's own signing secret over the event payload) so you can verify authenticity before acting on it.

EventFires when
zero_gamma_flipSpot crosses the computed gamma-flip level.
new_wallThe call wall or put wall level changes.
regime_transitionThe dealer regime label changes (e.g. CHOP to TREND).

Frequently asked questions

Is there a live SPX gamma exposure (GEX) API for 0DTE?

Yes. zdte.ai is a live SPX 0DTE dealer market-structure and gamma-exposure API. A single key gives AI agents an MCP server at https://api.zdte.ai/mcp (Streamable HTTP transport) and scripts a matching REST endpoint at https://api.zdte.ai. Both return net GEX, dealer gamma positioning, call and put walls, the zero-gamma flip, a scored strike ladder, implied 50%/80% forecast bands, VIX term structure, and the dealer regime label, recomputed about every 10 seconds during market hours.

How do I get real-time GEX data for 0DTE?

Call get_market_structure over MCP, or GET /v1/market-structure over REST, with your X-API-Key header. The response carries net GEX (total_gex), the call/put GEX split, GEX imbalance and profile skew, the gamma-flip level, the call and put walls, and per-strike activity for SPX 0DTE. Every read is timestamped (as_of), and a typical value is under 15 seconds old during market hours.

What is the best gamma software or API for 0DTE trading?

There is no single best tool for everyone, so match it to the job. For 0DTE gamma work the things that matter are SPX dealer positioning on a tight refresh cadence, an explicit gamma-flip level, call and put walls, net GEX with an above/below-spot split, and a machine-readable format your own tools can consume directly. zdte.ai focuses on exactly those: one key, an MCP server for agents and a REST mirror for scripts, byte-identical JSON on both, and an honest available: false when the feed is stale rather than a silently old number. It is market-structure data for your own analysis, not a trade recommendation.

Does zdte.ai offer a 0DTE SPX options data and gamma exposure API?

Yes. The API exposes SPX 0DTE options market structure: gamma exposure (GEX), dealer gamma positioning, call and put walls, the zero-gamma flip, max-pain and pin context, a scored pressure-point ladder, strike-level volume and open interest, VIX term structure with IV and skew, and realized-vol stats. Historical replay dates and per-day timelines are available through list_history_dates and get_day.

How do I add the zdte.ai API to my AI agent?

Any MCP-compatible client or agent can connect over the Streamable HTTP transport. Point it at https://api.zdte.ai/mcp and send X-API-Key: YOUR_KEY as a request header. There is no OAuth flow and no session negotiation. See the one-liner and config examples above for a copy-paste setup, or call the REST routes directly from a script.

What is dealer gamma, explained as simply as possible?

Market makers (dealers) hold large options inventories and hedge them to stay roughly delta-neutral. Gamma measures how fast that hedge has to change as the underlying moves. When dealers are long gamma they hedge against the move, selling into strength and buying into weakness, which tends to dampen and pin the market. When dealers are short gamma they hedge with the move, which tends to amplify it.

If dealers are short gamma, does it dampen or enhance market moves?

It tends to enhance them. Short-gamma hedging is pro-cyclical: dealers buy as price rises and sell as it falls, which adds to the move and raises realized volatility. Long-gamma hedging is the opposite and tends to dampen moves toward pinning levels. The get_market_structure response reports the net GEX sign and gamma profile so you can judge which regime is in force.

How much does the zdte.ai API cost and how fresh is the data?

$100 per month, flat, with a 7-day free trial for new subscribers, and one key covers both the MCP server and the REST mirror. Market structure is recomputed roughly every 10 seconds while the market is open, and a typical read is under 15 seconds old. Outside market hours, or if the underlying feed goes stale, the surface returns available: false rather than serving a stale number.

Cadence, freshness, and terms

Market structure is recomputed roughly every 10 seconds while the market is open; a typical read is under 15 seconds old. Outside market hours, or if the underlying feed goes stale, the surface returns an honest available: false rather than serving a stale number silently.

This is computed market-structure data for your own decisions - not investment advice, and not a directional signal. Your key is for your own use: no redistribution or resale of the feed, no compiling it into a dataset, and no training models on it. See the full Terms of Service for the complete usage terms and the Investment Disclaimer for the full risk statement.

For informational and educational purposes only. Not investment advice and not a recommendation to buy or sell any security. Options trading involves substantial risk of loss. Market-structure figures described here are zdte.ai's proprietary estimates of dealer positioning, which can be wrong. Always do your own research.