Rate limits
Limits keep one integration from harming another. They are counted per key in fixed one-minute windows, plus a daily cap on live sends per workspace.
These examples use a placeholder address. Your console shows the exact address of the API for your workspace.
The limits#
| Bucket | Applies to | Default |
|---|---|---|
requests | Every authenticated request, per key. | 60 per minute |
sends | POST /messages, per key. | 30 per minute |
templates | GET /connections/{id}/templates, per key. | 10 per minute |
A request counts against requests and, where it applies, against its own bucket as well. Sandbox keys have the same per-minute limits and no daily cap.
The headers#
Every authenticated response has RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds until the window resets) for the bucket the call used. A refused call also has Retry-After.
HTTP/1.1 429 Too Many Requests
X-Request-Id: req_4f1c2b9a0d7e6f5a4b3c2d1e
RateLimit-Limit: 60
RateLimit-Remaining: 0
RateLimit-Reset: 23
Retry-After: 23{
"error": {
"code": "rate_limited",
"message": "Too many requests.",
"request_id": "req_4f1c2b9a0d7e6f5a4b3c2d1e",
"details": {
"bucket": "requests"
}
}
}Daily send cap#
A live workspace can send up to 1,000 messages through the API per UTC day. Beyond that POST /messages returns 429 daily_send_limit_reached until the next day.
The console shows your usage and your limits on the Usage page of each application.