Getting started
Plans and entitlements
Compare the plans#
| API Developer | API Pro | |
|---|---|---|
| Price | $149.99 per month | $249.99 per month |
| REST, MCP and exports | Yes: 149 REST endpoints, 48 MCP tools | Yes |
| Rate limits | 250 per minute, 30 per second | 250 per minute, 30 per second |
| History window | 30 days | 365 days |
Overnight (gth) data | No | Yes |
| WebSocket streams | No | Yes: one connection per stream, up to 20 analytics subscriptions |
| Free trial | None | None |
The history windows are the defaults. GET /v1/account returns the ones that apply to you in entitlements.history_days, together with plan, overnight, streaming and the enabled datasets.
There are no credits and no overage charges: usage is limited only by the rate limits, which are the same on every plan.
History window#
Endpoints that read past data list the time parameters the window applies to: start_time, end_time, timestamp and date. They are shown as x-history-params in the OpenAPI document and as the history-bounded badge on an endpoint page. A request that reaches back past the window is 403 history_limit_exceeded.
The window is a ceiling, not a promise: what exists is also limited by retention. See Data coverage and limits.
Overnight data#
Overnight (gth) option data exists for SPX, SPXW, XSP, VIX, VIXW, RUT and RUTW. It needs API Pro in three situations:
session=gthorsession=allon an endpoint that accepts them (marked overnight in the reference).- Reading live chains and contract snapshots of those roots outside weekday 09:30 to 16:15 ET.
- The futures-implied index price endpoint, /v1/indices/implied-price.
During the regular session, parts of a contract that come from the overnight session are withheld (null) for plans without it. They are listed in meta.coverage.missing and counted in meta.coverage.withheld. An overnight request without API Pro is 403 overnight_required.
WebSocket streams#
Streaming needs API Pro: one connection per stream, and up to 20 analytics subscriptions. Without it the upgrade is refused with 403 streaming_not_in_plan. See WebSockets.
Dataset releases#
Data is grouped into four datasets that a deployment enables separately. entitlements.datasets in GET /v1/account lists the enabled ones, and an endpoint of a dataset that is not enabled answers 403 dataset_release_restricted.
| Dataset | Endpoints |
|---|---|
options | /v1/options/* |
futures | /v1/futures/* |
indices | /v1/indices/* |
equities | /v1/stocks/*, /v1/news and /v1/market/overview. The index and futures parts of the overview also need indices and futures, below. |
| none | /v1/status, /v1/openapi.json, /v1/catalog, /v1/account/*, /v1/market/* other than the overview, /v1/indices/list and /v1/futures/sessions. |
Some endpoints combine datasets. /v1/indices/basis, /v1/indices/basis/snapshot and /v1/indices/implied-price need both futures and indices. /v1/market/overview needs equities and also carries index values and front futures prices: a key whose releases do not include indices or futures gets that part empty, named in meta.coverage.missing with meta.coverage.complete set to false, instead of a refusal. The WebSocket streams belong to the same datasets, and /v1/ws/indices/basis needs futures and indices.