API reference
Rate limits
Request quotas for the Two Minute Reports API and how to handle the 429 Too Many Requests response.
The API enforces rate limits to keep the service responsive for everyone.
Each endpoint counts its requests separately. For an endpoint with a teamId in its path, all keys that call the same team share one count. For other endpoints, each user has their own count.
Global limit
By default, every endpoint allows 120 requests per 60 seconds and 10,000 requests per hour.
Per-endpoint limits
Some endpoints have tighter limits because they are sensitive or expensive. These override the global limit:
| Endpoint | Limit |
|---|---|
POST /teams/{teamId}/data/run-query | 15 / minute and 500 / hour |
PUT /users/me/avatar | 10 requests / 5 minutes |
Exceeding the limit
When you exceed a limit, the API responds with 429 Too Many Requests:
{
"success": false,
"error": {
"code": "TOO_MANY_REQUESTS",
"message": "Too many requests — please slow down and try again later"
}
}
A 429 can also come from the network protection in front of the API. That response is an HTML page, not JSON. Do not expect a JSON body on every 429: check the status first.
Back off and retry after a short delay when you receive a
429. For batch workloads, spread requests out rather than sending them in a tight loop.