Skip to main content
Version: 2025-05-27

Rate limits

Rate limits are in place to ensure fair use and protect the system for everyone.


Recommendations for developers​

Building an efficient application ensures the stability of the platform and makes your own integration robust and efficient.

1. Cache data that doesn't change frequently​

Avoid making repeated calls for the same information. Many API objects, once created, do not change frequently. We highly recommend caching this data in your own application.

  • User IDs: A list of project_manager_id values is unlikely to change often. You can fetch this information once and cache it for future use when creating projects.
  • Profile questions: We update standard profiling questions quarterly. It's highly efficient to retrieve and cache all available questions periodically rather than fetching them for every single workflow.

2. Use webhooks instead of polling​

Instead of repeatedly calling an endpoint to check for status changes (a process known as polling), use our notifications webhooks. Webhooks proactively send you a payload of information whenever a specific event occurs, such as a change in a target group's status or quota fill data. This "push" model is vastly more efficient and provides more immediate updates than a "pull" model.

3. Implement graceful error handling and retries​

Your code should anticipate and handle API errors, including rate limit errors.

  • Catch the 429: When you receive a 429 Too Many Requests status code, don't immediately retry the request.
  • Use Exponential Backoff: For other transient errors (like a 503 Service Unavailable), implement an exponential backoff strategy. This involves waiting for a progressively longer period between retries (e.g., 1 second, then 2, then 4, and so on). This prevents a "thundering herd" problem where many clients retry simultaneously, overwhelming the service.

4. Use bulk endpoints where available​

If you need to perform the same action on multiple objects, check if a bulk endpoint is available.

For example, instead of launching ten target groups with ten individual API calls, use the batch endpoints to accomplish the same task in a single call. This significantly reduces your request volume.

By following these best practices, you can build a powerful and efficient integration that works seamlessly with the Cint Exchange API.