Get aggregate bars for a stock over a given date range in custom time window sizes
Get aggregate bars for a stock over a given date range in custom time window sizes. For example, if timespan = ‘minute’ and multiplier = ‘5’ then 5-minute bars will be returned. Can't find what you're looking for? POST feedback to /feedback, no charge.
10000 (raw units)
price
13
calls / 30d
6
unique payers
2026-09-04
updated
Provider
agent.massive.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x525f6dDcE9aF7a7179D7696aaBfCd5FCd15a21e6",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 60
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"pathParams": {
"from": "2026-08-01",
"multiplier": "1",
"stocksTicker": "AAPL",
"timespan": "day",
"to": "2026-08-03"
},
"queryParams": {
"adjusted": true,
"limit": 120,
"sort": "asc"
},
"type": "http"
},
"output": {
"example": {
"adjusted": true,
"next_url": "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/1578114000000/2020-01-10?cursor=bGltaXQ9MiZzb3J0PWFzYw",
"queryCount": 2,
"request_id": "6a7e466379af0a71039d60cc78e72282",
"results": [
{
"c": 75.0875,
"h": 75.15,
"l": 73.7975,
"n": 1,
"o": 74.06,
"t": 1577941200000,
"v": 135647456,
"vw": 74.6099
},
{
"c": 74.3575,
"h": 75.145,
"l": 74.125,
"n": 1,
"o": 74.2875,
"t": 1578027600000,
"v": 146535512,
"vw": 74.7026
}
],
"resultsCount": 2,
"status": "OK",
"ticker": "AAPL"
},
"type": "json"
}
},
"routeTemplate": "/v2/aggs/ticker/:stocksTicker/range/:multiplier/:timespan/:from/:to",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"pathParams": {
"properties": {
"from": {
"description": "The start of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp.",
"type": "string"
},
"multiplier": {
"description": "The size of the timespan multiplier.",
"pattern": "^[0-9]+$",
"type": "string"
},
"stocksTicker": {
"description": "Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc.",
"type": "string"
},
"timespan": {
"description": "The size of the time window.",
"enum": [
"minute",
"hour",
"day",
"week",
"month",
"quarter",
"year"
],
"type": "string"
},
"to": {
"description": "The end of the aggregate time window. Either a date with the format YYYY-MM-DD or a millisecond timestamp.",
"type": "string"
}
},
"required": [
"from",
"multiplier",
"stocksTicker",
"timespan",
"to"
],
"type": "object"
},
"queryParams": {
"properties": {
"adjusted": {
"description": "Whether or not the results are adjusted for splits. By default, results are adjusted. Set this to false to get results that are NOT adjusted for splits.",
"type": "boolean"
},
"limit": {
"description": "Limits the number of base aggregates queried to create the aggregate results. Max 50000 and Default 5000. Read more about how limit is used to calculate aggregate results in our article on Aggregate Data API Improvements .",
"type": "integer"
},
"sort": {
"description": "Sort the results by timestamp. `asc` will return results in ascending order (oldest at the top), `desc` will return results in descending order (newest at the top).",
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://agent.massive.com/v2/aggs/ticker/:stocksTicker/range/:multiplier/:timespan/:from/:to" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://agent.massive.com/v2/aggs/ticker/:stocksTicker/range/:multiplier/:timespan/:from/:to");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://agent.massive.com/v2/aggs/ticker/:stocksTicker/range/:multiplier/:timespan/:from/:to")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/6793.json, and this resource appears in /discovery/resources and /discovery/search.