- On Monday, April 2, 2018, Maropost will enforce rate limiting on its API servers.
- Rate limiting is nothing new and is common for all companies that provide an application programming interface to their systems.
What is the limit that Maropost is enforcing?
- Maropost will be enforcing a limit of 10 concurrent calls per account.
- Enforcing a limit based on average times (e.g. limiting [N] calls per second) is not realistic given the wide range of completion times.
- Our analysis has revealed that the majority of API calls are completed in approximately 300 milliseconds.
- However, some method calls inherently take longer due to any number of different reasons including the type of method being invoked and the amount of data being retrieved.
- The rate limiting coming into effect, does not involve the total number of API calls being made.
- The rate limiting mandate that we are implementing, is based around the number of concurrent calls being made via the API, which is limiting to 10.
- What this means in effect is, that there is no limit to the actual number of API calls you make; the limit is on how many are being run simultaneously or parallely.
- The length of any given call can vary depending on a typical payload, however on an average, a call takes about 300 milliseconds to complete, so you can only have ten calls running parallely; once one finishes another can be immediately commenced/initiated.
- To sum up: If your calls were average calls, then you can run 10 API calls every 300 milliseconds with no limit on the overall number of calls made.
What happens if web services calls to Maropost exceed the limit?
- Maropost's API server will respond with an HTTP Status Code 429.
- According to RFC 6585, "The 429 status code indicates that the user has sent too many requests in a given amount of time ("rate limiting")."
- It is up to your development team to implement the proper response handling in the event that an HTTP Status Code 429 is received in response to an API method call. Caching, queuing, and retrying requests for web services is a common implementation.
Why is Maropost enforcing rate limiting of its web services?
- Rate limiting of web service consumption is an industry standard, and the definition of rate limits varies from company to company. Web services are shared resources. Rate limiting prevents a handful of clients from monopolizing the resources, and ensures that everyone has an equal opportunity of usage.