The two layers
Every request is evaluated against two independent limits on the same key.- Sliding 60-second window — your tier’s requests-per-minute ceiling.
- 1-second burst cap — your tier’s requests-per-second ceiling.
429 rate_limited response.
Per-tier ceilings
Exact values are the source of truth in Tiers and Quotas and are derived directly from
api/config.py.
Headers on every response
Every response — success or failure — includes your current window state.
A
429 additionally carries:
The 429 response body
Correct backoff pattern
RespectRetry-After. Do not retry faster. Do not retry synchronously in a tight loop. Use jitter.
Python
Node
PowerShell
Planning your request budget
The following heuristics work well in practice.- Polling dashboards: for Watch-tier (30 rpm) poll each topic no faster than every 10 seconds. For See-tier (120 rpm) every 2 seconds is fine.
- Batch pipelines: serialise requests, not parallelise, at Watch-tier. At See and Know you can safely run two to six parallel workers.
- Evidence drill-downs: post fetches are the slowest endpoints (500–1000 ms). Stagger them.
Related quotas
Rate limits are distinct from the quotas below, each enforced separately.- Alert subscriptions — cap on the number of active webhooks per key.
- Custom watchlists — cap on the number of custom scopes per client.
- Evidence lookback — maximum age of posts returned by evidence endpoints.