Rate limits
Each organization can make 60 requests per minute, with bursts of up to 10 requests per second. Limits are shared by every key in the organization.
Rate limit headers
Every response tells you where you stand:
| Header | Meaning |
|---|---|
RateLimit-Limit | Requests allowed per minute. |
RateLimit-Remaining | Requests left in the current window. |
RateLimit-Reset | Seconds until the window resets. |
Retry-After | On 429 responses only: whole seconds to wait before retrying. |
Response · 429 Too Many Requests
HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json
Retry-After: 12
RateLimit-Limit: 60
RateLimit-Remaining: 0
RateLimit-Reset: 12Staying under the limit
- Use webhooks instead of polling. A single webhook replaces dozens of list requests. If you must poll, wait at least 15 seconds between polls of the same conversation.
- Use conditional requests. Send
If-None-Matchwith the lastETagyou received. Unchanged resources return304 Not Modified. - Page with
page[limit]=100. Fewer, larger pages. See Pagination. - Back off exponentially after a
429or503, starting fromRetry-After. - Spread batch jobs out. Sending 500 reminders at once takes about 9 minutes at 60 per minute. Queue them and send at a steady rate.
Need a higher limit for a large organization? Mention it when you request API access.
Last updated on