Upgrading a Massive account is self-serve: change the plan on the subscriptions page of your dashboard, and your existing API keys pick up the new entitlement with nothing to regenerate. Two things catch people out. A subscription covers one asset class, so upgrading Stocks does nothing for an options or a crypto request. And real-time data additionally requires the exchange agreements to be signed, which is a separate step from paying.
Applies to
- Plans: every individual subscription, and the Stocks, Options and Currencies Business plans, which are also sold self-serve. Enterprise agreements and the futures business licenses go through sales.
- Endpoints: the upgrade changes what your existing keys are entitled to across REST, the WebSockets and the flat files. No endpoint changes.
- Asset classes: each subscription is per asset class, so upgrading Stocks does not affect Options.
How to upgrade
- Open the subscriptions page of your dashboard and choose the tier you want.
- Complete the payment. The entitlement change applies to your existing keys, so there is nothing to regenerate and nothing to redeploy.
- If the new tier includes real-time data, open the agreements page and sign the exchange agreements. This is a separate legal step and it is not part of checkout.
- Retry the request that was refused, and check which asset class it belongs to. A refusal after an upgrade is far more often the wrong product than a problem with the upgrade.
Each asset class is a separate subscription, so upgrading to Stocks Advanced does nothing for an options request. Buy the subscription for the asset class you need.
Why real-time needs a signature
Real-time needs a signature because the exchanges license their real-time feeds to end users directly, and we cannot pass that data on until you have accepted their terms. Nothing about this is visible from the API: an account with the plan but not the agreements gets the same response as an account without the plan, which is why this is the single most common reason an upgrade appears not to have worked.
If you signed the agreements a while ago and real-time stopped working after an upgrade, re-open the agreements page. Changing plan can bring a new agreement into scope.
Business, enterprise and commercial licenses
Commercial use needs a commercial license, and several of those are self-serve. The Stocks, Options and Currencies Business plans, and the Financials Business add-on, are bought on massive.com/business with a checkout button like any other plan. Enterprise agreements, the futures business licenses and the alternative datasets are arranged with sales@massive.com.
Which one you need is about use rather than volume: redistributing data, putting it in front of your own users, or covering a team rather than a person all call for a commercial license.
If you see an error
{"status":"NOT_AUTHORIZED","message":"You are not entitled to this data..."} after an upgrade means the request is for a different asset class than the one you upgraded. A subscription covers one product, so check which of the five the endpoint belongs to.
{"status":"NOT_AUTHORIZED","message":"Your plan doesn't include this data timeframe..."} means the product you called is not entitled to data that recent. After an upgrade the usual cause is that the request is for a different asset class than the one you upgraded, and the same request against an older date will often succeed because the unbought product's free tier still serves end-of-day data.
Data that is still delayed on a real-time plan, where the asset class is right, is the place to check the exchange agreements.

