Exceeding API limits and quotas

Learn how to prevent error messages relating to hitting limits and daily quotas.

Updated over a week ago

Geckoboard fetches data from the data sources you've connected via their APIs. Most APIs impose rate limits and quotas on how many calls can be made in a given time period. This helps protect their servers from receiving more data than they can handle, and to maintain service levels and quality. For example, our Datasets API restricts you to 60 requests per minute for your API key.

Each time 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. Different services implement different rate limits and quotas based on several factors, like your chosen plan.

Prevent exceeding your API request limit

If your widgets are displaying error messages relating to limits and daily quotas, there 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, uses a large number of API calls. Reducing the time span to a shorter period could help reduce the number of API calls made by our widgets.

Check your platform account permissions

Some platforms increase API rate limits based on the type of account or plan. 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, particularly 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.

Get help

Please get in touch if you're regularly receiving widget errors or have any further queries on this.

Did this answer your question?