To power your dashboard widgets, Geckoboard fetches data from the different services you use via their APIs.
To help protect their servers from receiving more data than they can handle, and to maintain service levels and quality, most APIs impose rate limits and quotas on how many calls can be made in a given time period (seconds, minutes, or even over a 24-hour period).
Different services implement different rate limits and quotas based on several factors including their type of business, company size, use case, or your chosen plan.
When your dashboard widgets refresh, this counts toward your rate limits and quotas for those APIs. When a limit or quota is exceeded you may be temporarily blocked from making additional calls until your usage drops below the limit.
Similarly, there's a 10 second timeout for polling custom widgets.
Ways to avoid exceeding API limits and daily quotas
If your widgets are displaying error messages relating to limits and daily quotas, here are a few things you can try to alleviate this:
Reduce the time periods in use on widgets
Querying for large amounts of data, over long time periods such as past 30 days across multiple widgets, will use quite a large number of API calls. Try to reduce the time span to a shorter period, this could help reduce the number of API calls made by our widgets.
Check your platform package/account permissions
Some platforms increase rate limits based on your account level with them. As you increase the package size with them, they will increase your account’s API call limit.
You can also often find details on a platform's rate limits and quotas by reading through its API documentation.
Split widgets powered by the same source across dashboards
A large number of widgets powered by the same data source on the same dashboard will generally refresh at the same time (especially when the dashboard is being loaded initially). This can cause you to hit your rate limit.
To alleviate this, consider splitting your widgets across multiple dashboards, with ideally 8-12 widgets per dashboard. Widgets on the different dashboards would refresh at different times and avoid making concurrent requests.
You could then create a dashboard loop to display these multiple dashboards together.
Please get in touch if you're regularly receiving widget errors or have any further queries on this.