Skip to content

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.

Interface Limit Window
IBotSelf 15 req 1m
ICalls 20 req 1m
IChannels 60 req 1m
ICommands 60 req 1m
IEvents 5 req 1m
IInteractions 120 req 1m
IMembers 30 req 1m
IMessages 120 req 1m
ISpaces 30 req 1m
IVoice 20 req 1m
IVoiceEgress 10 req 1m

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.