Concepts and conventions

Rate limits

The Podio API only allows you to make a certain amount of API calls each hour. The general limit is 1,000 API calls per hour, but if the API call is deemed resource-intensive, a lower rate of 250 calls per hour is enforced. So Podio API uses a two-limit model.

  • Limit A = 250 calls per hour. It applies to resource-intensive operations marked "Limit A" or "Rate-Limited" in the API reference.
  • Limit B = 1,000 calls per hour. It applies to all standard API operations marked "Limit B" or "Standard" in the API reference.

If you hit the rate limits the API will begin returning 420 HTTP error codes for all API calls. Rate limits are per user per API key and are measured on a rolling hour basis.

You can monitor your current status by examining two HTTP headers that are returned with each request you make:

http

X-Rate-Limit-Limit: The ceiling for the request you just made
X-Rate-Limit-Remaining: The number of requests you have left for the current 1 hour window

You cannot currently see when your rate limit counter is reset.

If you have a project that requires a higher rate limit, get an API Add-on for your related API key. An API Add-on will give your key increased rate limits (both Limit A and B). We have multiple tiers available for API Add-ons, so you can choose which tier is most relevant for your anticipated usage. Read product documentation to learn more about how to choose, buy and manage Add-ons.

In case your project requires a rate limit higher than the available API Add-ons, contact us with a brief description of your project, your estimated usage, and the client_id of the API key you are using to raise an exception request.

Tips for reducing API usage

  • Avoid making API requests inside loops. Instead of fetching individual objects inside a loop, fetch a collection of objects in one API operation. E.g. filter items
  • Cache results whenever possible. This is especially true when you are displaying data to the public (i.e. every sees the same output).
  • Don't poll for changes. Instead of polling Podio to see if your content has changed use webhooks or push to receive a notification.
  • Use logging to see how many requests you're making
  • Bundle responses with "fields" parameter