Concepts
Rate limits and quotas
Each key has a per-second limit and may have a monthly quota, set by its plan. Every keyed response tells you where you stand.
How limits work
- Per second: requests in the current second, per key, across all your servers.
- Per month: requests in the current calendar month (UTC), on plans that have a quota.
- Call
/rate-limitto see your plan's numbers and usage. It is not counted as a data request, but it does pass through the per-second limit. /statusneeds no key and is not counted.- The shared demo key
tpm_demo_key_authorized_2026allows 5 requests per second in total, for everyone. - WebSocket connections and subscriptions have their own limits; see WebSocket limits.
Response headers
| Header | Sent on | Meaning |
|---|---|---|
X-Request-ID | Every response | Id of this request. Quote it to support. |
X-RateLimit-Tier | Keyed responses | Your plan key, e.g. tier_1. |
X-RateLimit-Limit | Keyed responses | Requests allowed per second. |
X-RateLimit-Remaining | Keyed responses | Requests left in the current second. |
X-RateLimit-Reset | Keyed responses | Seconds until the per-second window resets (always 1). |
X-Quota-Limit | Plans with a monthly quota | Requests allowed this month. |
X-Quota-Remaining | Plans with a monthly quota | Requests left this month. |
Retry-After | 429 responses | Seconds to wait before retrying. |
429 response
HTTP/1.1 429 Too Many Requests
X-RateLimit-Tier: demo
X-RateLimit-Limit: 5
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1
Retry-After: 1
{
"error": {
"code": "rate_limit.per_second",
"message": "Rate limit exceeded: 5 requests per second on this plan.",
"request_id": "0f8969a6-0968-4d7c-9cbb-de379e8c19c4"
}
}Stay under the limit
- Fetch up to 100 prices in one call with
/pricesinstead of one call per contract. - Use the WebSocket for prices that change often instead of polling.
- Cache
/categoriesand event lists for a few minutes. - On
429, waitRetry-Afterseconds. The retry helper does this for you.
Related
Build with TPM
Get your free API key
One key gives you Kalshi and Polymarket events, prices with freshness, price history, cross-venue gaps and the live quotes WebSocket.