Massive (formerly Polygon.io) provides real-time and historical market data across stocks, options, crypto, and forex — including OHLCV aggregates, options chains with full Greeks, technical indicators, and financial news.
Setup
Set environment variable
export MASSIVE_API_KEY="your-api-key"
Start using
from horizon.providers import MassiveProvider as M
snap = M.snapshot("AAPL")
Massive is the rebrand of Polygon.io (October 2025). The API is identical — same endpoints, same keys.
Both api.massive.com and api.polygon.io work. Horizon uses api.massive.com by default.
Snapshots
Real-time price snapshot with day OHLCV, previous close, last trade, and last quote.
from horizon.providers import MassiveProvider as M
snap = M.snapshot("AAPL")
# snap["todaysChange"], snap["day"]["c"], snap["lastTrade"]["p"]
horizon providers massive snapshot AAPL
OHLCV Bars
Historical and intraday aggregates at any resolution.
# Daily bars
bars = M.aggregates("AAPL", 1, "day", "2024-01-01", "2024-06-30")
# 5-minute bars
bars = M.aggregates("AAPL", 5, "minute", "2024-06-01", "2024-06-01")
# Previous close
prev = M.previous_close("TSLA")
# Daily bars
horizon providers massive bars AAPL --from 2024-01-01 --to 2024-06-30
# 5-minute bars
horizon providers massive bars AAPL --from 2024-06-01 --to 2024-06-01 --timespan minute --multiplier 5
Timespan options: second, minute, hour, day, week, month, quarter, year
Each bar contains:
| Field | Description |
|---|
o | Open price |
h | High price |
l | Low price |
c | Close price |
v | Volume |
vw | Volume-weighted average price |
t | Timestamp (Unix ms) |
n | Number of transactions |
Top Movers
Get the top 20 gainers or losers across the market.
gainers = M.gainers_losers("gainers")
losers = M.gainers_losers("losers")
horizon providers massive movers --direction gainers
horizon providers massive movers --direction losers
Last Trade & Quote
Most recent trade and NBBO quote for a ticker.
trade = M.last_trade("NVDA")
quote = M.last_quote("NVDA")
horizon providers massive quote NVDA
Options Chain
Full options chain with Greeks (delta, gamma, theta, vega) and implied volatility.
# Full chain
chain = M.options_chain("AAPL")
# Filtered: calls expiring June 2024, strikes $150-$200
chain = M.options_chain(
"AAPL",
contract_type="call",
expiration_date="2024-06-21",
strike_price_gte=150,
strike_price_lte=200,
)
horizon providers massive options AAPL --type call --expiry 2024-06-21 --strike-gte 150 --strike-lte 200
Each contract includes:
| Field | Description |
|---|
break_even_price | Break-even price |
open_interest | Open interest |
implied_volatility | Implied volatility |
greeks.delta | Delta |
greeks.gamma | Gamma |
greeks.theta | Theta |
greeks.vega | Vega |
last_quote | Bid/ask |
day | Day OHLCV |
Technical Indicators
Built-in technical indicator calculations.
# Simple Moving Average
sma = M.sma("AAPL", window=200)
# Exponential Moving Average
ema = M.ema("AAPL", window=50)
# RSI
rsi = M.rsi("TSLA", window=14)
# MACD
macd = M.macd("AAPL")
horizon providers massive sma AAPL --window 200
horizon providers massive rsi TSLA --window 14
horizon providers massive macd AAPL
Indicator parameters:
| Parameter | Description | Default |
|---|
timespan | second/minute/hour/day/week/month | day |
window | Lookback period | 50 (SMA/EMA), 14 (RSI) |
series_type | open/high/low/close | close |
limit | Number of values | 50 |
Ticker Details & Search
Look up company information or search for tickers.
# Full details
details = M.ticker_details("NVDA")
# details["name"], details["market_cap"], details["description"]
# Search
results = M.search_tickers("apple", market="stocks")
horizon providers massive details NVDA
horizon providers massive search "apple" --market stocks
News
Financial news with sentiment analysis and ticker tagging.
# General market news
news = M.news(limit=10)
# Ticker-specific
aapl_news = M.news(ticker="AAPL", limit=5)
horizon providers massive news --ticker AAPL --limit 5
Each article includes title, description, article_url, published_utc, tickers, and insights with sentiment analysis.
Corporate Actions
Dividends and stock splits.
divs = M.dividends("AAPL")
splits = M.splits("TSLA")
horizon providers massive dividends AAPL
Crypto
Crypto market data using X:BTCUSD format.
btc = M.crypto_snapshot("X:BTCUSD")
# Crypto movers
gainers = M.crypto_gainers_losers("gainers")
# OHLCV bars (same aggregates function)
bars = M.aggregates("X:BTCUSD", 1, "day", "2024-01-01", "2024-06-30")
horizon providers massive crypto X:BTCUSD
Forex
Real-time forex conversions and snapshots. Pairs use C:EURUSD format.
rate = M.forex_conversion("EUR", "USD")
snap = M.forex_snapshot("C:EURUSD")
horizon providers massive forex EUR USD
Market Status
Check if markets are currently open.
status = M.market_status()
holidays = M.market_holidays()
horizon providers massive status
Rate Limits
| Tier | REST Limit | Data |
|---|
| Free | 5 req/min | Delayed (15 min) |
| Paid | Unlimited | Real-time |
Paid plans are recommended for trading use. Stay under 100 req/sec.
All functions are available via the market_data compound MCP tool with an action parameter:
// Example: get AAPL snapshot
{"action": "snapshot", "params": "{\"ticker\": \"AAPL\"}"}
Available actions: aggregates, snapshot, last_trade, last_quote, previous_close, grouped_daily, gainers_losers, crypto_gainers_losers, ticker_details, search_tickers, market_status, market_holidays, sma, ema, rsi, macd, options_chain, options_contracts, news, dividends, splits, crypto_snapshot, forex_conversion, forex_snapshot.