Default limits
| Window | Limit |
|---|---|
| Per minute | 60 requests |
| Per hour | 1,000 requests |
Rate limit headers
Every API response includes these headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per minute for this key |
X-RateLimit-Remaining | Requests remaining in the current minute window |
X-RateLimit-Reset | Unix timestamp when the current window resets |
When you hit the limit
When rate limited, the API returns429 Too Many Requests with a Retry-After header:
Handling rate limits
Proactive: Check headers before hitting the limit
Reactive: Retry on 429
Tips for staying within limits
- Batch reads with pagination — Use
limit=100to fetch more data per request - Use
PUT /forwarding-slotsto replace all slots in one request instead of multiple creates/deletes - Cache responses when possible — Agent configurations change infrequently
- Use the status endpoint (
GET /agents/{id}/status) instead of the full agent endpoint when you only need active/schedule status - Spread requests over time — Avoid burst patterns; space requests evenly across the minute window
- Request higher limits — If your integration needs more throughput, set custom rate limits when creating the API key in the Dashboard