Limits
This page is the single place for limits that are easy to quote out of context. The OpenAPI document is the source of truth for parameter defaults and maxima; this page explains the operational limits around them.
Data queries
| Limit | Value |
|---|---|
| Symbols per request | 100 |
| Trading-day range per request | 31 calendar days |
| Instant range per request | 31 days, plus a 10-day allowance for sessions that cross the date |
Rows per page (limit) | 1 to 10,000; default 1,000 |
| Page size for the Python SDK | Follows next_cursor until the end |
A day that is not prepared yet answers 503 data_pending. Retrying the same
request does not start the work twice.
K-lines
| Limit | Value |
|---|---|
| Intraday range served from rollups | 366 days |
Calendar bars (1d, 1w, 1mo, 1q, 1y) | 30 years (366 × 30 days) |
| Minimum interval | The venue's snapshot interval |
Rows per page (limit) | 1 to 10,000; default 1,000 |
The venue's snapshot interval is in GET /v2/catalog/datasets. Requesting a
finer bar answers unsupported_resolution.
Exports
| Limit | Value |
|---|---|
| Symbols per export | 5,000 |
| Trading-day range per export | 10 years (3,660 days) |
| File size | 1 GiB per file; a larger export is split into several files |
| Formats | Parquet, CSV |
| Retention | 7 days after the export completes |
| Concurrent jobs | Follow the key's policy; administrative limits may be lower |
An instant range per export is at most 31 days; use trading days for longer
ranges. A download after retention answers not_found. A file of a job that is
still running answers data_pending.
Live streams
| Limit | Value |
|---|---|
| Subscriptions per connection | 100 |
| Symbols per connection (all subscriptions) | 1,000 |
| Heartbeat | Every 15 seconds |
| Resume token lifetime | 50 minutes |
| Slow-client policy | Bounded queue; overflow closes with resync_required |
| One subscription's markets | One market; subscribe separately for another |
Catalog
| Limit | Value |
|---|---|
| Instruments per page | 1 to 10,000; default 1,000 |
| Calendar range | 400 days |
| Venue and product filters | One venue, one product per request |
MCP tools
| Tool | Default rows | Maximum rows |
|---|---|---|
search_instruments | 50 | 200 |
get_bars | 500 | 2,000 |
get_data | 200 | 1,000 |
create_export | — | Same limits as HTTP exports |
A tool waits up to 90 seconds for days that are being prepared, then returns
data_pending.
Keys
| Limit | Value |
|---|---|
| Default lifetime | 90 days |
| Maximum lifetime | 365 days |
| Rotation overlap | 0 by default; at most 24 hours |
| Revocation delay | Up to about one minute |
Quotas
/v2 enforces the principal's usage policy when one is assigned: requests per
minute, output bytes per minute, concurrent requests, export jobs per hour and
concurrent stream connections. A principal without a policy is unlimited. The
administrator assigns the policy; keys cannot change their own.
A request over a limit answers 429 with code quota_exceeded and
retry_after. One response larger than the output limit answers 413 with
resource_exhausted. Use exports for bulk reads instead of one very large
request.