API requests are rate-limited per minute to keep the service stable. There are no daily or monthly request quotas. Paid plans share the same per-minute limits; the free plan's read-only tier has a smaller budget. Limits never run out.
Current Limits
| Scope | Limit | Notes |
|---|---|---|
| Standard API requests | 120/min |
All monitor, group, incident, status page, report, and webhook-endpoint routes. Counted per account. The free plan's read-only tier is limited to 30/min. |
| On-demand URL checks | 20/min |
GET /check-url runs real probes from every region, so it has its own budget, shared with the MCP check_url tool. Requires a paid plan. |
| Manual monitor re-checks | 20/min |
POST /monitors/{id}/check |
| Webhook endpoint tests | 10/min |
POST /webhook-endpoints/{id}/test |
| MCP server | 60/min |
AI assistant tool calls, counted separately from REST requests. |
No request quotas
Some monitoring APIs cap you at a few thousand requests per day per plan. Sentinel doesn't. At 120 requests per minute you could make over 170,000 requests a day on any paid plan. Automation, CI runs, Terraform plans, and AI agents don't need to budget requests.
Rate Limit Headers
Every API response includes headers with rate limit information:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 118
X-RateLimit-Reset: 1704800400
| Header | Description |
|---|---|
X-RateLimit-Limit |
Maximum requests allowed per minute |
X-RateLimit-Remaining |
Requests remaining in current window |
X-RateLimit-Reset |
Unix timestamp when the limit resets |
Exceeding the Limit
When you exceed the rate limit, you'll receive a 429 Too Many Requests response:
{
"message": "Too Many Attempts.",
"retry_after": 45
}
Best Practices
- Implement exponential backoff when retrying failed requests
- Cache responses where appropriate to reduce API calls
- Use webhooks instead of polling where possible
- Monitor your rate limit headers to avoid hitting limits