docs/content/reference/rate-limits.mdx
Rate limits are enforced per organization and reset on a rolling 10-minute window.
| Plan | Rate Limit | Window |
|---|---|---|
| Starter | 20,000 requests | 10 minutes |
| Hobby | 20,000 requests | 10 minutes |
| Growth | 100,000 requests | 10 minutes |
| Enterprise | Unlimited | - |
API responses include headers to help you track your usage:
| Header | Description |
|---|---|
X-RateLimit | Total requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Window-Size | Window size (e.g., 600s for 600 seconds) |
Retry-After | Seconds until the window resets (only on 429 responses) |
When you exceed the rate limit, you'll receive a 429 Too Many Requests response:
{
"message": "Rate limit exceeded. Limit: 100000 requests per 10 minutes"
}
Monitor your usage - Check the X-RateLimit-Remaining header to track how close you are to the limit.
Implement backoff - When you receive a 429, wait for the duration specified in Retry-After before retrying.
Cache responses - Cache tool definitions and other static data to reduce unnecessary API calls.
If you're hitting rate limits regularly, consider upgrading your plan or talk to us to discuss custom limits for your use case.
<Cards> <Card title="Errors" href="/reference/errors"> Understanding API error responses </Card> <Card title="Pricing" href="https://composio.dev/pricing"> Compare plans and limits </Card> </Cards>