What is capped
Two budgets per account, both reset at the start of every UTC month:
| Plan | Requests / month | Bytes / month | Per-second burst |
|---|---|---|---|
| Free | — (no API access) | — | — |
| Pro | 1 000 000 | 50 GiB | ~16 req/s |
| Enterprise | per-account override | per-account override | per-account |
Quotas are hard caps. When you cross either the request or byte limit, every subsequent call returns 429 quota_exceeded — with a Retry-After header — until the calendar month rolls over. There is no overage billing.
Enterprise limits are negotiated per contract and stored on the subscription. Both /v1/me and /v1/me/usage reflect the actual numbers your key resolves to.
The per-second burst limit is best-effort and may be disabled at the edge; the monthly request and byte budgets are the authoritative limits.
Reading your usage
Every response includes the current state in headers:
X-RateLimit-Limit: 16X-RateLimit-Remaining: 15X-RateLimit-Reset: 1714512000X-Quota-Requests-Used: 1234X-Quota-Requests-Limit: 1000000X-Quota-Requests-Remaining: 998766X-Quota-Bytes-Used: 58432111X-Quota-Bytes-Limit: 53687091200X-Quota-Bytes-Remaining: 53628659089X-Quota-Resets-At: 2026-05-01X-Request-Id: req_01HT...
The X-RateLimit-* headers are present only when per-second limiting is enabled.
Or query /v1/me/usage for a JSON snapshot:
{"month": "2026-04","resets_at": "2026-05-01","requests": { "used": 1234, "limit": 1000000 },"bytes": { "used": 58432111, "limit": 53687091200 },"plan": "pro"}
What counts
- A successful 2xx response increments requests by 1 and bytes by the served body length.
- A 4xx or 5xx response increments requests by 1 and bytes by 0.
- A
429 rate_limitedresponse (per-second burst) is not counted — it is pre-admission. - A
401 invalid_api_keyresponse is not counted — there is no authenticated user to charge.
Reducing your bill
- Use TOON for AI-agent traffic. 30–60 % fewer served bytes.
- Use the
sidefield when you only need one side of a side-bearing metric — halves the row size. - Pull wider date ranges per request instead of many small requests. Pagination is opt-in (see below).
Per-second rate limit
Independent from monthly quotas. Token-bucket per account, refills at the rate above. Hitting it returns 429 rate_limited with a Retry-After header — back off and try again. These do not count against your monthly request budget.
Pagination
Time-series endpoints return every row in your requested date range in a single response by default — even ten years of daily data fit comfortably in one call. Row caps: daily defaults to 10 000 and hard-maxes at 50 000; hourly is capped at 744 rows (31 days × 24 h).
If you exceed the cap, the response carries meta.truncated: true and meta.next_cursor — pass that cursor back in the request body's cursor field to continue.
List endpoints (/v1/meta/symbols, /v1/meta/tokens) always paginate; default limit=200, max 1000.
See the API Explorer for per-endpoint specifics.