0
votes

I am working on one product which is fetching all the organization/workspace and app details of the customer. The customer can refresh them any time.

So let’s say I have one customer who has 100 applications across multiple workspaces so around it is making around 110 calls to get each application detail, workspace details and organizations.

Now if that customer refreshed the applications multiple times like 10 times in an hour so the action only for that is 1000 API calls. If I have 50 such users active and doing this thing then it will be something 50000.

AFAIK I can not make so many API calls in an hour so how to handle this scenario. I know a lot of applications are doing such things so want to understand how everyone is handling this.

2
Clive, Do you know about Podio ? I just want that every one should respond to the questions which they really know. The first thing Podio does not offer any premium services for this thing. Podio support itself asked me to post this query on stack overflow so any other developer who have faced such situation can suggest the things. We are not here for getting any magic code, we are hard core developers itself and believe to share the ideas. - Bajarang

2 Answers

4
votes

If you need a higher rate limit, I would encourage you to contact Podio support and ask specifically for what you need. We have internal guidelines for evaluating these kinds of requests and may increase the limit for your user and client ID if appropriate.

In general, though, I would expect your app to implement some kind of batching, transient storage, and/or caching layers, especially if your customers are interacting with Podio exclusively or primarily through your system.

Please see our official statement here: https://developers.podio.com/index/limits

Summary:

The general limit is 5,000 API calls per hour, but if the API call is marked as "Rate limited" in the API reference the call is deemed resource intensive and a lower rate of 1000 calls per hour is enforced. 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.

Contacting support:

If you have a project that requires a higher rate limit contact [email protected] with a brief description of your project, your estimated usage and the client_id of the API key you are using.

Usage tips:

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. This might save you thousands of requests: https://developers.podio.com/doc/hooks
  • Use logging to see how many requests you're making
  • Bundle responses with "fields" parameter
1
votes

You might want to build an API proxy app; you would need a messaging queue and a rate limiter. This would lets you keep track of the api calls consumptions across apps and users.

Also worth noting: some API routes are more expensive than others if they are more resource intensive on the Podio side… The term in use is rate-limited: rate limited api route are bound to 1k calls an hours, so in effect costs 5 times as much as regular routes.

Hope this helps!