Rate limits
An API rate limit and threshold are assigned per organization. There’s a general limit and also lower limits for specific calls. These API rate limits are in place to ensure service availability and prevent the system from overloading.
General limits
2,000 calls per IP within 5 minutes
The API has rate limiting enforced at 2,000 requests per IP in a 5-minute window.
When this threshold is reached, the system returns the HTTP response status code 429 Too Many Requests
until the average request rate is within the specified limit.
Example: You might reach this limit when using the API to create 3,000 endpoints simultaneously. To prevent this, put a delay between each API call. As a best practice, there’s a 100-millisecond delay each for multiple API calls.
10,000,000 calls per account per month
An organization is allowed to make a total of 10,000,000 API requests per month.
When this threshold is reached, the system returns 429 Too Many Requests
. This quota resets on the first day of the next month.
Tip: Implement the Data Streamer to receive live the status of your endpoints and avoid using too many API calls.
Specific API path limits
Apart from the general API rate limiting, there are limits configured on specific, more frequently used API paths. The following limits are enforced per organization:
resourcePath | Method | req/s | burst |
---|---|---|---|
/api/v1/organisation/{id}/billing/ | GET | 10 | 5 |
/api/v1/stats/ | GET | 10 | 5 |
/api/v1/organisation/{id}/stats/ | GET | 10 | 5 |
/api/v1/sim/ | GET | 10 | 5 |
/api/v1/organisation/{id}/stats/ | GET | 10 | 5 |
/api/v1/endpoint/ | GET | 10 | 5 |
/api/v1/sim/{id}/stats/ | GET | 10 | 5 |
/api/v1/endpoint/{id}/connectivity_info/ | GET | 10 | 5 |
/api/v1/endpoint/stats/ | GET | 100 | 50 |
/api/v1/sim/{id}/ | GET | 100 | 50 |
/api/v1/service_profile/ | GET | 100 | 50 |
/api/v1/tariff_profile/ | GET | 100 | 50 |
/api/v1/service_profile/ | GET | 100 | 50 |
/api/v1/endpoint/{id}/ | GET | 50 | 25 |
/api/v1/endpoint/{id}/connectivity/ | GET | 50 | 25 |
/api/v1/endpoint/{id}/stats/*/ | GET | 100 | 50 |
/api/v1/authenticate/ | POST | 100/5 min | 100/5 min |
Tip: If you encounter the 429 Too Many Requests
status code, retry the call with exponential back-offs.