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.