Rate Limits
All Bot API requests are rate-limited per token using a sliding window algorithm. Stay within limits to avoid 429 responses.
How It Works #
Each bot token has a sliding window per interface. Each request consumes one permit. Permits replenish as the window slides forward in time.
Permit limit — maximum number of requests allowed within the sliding window. Smoothed across 6 segments for even distribution.
Window — the time period over which requests are counted. Permits become available as older segments slide out.
Concurrency — a global limit of 10 concurrent requests per bot prevents parallel flooding, independent of per-interface limits.
Per-Interface Limits #
Each interface has its own sliding window. Limits are enforced independently per bot token.
Handling 429 Responses #
When a bucket is empty, the server returns 429 Too Many Requests.
Check the Retry-After header —
it tells you how many seconds to wait before retrying.
Use exponential backoff — if you're consistently hitting limits, increase the delay between requests exponentially.
Queue non-urgent work — batch operations when possible instead of sending many small requests.
Verified Bot Limits #
Verified bots receive higher rate limits automatically. There is no separate API — once your bot is verified, limits are increased server-side.