Rate Limits
The Sentro API enforces rate limits to ensure fair usage and platform stability. Limits are applied per API key and vary by plan.
Limits by Plan
| Plan | Read (GET/HEAD) | Write (POST/PATCH/DELETE) | Notes |
|---|---|---|---|
| Free | 60 req/min | — | Read-only API keys only |
| Starter | 120 req/min | 30 req/min | Full read/write access |
| Pro | 300 req/min | 60 req/min | Full read/write access |
| Max | 600 req/min | 120 req/min | Full read/write access |
Rate limits are applied per API key within a 1-minute sliding window. Your limit is set when the key is created based on your active plan.
Response Headers
Every API response includes rate limit information in the headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Example Response Headers
HTTP/1.1 200 OK
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 297
X-RateLimit-Reset: 1708603200
Rate Limit Exceeded
When you exceed the rate limit, the API returns a 429 Too Many Requests response:
{
"error": {
"code": "RATE_LIMIT",
"message": "Rate limit exceeded. Max 300 requests per minute.",
"retryAfter": 45
}
}
The response also includes a Retry-After header with the number of seconds to wait.
Best Practices
- Cache responses where possible to reduce API calls
- Implement exponential backoff when receiving 429 responses
- Use pagination (
limitandoffset) to reduce the number of requests - Batch operations where the API supports it
- Monitor your
X-RateLimit-Remainingheader to stay within limits - Upgrade your plan for higher limits