Limits
| Auth method | Default limit | Window |
|---|---|---|
| API key | Configurable per key (default 120 req/min) | 1 minute |
| JWT | 200 req/min | 1 minute |
Rate limit headers
Every response includes rate limit headers so you can track your usage:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining before the limit is reached |
X-RateLimit-Reset | Unix epoch timestamp (seconds) when the window resets |
Exceeding the limit
When you exceed your rate limit, the API returns a429 status code with a
Retry-After header indicating how many seconds to wait:
Best practices
-
Check headers proactively. Monitor
X-RateLimit-Remainingand slow down before hitting the limit. -
Implement exponential backoff. On 429 responses, wait at least
Retry-Afterseconds, then retry with increasing delays. - Use batch endpoints. The batch nodes endpoint lets you perform up to 100 operations in a single request.
- Cache responses. For data that does not change often (board metadata, node positions), cache locally to reduce request volume.