There's an API rate limit and threshold assigned per organization. We have a general limit and lower limits for specific calls. These API rate limits are in place to prevent overloading our system and thus ensure availability to all our customers.
1. General limits
1.1. 2000 calls per IP within 5 minutes
The API has rate limiting enforced at a value of 2000 requests per IP in a five-minute window.
When this threshold is reached, HTTP 429 (Too many requests)
will be returned by the system as a response to excessive requests (e.g. creating endpoints, assigning or activating multiple SIMs) until the average request rate is within the specified limit.
Examples:
When creating 3000 endpoints at once via API, you could reach this limit. In order not to reach this limit, customers should make sure they put a delay between each API call. As a best practice, we use 100ms delay each for multiple API calls.
1.2. 10,000,000 calls per account per month
An organization is allowed to make a total of 10,000,000 API requests per month.
Once this is reached, you will get an error HTTP 429 (Too many requests)
. On the 1st of a month, this quota will be reset.
A way to avoid using too many API calls is to implement the EMnify Data Steamer to receive live the status of your endpoints.
2. Specific API path limits
Since specific API calls are used more often, they have specific limits:
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/event/ |
GET |
10 |
5 |
/api/v1/sim/{id}/stats/ |
GET |
10 |
5 |
/api/v1/endpoint/{id}/connectivity_info/ |
GET |
10 |
5 |
/api/v1/event/alerts_pending/ |
GET |
100 |
50 |
/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/tariff_profile/ |
GET |
100 |
50 |
/api/v1/service_profile/ |
GET |
100 |
50 |
/api/v1/endpoint/{id}/ |
GET |
100 |
50 |
/api/v1/endpoint/{id}/connectivity/ |
GET |
100 |
50 |
/api/v1/endpoint/{id}/stats/*/ |
GET |
100 |
50 |
/api/v1/authenticate/ |
POST |
100/5min |
100/5min |
If users are encountering the 429 error, they are advised to retry the call with exponential back-offs.
Please do not hesitate to get in touch with us if you require help and tips on how you can manage your API solution better.
Comments
0 comments
Please sign in to leave a comment.