Limits may change in the future to balance for demand and reliabilty. Try to optimise your requests.

Request Timeout

We have a global request timeout of two seconds. If a request takes longer than two seconds to execute, it will be terminated and you will receive an error response. This is to ensure that the database is not overloaded and that the API remains responsive.

If you hit that limit, try to optimise your query to make it faster. You can consult Recipes for implementation guidance on common use cases, or contact the helomateo for support.

Rate Limits

To ensure the reliability and performance of the API, we have rate limits in place. These limits are designed to prevent abuse and ensure that the API remains responsive for all users.

There are three types of rate limits:

  • requests per second: The number of requests you can make in a second is limited to 2.
  • requests per day: The number of requests you can make in a day is limited to 10000.
  • imported entites per day: The number of entities you can import in a day is limited to 25000. Note that you can choose the ratio between number of imports and number of entities per import. For example, you could import 25000 contacts with 5 imports of 5000 contacts each, or with 25 imports of 1000 contacts each. Whatever suits your requirements best.

If you hit any of these limits, you will receive a 429 response error code. To prevent this, we recommend reducing the rate at which you request the API. This can be done by introducing a queue mechanism or reducing the number of concurrent requests per second.

All limits can be increased for trusted senders by request. If you have specific requirements, contact support to request a rate increase.

Response Headers

The response headers describe your current rate limit following every request in conformance with the IETF standard:

Header NameDescription
ratelimit-limitMaximum number of requests allowed within a window.
ratelimit-remainingHow many requests you have left within the current window.
ratelimit-resetHow many seconds until the limits are reset.
retry-afterHow many seconds you should wait before making a follow-up request.