Rate limits & caching
The API is free and best-effort. Cache on your side and respect the retry delay.
Rate limit#
100 requests per minute per IP, as a sliding window. The counter lives in the memory of each warm Vercel function instance, so it is not a strict global quota.
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Requests allowed in the window |
X-RateLimit-Remaining | Requests left in the window |
X-RateLimit-Reset | When the window resets |
Retry-After | Seconds to wait after a 429 |
Caching#
Data endpoints send Cache-Control: public, max-age=300. The wiki-backed data is refreshed by the scraper, so caching for a few minutes loses nothing. Newly scraped data may take a short while to pass through the CDN.
Identify your app (optional)#
Send an X-Client header with your app's name, for example X-Client: my-discord-bot, so usage can be counted per app. It is optional and no key is needed. Only request counts per endpoint, status and this label are stored, never IP addresses.
Do not proxy or hammer the API to bypass limits. Bots and dashboards should cache responses and use dataVersion to detect changes.
