Rate Limits

Limits apply at three levels: a per-minute quota per guild, shared by every API key the guild has; a rolling 24-hour cap per API key; and a per-IP cap for unauthenticated callers. Adding more keys to a guild does not raise its per-minute quota.

PlanRequests / minute (per guild)Requests / 24h (per key)Global lookups / minute (per guild)
Free605,000Not available
Developer600500,000120

The 24-hour cap is a rolling window: requests count against it for 24 hours after they are made, rather than resetting at a fixed time of day.

Global lookups

Routes that need the link:read:global scope (looking up links outside your own guild) have their own per-minute quota per guild, separate from the guild quota above. It is a Developer feature; on Free the quota is zero.

Unauthenticated requests

Requests without an API key are limited to 300 per minute per IP. Requests with an invalid key are limited separately, to 20 per minute per IP, so a misconfigured client gets a 429 quickly instead of hammering the API.

Response headers

  • X-RateLimit-Limit: cap for the current per-minute window
  • X-RateLimit-Remaining: requests left in that window
  • X-RateLimit-Reset: unix timestamp when the window resets
  • X-RateLimit-Daily-Limit: this key's 24-hour cap
  • X-RateLimit-Daily-Remaining: requests left in the rolling 24 hours

On 429

Exceeding a limit returns 429 rate_limited with a Retry-After header (seconds). The error body says which limit was hit in error.meta:

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded.",
    "meta": { "scope": "guild_minute", "limit": 600, "retryAfterSeconds": 12 }
  },
  "requestId": "..."
}
scopeMeaning
guild_minuteThe guild's per-minute quota, shared by all of its API keys.
global_lookup_minuteThe guild's per-minute quota for global lookup routes.
key_dayThis API key's rolling 24-hour cap.
ipThe per-IP cap on unauthenticated requests.
ip_failed_authToo many requests with a missing or invalid API key from this IP.

Wait at least Retry-After seconds, then back off with jitter. Because the per-minute quota is shared, one busy key can exhaust it for the guild's other keys. Repeated saturation is treated as abuse.

Anti-scraping

Anomaly detection flags sudden volume spikes and broad identifier enumeration. Flagged keys may be suspended pending review. If your workload is legitimately high-volume (e.g. a game server fleet), reach out before launching so we can tune limits.