Reference
Rate Limits
The Extralt API uses a token bucket algorithm to rate limit requests per organization.
Limits
| Metric | Value |
|---|---|
| Sustained rate | ~120 requests per minute |
| Burst capacity | 30 requests |
| Scope | Per organization |
The token bucket refills continuously. You can send bursts of up to 30 requests, but sustained throughput should stay below 120 requests per minute.
Rate limit response
When you exceed the limit, the API returns a 429 Too Many Requests response:
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please wait before retrying."
}Recommended backoff
The simplest strategy: when you receive a 429, wait 15 seconds to refill burst capacity, then retry.
For more sophisticated handling, use exponential backoff:
import time
def request_with_backoff(method, url, max_retries=3, **kwargs):
for attempt in range(max_retries):
response = requests.request(method, url, headers=HEADERS, **kwargs)
if response.status_code != 429:
return response
wait = 15 * (2 ** attempt) # 15s, 30s, 60s
print(f"Rate limited. Waiting {wait}s...")
time.sleep(wait)
return responseTips
- Polling runs: A 10-second interval between status checks is well within limits
- Listing captures: Paginate with reasonable page sizes rather than rapid-fire requests
- Bulk operations: Space out robot build and run creation requests
- Multiple robots: If creating many robots, add a short delay between build requests
What's next
- Error Codes -- complete error catalog
- Common Patterns -- rate limit handling in code