Guides
Rate limit safety
How the SDK stays polite to every API.
- Stats posts: 1 s gap between lists by default (postSpacingMs), one polite retry on 429 honouring Retry-After when it is ≤ 30 s, and ±5% jitter on the auto-post timer so fleets never hit lists in lockstep.
- top.gg shards quirk: an EMPTY shards array zeroes your published server_count on top.gg - the SDK omits the field entirely unless the bot actually reports shard data.
- Vote announcer: sends to the same Discord webhook are spaced ≥ 1 s apart (minIntervalMs), a 429 with a small Retry-After is waited out once, and per-target queues are bounded (maxQueueSize 500, oldest dropped) so a stalled webhook can never grow memory. Timers are unref'd and only alive while a delivery is pending.
- BotBlock mode: one request total, never retried inside their 120 s window.
- Status probes: max 8 concurrent HEAD requests, browser user agent, board cached for 5 minutes.
- Fetches: token header only on endpoints that need it, public reads stay unauthenticated.
- Webhooks (inbound): push based, so there is zero polling traffic against any list API.