Nothing here is a queue you wait in. Create an account, copy the API key from your dashboard, and the first request works: end-of-day aggregate bars, reference data and corporate actions across stocks, options, indices, currencies and futures. Real-time access is gated on two steps you take rather than on time passing, and one of them is easy to miss.
Applies to
- Plans: Basic, the free tier, for the immediate case; any real-time tier for the second.
- Endpoints: every REST endpoint, the WebSocket clusters and the flat files. The agreements gate all three.
- Asset classes: stocks, options, indices, futures, forex and crypto.
What works immediately
What works immediately is the free Basic tier of every product. Sign up, take the key from the keys page, and these work on the first request:
- End-of-day aggregate bars, by minute and by day, with two years of history
- Reference data: tickers, splits, dividends, exchanges, market status
- Corporate actions and technical indicators
- Five requests a minute, per asset class
Trades, quotes, snapshots, the WebSockets and the flat files are not on Basic. Those start at the first paid tier of the product you need.
What real-time needs
Real-time needs two steps after you pay, and neither of them is a queue you wait in:
- The paid tier covers the asset class you are querying. A subscription is per product, so Stocks Advanced does nothing for a crypto request. Do not regenerate the key: it reads the same subscriptions.
- The exchange agreements are signed. Open the agreements page and sign the ones listed. The exchanges license real-time data to end users, so we cannot pass it to you until you have accepted their terms.
Why an unsigned agreement looks like a bug
An unsigned agreement looks like a bug because nothing tells you about it. There is no pop-up in the dashboard and no distinct API response: a paid real-time key with unsigned agreements returns delayed data or a refusal, exactly as a key with no plan does. Flat file downloads fail the same way, with a bare 403 and an empty body.
So if you have paid for real-time and are not getting it, check the agreements page before anything else. It is the most common cause by a wide margin, and it takes one click to rule out.
If you see an error
{"status":"NOT_AUTHORIZED","message":"Your plan doesn't include this data timeframe..."} with HTTP 403 on a current-day request, while the same request on an older date returns data, means that product's tier does not cover data this recent. Check which asset class the request belongs to first, then the tier, then the agreements.
A bare HTTP 403 with an empty body from the flat files has the same two possible causes, the plan or the agreements, and the response does not distinguish them. Check what your plan reaches in the File Browser, then the agreements page.
Data that arrives on the right asset class but a tier behind what you bought, rather than being refused, is where the exchange agreements are worth checking.

