Rate Limits & Quotas
The Ticker API enforces two independent limits per API key:
- A per-second rate limit with a short burst allowance, applied to each request as it arrives.
- A weekly quota, capping the total number of successful requests over a rolling week.
Hitting either limit returns 429 Too Many Requests.
Per-tier limits
| Plan | Rate (req/s) | Burst | Weekly quota |
|---|---|---|---|
| Free | 1 | 2 | 350 |
| Lite | 5 | 10 | 1,500 |
| Advanced | 15 | 30 | 3,500 |
| Ultimate | 30 | 60 | 5,000 |
Higher limits are available on the professional plans (Startup, Business, Issuer, Enterprise). Contact us for details.
How requests are counted
- Per request, not per result. A single response containing 200 items counts as one request. Larger
pageSizeis the cheapest way to consume your quota. - All authenticated requests count, including
4xxclient errors that reached the API. Network-level failures and unauthenticated requests do not.
Throttling: rate + burst
Throttling uses a token bucket. The bucket refills at Rate tokens per second up to a maximum size of Burst. Each request consumes one token; requests arriving with an empty bucket are rejected with 429.
In practice:
- Steady traffic at or below your Rate never sees a
429. - Short spikes up to Burst are absorbed.
- Sustained traffic above Rate drains the bucket and starts returning
429.
Weekly quota
The quota resets weekly. Once exhausted, every request returns 429 until the reset.
The quota is plan-wide, not per-endpoint. Reads against /v2/disclosures/..., /v2/references/..., and any other endpoint all draw from the same bucket.
Handling 429
Both limit types use the same status code. Distinguish them by retry behaviour:
- Throttle (
429under load): a short backoff is enough. Sleep 1–2 seconds and retry. Use exponential backoff if it persists. - Quota (
429that does not clear): no retry will help until the quota resets. Stop polling, log the condition, and resume next week or upgrade the plan.
A simple loop:
Sizing your usage
A few rules of thumb:
- Polling for new items? Use
sinceCursor(see Pagination). Empty polls cost one request each. A 1-minute polling interval is ~10,000 requests/week, which fits comfortably inside the Advanced quota. - Backfilling history? Use the largest
pageSizeyour plan supports (Free/Lite 50, Advanced 100, Ultimate 200). Pulling a year of RNS in 200-item pages is a few hundred requests, not thousands. - Need more headroom? Upgrade or contact us.