Dive deep into the world of Open, High, Low, Close, and Volume data with Massive. This category is pivotal for those analyzing market trends, offering comprehensive and detailed insights into price movements, trading volumes, and market dynamics. It's an invaluable resource for understanding the nuances of financial markets and making informed decisions.
Knowledge Base/Aggregates
Knowledge Base
Aggregates
- Title
- How can I tell whether a specific trade updated the OHLCV aggregate bar?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- Stocks Category
Stocks
- Description
- Take the conditions array from the trade and look each code up on the conditions endpoint. Its update_rules field says whether that condition updates the high and low, the open and close, and the volume of a regular-hours minute bar or a daily bar.
- Title
- Does a Form T trade update a pre-market minute bar's high, low, open and close?
- Aggregates Category
Aggregates
- Stocks Category
Stocks
- Trades Category
Trades
- Description
- Yes. On Massive's pre-market and after-hours minute bars, a Form T trade can set the open, high, low and close unless it also carries a condition such as Odd Lot that cannot set prices, while a daily bar and a regular-hours minute bar never take a price from a Form T trade.
- Title
- Does Massive have per second aggregates available?
- Aggregates Category
Aggregates
- WebSockets Category
WebSockets
- Description
- Yes, both ways. Per-second bars stream live on every WebSocket cluster, with a channel name that differs by asset class, and the REST aggregates endpoint builds them historically with a timespan of second.
- Title
- How are Massive's forex bars built, and what do v and n mean on a forex bar?
- Aggregates Category
Aggregates
- Currencies Category
Currencies
- Forex Category
Forex
- Quotes Category
Quotes
- Description
- Massive builds forex bars from the bid price of every quote in the window, so the open, high, low and close are bids, n is the number of quotes, v repeats that count because forex has no traded volume, and vw is the plain average of the bids.
- Title
- How can I get the daily prices for all stocks using Massive's market data?
- Aggregates Category
Aggregates
- Stocks Category
Stocks
- Description
- Use the grouped daily bars endpoint. One request returns one bar for every US ticker that traded on a date, over 12,000 rows, instead of a request per symbol.
- Title
- How do I get intraday bars for a futures contract?
- Aggregates Category
Aggregates
- REST Category
REST
- Description
- Look up the contract that was trading on the date you want with the futures contracts endpoint, then ask the futures aggregates endpoint for that contract ticker at the resolution you need, such as 1min.
- Title
- How does Massive create aggregate bars?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- Description
- From eligible trades. Each trade carries sale conditions defined by the CTA and UTP plans, and those conditions decide whether it may update the open, high, low, close or volume, so a bar is a sum of eligible trades rather than of all trades.
- Title
- How does Massive deal with minutes where no trades occurred?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- Description
- The minute is left out. No bar is created for a window with no eligible trade, and no tick data exists for it either, so a gap in the series means nothing happened rather than something being lost.
- Title
- How does Massive treat hourly bars when querying regular trading hours?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- Description
- Bar windows are anchored to the start of the day, not to the trading session, so an hour bar begins on the hour and never at 09:30. There is no session parameter, so a regular-hours or premarket figure has to be built from minute bars.
- Title
- How is a stock bar's VWAP calculated, and why can it fall outside the high and low?
- Aggregates Category
Aggregates
- Stocks Category
Stocks
- Trades Category
Trades
- Description
- The vw on a Massive stock bar is the size-weighted average price of every trade that counts toward the bar's volume, including odd-lot, average-price and contingent trades that may not set the high or low, so vw can sit outside the bar's range.
- Title
- On the free Basic plan, when can I pull the previous trading day's data?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- REST Category
REST
- Description
- On Massive's free Stocks Basic plan, a trading day's bars are available after midnight ET, once that day is no longer the current day; before then a request for that day returns HTTP 403, and the 11:00 AM ET time in the flat-file documentation applies to flat files, not to the REST API.
- Title
- What is the function of the limit parameter in Massive's aggregate endpoint?
- Aggregates Category
Aggregates
- REST Category
REST
- Description
- It caps how many base units the endpoint scans, not how many bars it returns. On any minute-based request the base unit is one minute, so a 1-hour request with limit 50 scans 50 minutes and returns one bar. The maximum is 50,000.
- Title
- Why am I receiving a late aggregate bar through Massive's WebSockets?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- WebSockets Category
WebSockets
- Description
- Late bars are deliberate. Trades can be reported minutes after they happen, so we hold each bar open for late trades and rebroadcast it when one changes it, rather than publishing a bar we know will turn out wrong.
- Title
- Why are there missing aggregates in Massive's data?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- Trades Category
Trades
- Description
- A window with no eligible trade produces no bar at all, rather than an empty one. This is common: AAPL produced 885 minute bars in a 960-minute session on an ordinary day. Check the trades endpoint for the same window to tell a real gap from an ineligible one.
- Title
- Why does volume return as a decimal value from the aggregates endpoint?
- Aggregates Category
Aggregates
- FAQ Category
FAQ
- Stocks Category
Stocks
- Description
- Because fractional shares trade. A bar sums the real sizes of its trades, and a trade for a quarter of a share contributes 0.25, so the total is fractional. It has nothing to do with the adjusted parameter.
- Title
- Why doesn't a bar from the REST API match the same bar in the flat files?
- Aggregates Category
Aggregates
- Data Coverage Category
Data Coverage
- Description
- REST stock bars are split-adjusted by default and the stock flat files never are, so request adjusted=false; every asset class also differs in format, such as timestamp units, ticker spelling or decimal places.

