Rate Limiting & Quotas

Request limits per API application and per tenant, and how to stay within them.

PerspioTalk limits how many requests you can make, so one busy integration can't slow Perspio down for everyone else. Most integrations never reach these limits.

There are two kinds of limit:

  • Rate limit: how many requests an API application can make in a short window. Each API application has its own.
  • Quota: how many requests your whole tenant can make over a longer period. All of the tenant's API applications share it.

Check your usage

Every response tells you where you stand against the rate limit:

HeaderMeaning
total-callsRequests allowed in the current window
remaining-callsRequests left in the current window

Slow down as remaining-calls approaches zero, rather than waiting for errors.

When you hit a limit

Requests over a limit return 429 Too Many Requests. If the response includes a Retry-After header, wait that many seconds before retrying. Otherwise, back off exponentially. Don't retry straight away, as immediate retries count against the same limit.

Staying within the limits

  • Cache your access token. Reuse it for its full hour instead of requesting one per call. See Get Access Token.
  • Page through lists. Fetch large lists in pages rather than repeatedly requesting everything. See Pagination.
  • Poll sensibly. We recommend polling each asset no more than once every 10 minutes.

If your integration needs a sustained high volume of requests, contact [email protected] before you go live. Extra quota can be added to a tenant.