Three different answers apply depending on which endpoint you call, and mixing them is what produces a series that quietly fails to reconcile. REST bars are adjusted unless you ask otherwise, ticks and flat files never are, and nothing anywhere is dividend-adjusted. The consequence worth planning for: an adjusted series is recomputed against today's share count, so the history you downloaded last year no longer matches the history you download today.
Applies to
- Plans: aggregate bars, including the grouped endpoint, are on every Stocks plan. Trades, quotes and the stock flat files need a paid plan: Stocks Basic includes none of them, and each one's documentation, such as trades or the minute aggregates flat files, lists the plans that include it.
- Endpoints and files: /v2/aggs/... and the grouped endpoint take an adjusted parameter; /v3/trades, /v3/quotes and the stock flat files do not, because they are never adjusted.
- Asset classes: US stocks and ETFs, where splits happen.
What is adjusted and what is not
What is adjusted depends on what you ask for, and there are three different answers:
| Data | Split adjusted? | Dividend adjusted? |
|---|---|---|
| Aggregate bars, default | Yes | No |
| Aggregate bars with adjusted=false | No | No |
| Trades and quotes | Never | Never |
| Stock flat files, every dataset | Never | Never |
| Dividend cash_amount | No, stored as paid | Not applicable |
The flat files row comes from the stocks flat files overview, which states that all stock flat files contain unadjusted data: prices and volumes are not adjusted for splits, dividends or other corporate actions.
How to get raw prices
curl -X GET "https://api.massive.com/v2/aggs/ticker/NVDA/range/1/day/2024-06-06/2024-06-07?adjusted=false&apiKey=YOUR_API_KEY"
Response
{ "ticker": "NVDA", "adjusted": false, "results": [{ "c": 1209.98 }], "status": "OK" }
The same request with no parameter returns "adjusted": true and a close of 120.998, because NVDA split ten for one on 10 June 2024. The adjusted field in the envelope always tells you which version you received, so read it rather than assuming.
Which one to store
Store the unadjusted prices if you are keeping a permanent record. An adjusted series is computed against today's share count, so it changes retroactively every time the company splits again: the history you downloaded last year no longer matches the history you download today, and nothing in your data will tell you it moved. Storing raw prices plus the split records from /stocks/v1/splits lets you rebuild any adjusted view you need and keeps the stored numbers stable.
Use the adjusted default when you are charting or computing returns across a split and do not intend to keep the result.
Why there is no dividend adjustment
There is no dividend-adjusted series because a dividend adjustment is a modeling choice rather than a fact. It depends on whether you assume dividends are reinvested, at what price, and whether you net out withholding tax, and different vendors answer those differently, which is why two dividend-adjusted series of the same stock rarely agree. Massive publishes the raw prices and the dividend records, so you can apply whichever convention your work requires.
If you see an error
A price series with a step on one date, and no news to explain it, is almost always an unadjusted series crossing a split. Check /stocks/v1/splits for an execution_date near the step.
Bars that disagree with a broker statement are usually the adjustment. Ask for adjusted=false and compare again.
Trades that disagree with an adjusted bar are expected: the trades are raw. That is not a data error.

