Skip to main content

Rate Limits

To ensure a fast and predictable experience for everyone, we limit the number of calls your integration can make to a specific environment.

Rate Limit

1000 API calls per minute per application, per environment.

We use the sliding window principle: before allowing requests, we check how many requests your integration made in the last minute. If you would exceed the limit, the request is denied with:

HTTP 429 Too Many Requests

You will be able to make requests again once the oldest request falls outside the one-minute window.

Implementing Backoff

It is essential that your application implements a backoff mechanism. After receiving an HTTP 429 error:

  1. Wait at least one minute before retrying
  2. Implement exponential backoff for repeated failures
  3. Log rate limit errors for monitoring
warning

Applications that do not implement backoff and persist with excessive API calls may face further limits or, in severe cases, temporary blocking to guarantee service continuity for all users.

Best Practices

When retrieving large datasets, follow these guidelines to stay within rate limits:

  • Use $select to fetch only the fields you need
  • Use $filter to narrow down results before retrieving them
  • Implement proper pagination with $top and $skip instead of making excessive calls
  • Combine multiple OData parameters in a single request for efficient queries

Pagination Limits

GET requests return a maximum of 100 records per call. For larger datasets, use pagination:

GET /v1/odata/Relation_Person?$top=100&$skip=0 # First 100
GET /v1/odata/Relation_Person?$top=100&$skip=100 # Next 100

Efficient Querying Example

Instead of fetching all records and filtering client-side, let the API do the work:

GET /v1/odata/Activity_SalesOpportunity?$filter=Amount gt 5000&$select=Subject,Amount,Probability&$top=25&$orderby=Amount desc

This retrieves only the data you need in a single call, keeping your API usage efficient.