Migrate from EODHD

Port EODHD calls to the Massive API

This guide is for developers who call the EODHD API for US data and want to run the same app on Massive. It maps each common endpoint to the Massive endpoint that replaces it, and lists the differences that change your results. To compare the two products before you switch, see Massive vs EODHD.

Massive covers US stocks, options, indices, and futures, plus global forex and crypto. If you use EODHD for listings on non-US exchanges, keep it for those.

Before you start

Using AI?

Paste this into Claude Code, Cursor, Codex, or any coding agent that can read files and fetch a URL:

Find every place my project calls EODHD for US data.
Switch those calls to the Massive REST API.
Read https://massive.com/docs/migration/guides/eodhd.md for the endpoint map and the differences to handle.
Read https://massive.com/docs/llms.txt for the rest of the API.
Read the API key from the MASSIVE_API_KEY environment variable.
Keep my function signatures and data shapes the same, and list anything Massive does not cover.

To let the agent check real responses while it works, connect the Massive MCP server. Massive also publishes skills and plugins for coding agents.

The request

EODHD takes the key as an api_token query parameter and returns CSV unless you pass fmt=json. Massive takes the key in an Authorization: Bearer header and always returns JSON. Both treat the start and end dates as inclusive.

curl "https://eodhd.com/api/eod/AAPL.US?api_token=YOUR_API_KEY&from=2025-10-01&to=2025-10-03&period=d&fmt=json"

On Massive, drop the .US suffix and the fmt parameter:

Massive
curl "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/2025-10-01/2025-10-03?adjusted=false" \
  -H "Authorization: Bearer YOUR_API_KEY"
  • Intraday ranges. EODHD takes intraday from and to as Unix seconds, and caps 1-minute bars at 120 days per request. Massive takes dates or Unix milliseconds, and returns a next_url when there is more data. The Python client follows it for you.
  • Call weights. EODHD counts intraday and news calls as 5, fundamentals as 10, and bulk as 100. Massive has no per-call cost on paid plans, so you can remove code that counts calls.

The response

EODHD returns a list, with raw prices plus an adjusted_close adjusted for splits and dividends:

[
  {
    "date": "2025-10-01",
    "open": 255.04,
    "high": 258.79,
    "low": 254.93,
    "close": 255.45,
    "adjusted_close": 254.51,
    "volume": 48713940
  }
]

Massive returns one set of prices, chosen by adjusted:

{
  "results": [
    {
      "t": 1759291200000,
      "o": 255.04,
      "h": 258.79,
      "l": 254.93,
      "c": 255.45,
      "v": 48713940,
      "vw": 256.004,
      "n": 535581
    }
  ]
}
EODHDMassiveNote
datetUnix milliseconds at the bar start. Daily bars start at midnight ET
openo
highh
lowl
close, adjusted_closecc matches close when you set adjusted=false. For adjusted_close, see Prices below
volumevEODHD adjusts volume for splits. Massive adjusts volume only when adjusted=true
NonevwVolume-weighted average price
NonenNumber of trades
  • Intraday timestamps. EODHD intraday timestamp is Unix seconds. Massive t is Unix milliseconds.
  • Fundamentals. EODHD often returns numbers as strings, such as "416161000000.00", and "NA" for missing values. Massive financials are numbers.

Symbols

EODHDMassive
AAPL.USAAPL
EURUSD.FOREXC:EURUSD
BTC-USD.CCX:BTCUSD
GSPC.INDXI:SPX
A non-US listing, such as BP.LSENot covered. Massive stocks are US listings only

Prices

  • EODHD open, high, low, and close are as traded. Massive bars are split adjusted by default. Set adjusted=false to match.
  • No Massive setting matches adjusted_close, because it includes dividends. To rebuild it, use the historical adjustment factor from Dividends.

Sources: EODHD end-of-day API, intraday API, EODHD pricing.

Endpoint map

This map covers the most common calls. It is not a full list. To find the Massive endpoint for another call, search these docs.

EODHD endpointMassive endpoint
/api/eod/{symbol}Custom Bars with timespan=day, week, or month
/api/intraday/{symbol}Custom Bars with timespan=minute or hour
/api/real-time/{symbol}Single Ticker Snapshot, or Unified Snapshot for a list
/api/eod-bulk-last-day/USDaily Market Summary
/api/div/{symbol}Dividends
/api/splits/{symbol}Splits
/api/ticksTrades. Massive also has NBBO quotes
/api/fundamentals/{symbol}Ticker Overview, Income Statements, Balance Sheets, Cash Flow Statements, Ratios
/api/exchange-symbol-list/USAll Tickers
/api/search/{query}All Tickers with search
/api/newsNews
Insider transactionsInsider Activity, Form 4
Technical indicatorsSMA, EMA, RSI, MACD. Compute other indicators from bars
US optionsOptions Custom Bars, All Contracts, Option Chain Snapshot
/api/eod/EURUSD.FOREX, BTC-USD.CC, GSPC.INDXForex Custom Bars, Crypto Custom Bars, Indices Custom Bars
Macro indicatorsUS only: Treasury Yields, Inflation, Labor Market
Earnings and IPO calendarsBenzinga Earnings, a paid add-on, and IPOs
Exchange hours and holidaysMarket Status, Market Holidays

Massive currently doesn't have an equivalent for non-US stock listings, mutual funds, or macro data outside the US. New data and features ship often, so check the product roadmap for what's planned.

Streaming

EODHD streams from wss://ws.eodhistoricaldata.com/ws/us, /us-quote, /forex, and /crypto, with up to 50 symbols per key. Its US trades and quotes come from one exchange, Cboe EDGX. Massive streams every US exchange, with one connection per asset class:

EODHD streamMassive
uswss://socket.massive.com/stocks, with trades
us-quotewss://socket.massive.com/stocks, with NBBO quotes
forexwss://socket.massive.com/forex, with quotes
cryptowss://socket.massive.com/crypto, with trades and quotes

Massive authenticates with a message after you connect, not with a URL parameter. See the WebSocket quickstart.

Bulk history

EODHD's bulk endpoint returns one exchange for one day, and costs 100 calls. Massive flat files hold one day per file across every US stock, with full history. Use daily bars, minute bars, trades, or quotes.

SDKs

LanguageEODHDMassive
Pythoneodhdclient-python
JavaScriptOfficial Node.js and TypeScript SDKclient-js
R, C#, MATLABOfficial clientsNone. Call the REST API directly
Go, Kotlin/JVMNoneclient-go, client-jvm

Sources

EODHD details were checked against the EODHD API documentation on October 29, 2026. EODHD is a trademark of its owner. Massive is not affiliated with EODHD.

Did you find this page helpful?
Do you still need help with something?