Rate limiting errors
When your application sends too many requests in a short period of time, the API returns 429 Too Many Requests. Rate limits protect our infrastructure and ensure fair and consistent usage across all API consumers.
Understanding our rate limits
We apply rate limits at 2 levels. A 429 error is returned when either limit is exceeded.
1. Global rate limits
By default, all API requests are subject to account-wide limits per companyId:
- Read operations (GET): Up to 50 requests per second
- Write operations (POST, PATCH, PUT, DELETE): Up to 10 requests per second
Global rate limits apply to Core endpoints. Bulk endpoints are governed by a concurrency mechanism and allow up to 3 concurrent executions per companyId.
2. Endpoint-specific rate limits
Some resource-intensive endpoints have stricter limits:
- Create an eLearning standard course: Up to 1 request per second
- Edit an eLearning standard course: Up to 1 request per second
These limits are stated in the individual endpoint documentation. Endpoints with specific rate limits are also subject to global limits. You may receive a 429 error if your total account activity exceeds the global quota, even when staying within an endpoint-specific limit.
If no specific rate limit is mentioned in an endpoint's description, only the global rate limits apply.
Handling 429 responses
If you receive a 429 Too Many Requests status code:
- Wait ~ 1 second before retrying.
- Reduce parallel requests to avoid hitting the limit again.
- Use exponential backoff when retrying failed requests.
Recommendations to avoid hitting rate limits
- Use the bulk API to combine multiple operations into a single call.
- Throttle or batch requests instead of sending them all at once.
- Queue requests to limit concurrency.
- Cache repeated results to minimize unnecessary API calls.
Updated about 1 month ago
