Massive (formerly Polygon.io)
- Free allowance
- Stocks Basic USD 0/month: 5 API calls per minute, 2 years of historical data, end-of-day data; each asset class (stocks, options, indices, currencies, futures) has its own free Basic tier at 5 requests a minute
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- emailno card, no phone
- Binding limit
- request-rate5 requests per minute per asset class on Basic
- Evidence
- documented36 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-12-04checked 2026-11-03 (live); stale on 2026-12-04
| Free tier | Stocks Basic USD 0/month: 5 API calls per minute, 2 years of historical data, end-of-day data; each asset class (stocks, options, indices, currencies, futures) has its own free Basic tier at 5 requests a minute unit requests; metered on request-count; Basic reaches end-of-day aggregate bars, reference data, corporate actions and technical indicators over REST only; trades, quotes, snapshots, WebSockets and flat files start at the paid tiers. Paid tiers have no request limit: Stocks Starter is USD 29/month with 5 years of history, 15-minute delayed data and flat files. Extra API keys share the account's limits. Polygon.io was renamed Massive on 2025-10-30, and polygon.io redirects to massive.com. |
|---|---|
| Price | none stated |
| Limits |
History depth on Stocks Basic is 2 years, end-of-day; no limits[] kind names a history window, and the term it needs is history-window. Bulk path: flat files over S3 from Stocks Starter (USD 29/month) up; no bulk path on Basic. |
| Binding | request-rate 5 requests a minute is the only numeric limit on Basic; the 2-year window bounds what those requests reach. |
| Identity | email Signup offers GitHub, Google or email; registration asks for information that may include a name and an email. The stocks page states the free tier needs no credit card. A call without a key answers HTTP 401 with 'API Key was not provided'. |
| Egress | not metered in bytes; 5 requests a minute per asset class bound what a free key can pull |
| Per-object cap | not applicable: one JSON response per call |
| Interface | rest, s3-compatible REST at https://api.massive.com, with api.polygon.io answering in parallel. Flat files are compressed CSVs over an S3-compatible endpoint, https://files.massive.com, bucket flatfiles, from the first paid tier up; the free Basic tier is REST only. endpoint: https://api.massive.com |
| Tooling | curl or any HTTP client; flat files with an S3 client (the AWS CLI, rclone, the MinIO client and boto3 are named) |
| Composes with | Free end-of-day bars for two years at 5 calls a minute; for history past two years the Alpha Vantage weekly or monthly series and the Twelve Data daily series reach further back for free, and the paid tiers sell flat files. |
| Reliability | The api.polygon.io base still answers but is announced for phase-out; api.massive.com is the current base. |
| Notes | The free tier is a sampler: 5 calls a minute per asset class, end-of-day, two years back. The value of the provider is the paid flat files, which are the only bulk path among the four market data records. |
| Evidence note | documented The Basic tier, the per-asset-class limit and the flat-file gate are documented on the pricing page and knowledge-base articles. Keyless probes of both API bases answered 401 with the same error; the 5-per-minute cut-off needs a free key to measure. |
| Parsed numbers |
|
Evidence 36
| date | source | what it proved |
|---|---|---|
| 2026-10-30 | massive.com/pricing?product=stocks | Stocks Basic allows 5 API calls per minute |
| 2026-10-30 | massive.com/pricing?product=stocks | Stocks Basic reaches 2 years of history |
| 2026-10-30 | massive.com/pricing?product=stocks | Stocks Basic data is end-of-day |
| 2026-10-30 | massive.com/pricing?product=stocks | Stocks Basic costs USD 0 a month |
| 2026-10-30 | massive.com/pricing?product=stocks | the stocks plans, Basic among them, are labelled individual use |
| 2026-10-30 | massive.com/pricing?product=stocks | Stocks Starter reaches 5 years of history |
| 2026-10-30 | massive.com/pricing?product=stocks | Stocks Starter data is 15-minute delayed |
| 2026-10-30 | massive.com/pricing?product=stocks | Stocks Starter is USD 29 a month |
| 2026-10-30 | massive.com/knowledge-base/article/what-is-the-request-limit | each asset class has a free Basic tier at 5 requests a minute, and paid tiers have no request limit |
| 2026-10-30 | massive.com/knowledge-base/article/what-is-the-request-limit | extra API keys share the account's limits |
| 2026-10-30 | massive.com/knowledge-base/article/what-are-the-different-ma | Basic is REST only; WebSockets, flat files, trades, quotes and snapshots need a paid tier |
| 2026-10-30 | massive.com/knowledge-base/article/does-massive-offer-free-t | Basic gives end-of-day bars, reference data, corporate actions and indicators with two years of history at 5 requests a minute |
| 2026-10-30 | massive.com/flat-files | the bulk path is compressed CSV flat files over an S3-compatible endpoint |
| 2026-10-30 | massive.com/flat-files | flat files need a subscription that includes them |
| 2026-10-30 | massive.com/flat-files | the flat-file endpoint is files.massive.com |
| 2026-10-30 | massive.com/flat-files | the flat-file bucket is named flatfiles |
| 2026-10-30 | massive.com/flat-files | flat files are read with S3-compatible clients |
| 2026-10-30 | massive.com/stocks | the free tier is 5 requests a minute and needs no credit card |
| 2026-10-30 | massive.com/dashboard/signup | signup by email is offered beside GitHub and Google |
| 2026-10-30 | massive.com/legal/individuals-terms-of-service | registration asks for information that may include a name and an email |
| 2026-10-30 | massive.com/terms | products labelled Individual Use fall under the individuals terms |
| 2026-10-30 | massive.com/blog/polygon-is-now-massive | Polygon.io was renamed Massive on 2025-10-30 |
| 2026-10-30 | massive.com/blog/polygon-is-now-massive | polygon.io redirects to massive.com |
| 2026-10-30 | massive.com/blog/polygon-is-now-massive | api.polygon.io and api.massive.com both serve the API |
| 2026-10-30 | massive.com/blog/polygon-is-now-massive | the api.polygon.io endpoints are announced for phase-out |
| 2026-10-30 | probe: https://api.massive.com/v2/aggs/ticker/AAPL/prev | api.massive.com answered HTTP 401 to a call without a key |
| 2026-10-30 | probe: https://api.massive.com/v2/aggs/ticker/AAPL/prev | the keyless call to api.massive.com is refused for a missing key |
| 2026-10-30 | probe: https://api.polygon.io/v2/aggs/ticker/AAPL/prev | api.polygon.io still answered, with HTTP 401 to a call without a key |
| 2026-10-30 | probe: https://api.polygon.io/v2/aggs/ticker/AAPL/prev | api.polygon.io returns the same missing-key error as api.massive.com |
| 2026-11-02 | massive.com/knowledge-base/article/what-is-the-request-limit | the knowledge base says the over-limit JSON error comes with HTTP 429 when an asset class is on its Basic tier |
| 2026-11-02 | massive.com/knowledge-base/article/what-is-the-request-limit | the knowledge base prints this JSON error as the body that comes with HTTP 429 |
| 2026-11-02 | massive.com/knowledge-base/article/what-is-the-request-limit | the 429 response carries a request_id |
| 2026-11-02 | massive.com/pricing?product=stocks | Stocks Basic reaches 2 years of historical data at end-of-day recency, a history window that no limits[] kind names |
| 2026-11-02 | massive.com/knowledge-base/article/what-is-the-request-limit | the knowledge base gives the 5-per-minute limit and names no reset instant |
| 2026-11-02 | massive.com/pricing?product=stocks | Stocks Basic is USD 0 a month with 5 API calls a minute, 2 years of historical data and end-of-day data |
| 2026-11-02 | massive.com/knowledge-base/article/what-is-the-request-limit | each asset class not subscribed to sits on a free Basic tier of 5 requests a minute; paid classes have no request limit |
More fields 4
| bulk path | flat files (S3-compatible, files.massive.com, bucket flatfiles) on paid tiers only; no bulk path on Basic |
|---|---|
| history depth | 2 years, end-of-day, on Stocks Basic |
| renamed from | Polygon.io |
| cutoff | {"http_status": "429","body": "{\"status\":\"ERROR\",\"error\":\"You've exceeded the maximum requests per minute, please wait or upgrade your subscription to continue. https://massive.com/pricing\"}; the 429 response also carries a request_id","reset": "unverified: behind a sign-up: no Massive page says how the 5-per-minute window resets, and a Basic key is needed to observe it"} |
Unknown values 1
- retention stated: the field does not apply to this kind of offer