Knowledge Base/What is the request limit for Massive's RESTful APIs?

What is the request limit for Massive's RESTful APIs?

Five requests a minute per asset class you have not subscribed to, and no limit on the ones you have. The limit is counted per asset class rather than per account, so a paid Options plan does not lift the limit on your stock requests.

Massive counts requests per asset class, not per account. Every asset class you have not subscribed to sits on its free Basic tier, which allows 5 requests a minute, and every asset class you pay for has no request limit. So an account with a paid Options plan makes unlimited options requests and is still capped at 5 a minute for stocks, and that mismatch is the most common reason people contact us about rate limits.

Applies to

  • Plans: the free Basic tier of each product allows 5 requests a minute; every paid tier of a product is unlimited for that product.
  • Endpoints: every REST endpoint under https://api.massive.com. WebSocket connections are counted separately and are not requests.
  • Asset classes: stocks, options, indices, currencies and futures, each counted on its own.

What your account actually allows

What your account allows is one limit per asset class. A product you have never bought is not absent from that list, it is present at its free tier:

The request is forYour limit
An asset class you have a paid plan forNo limit
An asset class you have not bought5 a minute, that product's Basic tier
Reference and cross-asset endpointsCounted in their own bucket rather than under one asset class

Creating more API keys does not change any of this. The limits belong to the account's subscriptions, which is why customers who generate a second key see exactly the same behavior.

If you upgraded and are still limited

If you upgraded and are still limited, work through these in order. The first is the answer far more often than the rest combined:

  1. Check which asset class the request is for. A paid Options plan does nothing for a request about AAPL, and a paid Stocks plan does nothing for X:BTCUSD. An ETF such as SPY is a stock; an index option is Options; forex and crypto are both Currencies.
  2. Check that the subscription is for the product you meant to buy, on your subscriptions page.
  3. Do not regenerate the key. A new key inherits the same subscriptions, and it breaks anything already using the old one.
  4. If the request really is for a product you pay for, start a chat at massive.com/contact with the request_id from the 429 response. That identifies the exact request, including which asset class we counted it under.

Why it works this way

It works this way because a subscription is per product rather than per account: you buy Stocks, or Options, or Currencies, and each one carries its own tier. There is no account-level plan to lift a limit globally, so an account is best understood as five independent subscriptions that happen to share a login and a key. That is also why an upgrade needs no new key: the entitlement is attached to the account's products and every existing key reads the same set.

If you see an error

{"status":"ERROR","error":"You've exceeded the maximum requests per minute, please wait or upgrade your subscription to continue. https://massive.com/pricing"} with HTTP 429 means this request's asset class is on its Basic tier. Check the asset class before anything else.

{"status":"NOT_AUTHORIZED","message":"Your plan doesn't include this data timeframe..."} with HTTP 403 is a different problem: you are asking for data more recent than that product's tier covers. The same request against an older date will usually succeed, which is the quickest way to confirm it.

A 429 on an asset class you definitely pay for is worth reporting rather than retrying. Send the request_id.

Related


Was this article helpful?

Modernizing Wall St.

Reimagining financial market data for the 21st century.

Schedule a demo

Talk with our market data experts

Recommended

Can't find the answer you're looking for? Contact our team.
  • Title
    Are all indices available through the basic subscription tier?
    Data Coverage Category

    Data Coverage

    Indices Category

    Indices

    Description
    No, and the ones it withholds are the famous ones: SPX, DJI, RUT and VIX all need a paid Indices tier. Basic still reaches more than 10,000 of the 13,000-odd indices Massive publishes, and NDX and the Nasdaq Composite are among them.
  • Title
    Does Massive offer dark pool data?
    Data Coverage Category

    Data Coverage

    Stocks Category

    Stocks

    Description
    Yes. Off-exchange prints, which include dark pool executions, arrive on the ordinary trades feed and are identified by an exchange ID of 4. There is no separate dark pool endpoint, and no way to tell which individual venue a print came from.
  • Title
    Does Massive offer pre-market and after-hours data?
    FAQ Category

    FAQ

    Stocks Category

    Stocks

    Description
    Yes. Every extended-hours trade and quote is published, from 04:00 to 20:00 Eastern. There is no session parameter, so you select a session with timestamps, and expect far fewer aggregate bars outside regular hours because many extended-hours trades are odd lots that cannot set a price.