Financial data for your AI agents.

Implied-vol surfaces, skew, realized vol, vol cones, option chains with Greeks, and scored trade ideas for more than 3,400 tickers. Your agent calls a REST endpoint or an MCP tool and gets the numbers behind Moontower's own charts.

Sign upAPI Endpoints List

claude mcp add --transport http moontower https://api.moontower.ai/mcp. Added moontower (http). /mcp → moontower → Authenticate → Allow. Connect Claude Code to Moontower: Claude Code wants to call the Moontower API and MCP tools as you. Signed in to Moontower. 18 tools available. Is implied vol rich or cheap against realized on SPY, QQQ, IWM, NVDA, AMD, and TSLA? get_realized_vs_implied_volatility (ticker: SPY, QQQ, IWM, NVDA, AMD, TSLA): 6 rows, snapshot 2026-11-11. SPY: rv_30d 18.90, atmiv 13.65, vrp −32.54, rv_percentile 97.21. QQQ: rv_30d 30.98, atmiv 22.95, vrp −30.01, rv_percentile 96.41. IWM: rv_30d 22.96, atmiv 17.47, vrp −27.34, rv_percentile 80.08. NVDA: rv_30d 52.77, atmiv 55.08, vrp 4.29, rv_percentile 99.60. AMD: rv_30d 106.75, atmiv 61.10, vrp −55.80, rv_percentile 99.60. TSLA: rv_30d 56.53, atmiv 41.21, vrp −31.61, rv_percentile 90.84. Implied vol is below 30-day realized on five of the six, so options look cheap against recent movement. NVDA is the exception at a vrp of 4.29, and AMD has the widest gap: 61.10 implied against 106.75 realized.

claude codedisconnected
$claude mcp add --transport http moontower https://api.moontower.ai/mcp
✓Added moontower (http)
>/mcp → moontower → Authenticate → Allow
moontower.ai/oauth/authorize
Connect Claude Code to Moontower

Claude Code wants to call the Moontower API and MCP tools as you.

Access
Market data API and MCP tools
CancelAllow
✓Signed in to Moontower. 18 tools available.
>Is implied vol rich or cheap against realized on SPY, QQQ, IWM, NVDA, AMD, and TSLA?
✓moontower get_realized_vs_implied_volatility (ticker: SPY, QQQ, IWM, NVDA, AMD, TSLA)
6 rows, snapshot 2026-11-11
tickerrv_30datmivvrprv_percentile
SPY18.9013.65−32.5497.21
QQQ30.9822.95−30.0196.41
IWM22.9617.47−27.3480.08
NVDA52.7755.084.2999.60
AMD106.7561.10−55.8099.60
TSLA56.5341.21−31.6190.84

Implied vol is below 30-day realized on five of the six, so options look cheap against recent movement. NVDA is the exception at a vrp of 4.29, and AMD has the widest gap: 61.10 implied against 106.75 realized.

What a call returns.

Call the API or MCP for your preferred data, for one ticker or 100. Computed every minute across 3,400+ tickers.

+ many more18 endpoints

GET /v1/volcone?ticker=SPY&trade_date=2026-11-11

10%20%30%40%
1d7d14d30d60d90d180d365d
window_days1714306090180365
iv_50d13.7713.2513.3213.6214.1714.2315.3816.25
rv_current 9.5432.1525.9019.4615.4413.5713.9913.87
rv_max42.2433.7825.9019.9617.4316.4321.1919.34
rv_q7511.7816.6615.6014.9314.9614.6914.7418.67
rv_median 8.1812.2112.1612.9713.2613.1913.8213.40
rv_q25 5.77 9.2210.0610.4211.5612.2912.1012.89
rv_min 2.73 4.94 6.56 7.45 9.1810.1911.21 9.86
SPY, November 11, 2026, rounded to two decimals. The bands are a year of realized vol at each window: the full range, and the middle half around the median. Seven-day realized vol is 32.15, near the top of its range, while seven-day implied is 13.25.

GET /v1/impliedvol?ticker=SPY&trade_date=2026-11-11

10%15%20%25%
908070605040302010
expiry_datevol90vol80vol70vol60vol50vol40vol30vol20vol10
2026-11-1817.9415.5714.6613.8513.2512.8312.3111.8211.29
2026-12-1121.5417.5715.7914.5313.6212.8312.2611.7511.38
2027-02-1924.2118.9016.7515.2314.2313.3812.9012.3211.79
2027-12-1726.4021.7718.9217.5816.2515.3914.6613.9913.37
SPY, November 11, 2026, rounded to two decimals. Four of the 35 expiries in the response. The columns are call deltas, so the downside is on the left: on the December 11 expiry, vol90 is a strike near 700 with SPY at 760 and reads 21.54, and vol10 is near 795 and reads 11.38.

GET /v1/cmiv?ticker=NVDA&ticker=AMD&ticker=QQQ&ticker=SPY&trade_date=2026-11-11

20%40%60%
10d20d30d60d90d6m1y
tickeriv_10div_20div_30div_60div_90div_6miv_1y
NVDA0.74610.59950.55040.48810.46360.44080.4263
AMD0.69260.62020.61100.57720.58650.57150.5610
QQQ0.24560.22080.22920.22340.22090.22270.2215
SPY0.13510.12650.13640.14030.14190.15450.1633
November 11, 2026, rounded to four decimals. Constant-maturity IV is a decimal fraction, so 0.7461 is 74.61%. NVDA reports earnings on November 17: its 10-day implied vol is 0.7461 against 0.4263 at one year. SPY slopes the other way, from 0.1351 to 0.1633.

GET /v1/optionchain?ticker=SPY&trade_date=2026-11-11&expiry_date=2026-12-11

call_put_
strikebid_priceask_pricemid_ivvolumebid_priceask_pricemid_ivvolume
73532.1232.3017.68 55 4.94 4.9817.08 444
74027.9928.1716.55 133 5.76 5.8116.54 826
74523.9624.1416.25 351 6.75 6.8015.71 857
75020.1620.3115.55 138 7.94 8.0015.051064
75516.6016.7414.56 311 9.38 9.4414.571173
76013.3613.4214.22 90811.1311.2013.76 568
76510.4210.4813.62 96213.2313.3013.14 243
770 7.86 7.9212.86193415.7215.8512.86 5
775 5.73 5.7812.57 30518.7218.8912.08 11
780 4.04 4.0812.17213822.1622.3711.60 11
785 2.75 2.7911.71 29326.0926.3611.75 9
SPY, November 11, 2026 close, the December 11 expiry (31 days), with spot at 759.46. These are 11 of the 159 strikes in the response and 8 of the 38 fields on each row; the rest include sizes, open interest, bid and ask IV, a smoothed vol, and Greeks. Field names carry a call_ or put_ prefix. The shaded side of each row is in the money.

Clean endpoints for all the financial data you need.

18 endpoints under api.moontower.ai/v1, each with an MCP tool named after its OpenAPI operation. All of them return JSON, and 9 also return CSV.

EndpointReturnsMCP toolFormats
Prices and calendar
GET /v1/priceMarket prices. Open, high, low, close, volume, and the bid-ask mid, with a capture timestamp on every row.open, high, low, close, volume, mid, snapshot_atget_pricesJSON, CSV
GET /v1/earningsEarnings dates. Next and prior earnings date per ticker. Rows flagged with data-quality issues are left out.next_earnings_date, prior_earnings_dateget_earnings_datesJSON
Implied volatility
GET /v1/impliedvolIV surface. Smoothed implied vol at every 10 delta points, vol0 through vol100, for each listed expiry.expiry_date, dte, spot_price, vol10, vol50, vol90get_implied_volatilityJSON, CSV
GET /v1/cmivConstant-maturity IV. ATM implied vol at 10, 20, 30, 60, and 90 days, 6 months, and 1 year, interpolated between expiries.iv_10d, iv_30d, iv_90d, iv_6m, iv_1yget_constant_maturity_implied_volatilityJSON, CSV
GET /v1/skewVolatility skew. Call and put skew at 10 and 25 delta and risk reversals, each with a percentile, per expiry.skew_25d_put, skew_25d_call, risk_reversal_25d, skew_25d_put_percentileget_volatility_skewJSON, CSV
GET /v1/ivrankIV rank and percentile. Where 30-day IV sits in its own range over 1-month, 3-month, and 1-year lookbacks.iv, iv_rank_1m, iv_pct_3m, iv_rank_1y, iv_pct_1yget_iv_rankJSON, CSV
Realized vol and risk premium
GET /v1/realvolRealized volatility. Annualized realized vol over eight windows from 1 day to 1 year, computed from daily OHLC.rv_1d, rv_7d, rv_30d, rv_90d, rv_365dget_realized_volatilityJSON, CSV
GET /v1/rvivRealized vs implied. 30-day realized vol beside 30-day ATM implied vol, with the realized percentile and the risk premium.rv_30d, atmiv, rv_percentile, vrpget_realized_vs_implied_volatilityJSON, CSV
GET /v1/volconeVolatility cone. Per window: the range and quartiles of realized vol, the current reading, and nearest-expiry 50-delta IV.window_days, rv_q25, rv_median, rv_q75, rv_current, iv_50dget_volatility_coneJSON
Option chains
GET /v1/optionchainOption chain. Every strike and expiry at the close: prices, sizes, volume, open interest, five Greeks, and bid, mid, and ask IV.strike, dte, call_mid_price, call_delta, put_mid_iv, smoothed_vol, put_open_interestget_option_chainJSON, CSV
Pricing and hedging calculators
GET /v1/early-exerciseAmerican early exercise. Prices an American put against its European value and says whether exercising now is optimal.american_value, european_value, early_exercise_premium, should_exercise_nowget_early_exercise_analysisJSON
POST /v1/pnl-attributionP&L attribution. Splits the P&L of up to eight option legs between two market states into Greek contributions and a residual.delta_pnl, gamma_pnl, theta_pnl, vega_pnl, rho_pnl, residualcompute_pnl_attributionJSON
GET /v1/implied-yieldImplied yield. The forward and the dividend-plus-borrow yield implied by put-call parity, per strike.forward_price, total_implied_rate, implied_dividend_yield, per_strikeget_implied_yieldJSON
GET /v1/options-pair-hedgeOptions pair hedge. Vega-, theta-, and gamma-weighted hedge ratios between two option legs, with Greeks per leg.correlation, beta, weightings.vega.ratio, weightings.gamma.suggested_qty_bget_options_pair_hedgeJSON
GET /v1/hedge-ratiosPair delta hedge. Sizes a stock or ETF hedge from correlation and realized vols, and reports the idiosyncratic vol left over.vol_core, vol_hedge, correlation, beta, hedge_ratio, idio_vol_remainingget_hedge_ratiosJSON
Screens
GET /v1/cockpitCockpit statistics. Moving averages, IV by tenor with its changes, term structure, return z-scores, and risk premium per ticker.sd_from_200ma, iv_30d_weekly_change, term_structure_90d_30d, monthly_return_zscore, vrp_monthlyget_cockpit_statisticsJSON, CSV
GET /v1/trade-ideasTrade ideas. Long Calendar, Sell Vol, Buy Vol, and Short Calendar candidates, scored against the list you send.idea, ivPercentile, vrpPercentile, steepnessPercentile, totalScoreget_trade_ideasJSON
Reference
GET /v1/tickersTicker directory. Every ticker with its category and the first and last dates on file, to check coverage before asking.ticker, category, min_date, max_dateget_ticker_directoryJSON

Proprietary metrics computed every minute.

Moontower computes proprietary metrics across a wide range of financial and volatility data. We provide transparency on how all metrics are computed via the API docs.

Realized volatility
The 1-day figure is the Parkinson high-low estimate for the last session. Longer windows are the equal-weighted mean of the close-to-close and Yang-Zhang estimates, annualized on 251 periods a year. Stocks and ETFs count trading sessions, so rv_30d covers 21 of them; BTC and ETH count calendar days.
Constant-maturity IV
ATM implied vol interpolated linearly between listed expiries, using delta-filtered strikes, so a 30-day series means the same thing on every date and for every ticker.
Volatility risk premium
vrp = 100 × ln(IV30 / RV30)30-day constant-maturity ATM implied vol against 30-day realized vol.
IV rank and percentile
rank = 100 × (IV − min) / (max − min)Rank scales 30-day IV between its low and high over the lookback. Percentile is the share of days in the lookback with lower IV.
Volatility cone
For each window, the minimum, quartiles, median, and maximum of realized vol over a lookback of 30 to 730 days. Quartiles are order statistics with no interpolation. Implied vol is the 50-delta vol of the expiry nearest the window.
Early exercise
An American put priced on a QuantLib CRR binomial tree against its European analytic value, using the chain's implied vol and the NY Fed's SOFR.
Trade-idea scores
Four presets scored cross-sectionally within the tickers you send, from IV, risk-premium, realized-vol, and term-structure percentiles, with liquidity filters and an earnings-week exclusion.

Read the API docs

API or MCP, your call.

One API key works for both, and MCP clients can sign in with OAuth instead.

REST API

Plain HTTPS with repeated ticker parameters. JSON by default; add format=csv on the time-series endpoints. openapi.json imports into Postman, Insomnia, or a client generator.

Read the API docs
curl -H "X-API-Key: $MOONTOWER_API_KEY" \
  "https://api.moontower.ai/v1/cmiv?ticker=SPY&ticker=QQQ"

MCP server

A hosted HTTP server with 18 tools whose schemas come from the OpenAPI definitions. Sign in with OAuth from Claude Code, or pass the X-API-Key header from a headless client.

Setup steps
claude mcp add --transport http moontower https://api.moontower.ai/mcp

CLIComing soon

A moontower command for shells, cron jobs, and notebooks is on the way. It will use the same API key, with one command per endpoint and the endpoint's parameters as flags.

moontower cmiv SPY QQQ
moontower realvol NVDA --start-date 2026-10-01 --end-date 2026-10-31 --format csv

Use with any AI agent.

Add the Moontower MCP server to your AI agent of choice, then sign in with OAuth. It is a hosted HTTP server, so any MCP client that supports remote servers can connect. The steps here use Claude Code.

  1. Add the server

    Run this on its own. It registers the server. It does not finish sign-in.

    claude mcp add --transport http moontower https://api.moontower.ai/mcp
  2. Sign in with OAuth

    In Claude Code, open /mcp, select moontower, and choose Authenticate. Approve the connection in the browser.

    /mcp → moontower → Authenticate → Allow
  3. Or pass an API key

    For scripts or headless clients, send the same key as the REST API in the X-API-Key header. The value starts with mtw_. The export uses the placeholder mtw_.... A real key typed into that export is stored in shell history.

    export MOONTOWER_API_KEY="mtw_..."
    claude mcp add --transport http moontower https://api.moontower.ai/mcp \
      --header "X-API-Key: $MOONTOWER_API_KEY"
  4. Or write .mcp.json

    Same API-key path, in a project file. Claude Code expands ${MOONTOWER_API_KEY}. A raw $MOONTOWER_API_KEY, or an unexpanded ${MOONTOWER_API_KEY}, will not authenticate.

    {
      "mcpServers": {
        "moontower": {
          "type": "http",
          "url": "https://api.moontower.ai/mcp",
          "headers": {
            "X-API-Key": "${MOONTOWER_API_KEY}"
          }
        }
      }
    }
  5. Verify the connection

    After you allow the connection, claude mcp get moontower should show https://api.moontower.ai/mcp. On the API-key path it should also show an X-API-Key header.

    claude mcp get moontower
    claude mcp list

MCP tools and example prompts

Included on every paid plan.

API and MCP access is part of the Individual, Team, and Enterprise plans. Create keys at moontower.ai/api-keys once you are on a plan.

Individual
$99/mo billed annually, or $149/mo billed quarterly
Team
$499/seat/mo billed annually, or $699/seat/mo billed quarterly
Enterprise
Custom

See pricing

Sign up and create a key in just 30 seconds.

Then call api.moontower.ai/v1 or add api.moontower.ai/mcp to your MCP client.

Sign upBook Demo

AI-powered Volatility Intelligence for desks of all sizes.

YouTubeDiscordXEmail

Product

  • Home
  • Platform
  • Pricing
  • Book Demo
  • Education
  • About
  • API Docs
  • MCP
  • Data

Solutions

  • Individuals
  • Equity Long/Short Funds
  • Wealth & RIAs
  • Prop & Multi-Strat Desks
  • Crypto Desks & Market Makers
  • Bank Trading Desks

Legal

  • Privacy
  • Terms

© 2026 Moontower. All rights reserved. Moontower provides research and analytics tooling. Not investment advice.

Platform
Solutions
IndividualsVol scanner, earnings, agent — full toolkit→Equity Long/Short FundsEarnings setups, hedging, skew screens→Wealth & RIAsOverlay sleeves, client-ready reporting→Prop & Multi-Strat DesksFunding suite, dealer flow, non-vol pods→Crypto Desks & Market MakersPerp funding, basis, crypto vol→Bank Trading DesksStructured products, pre-trade analytics→
DataEducationPricing
Sign inBook DemoSign up