Rate Limiting

The FanFeedr API allows clients to make a limited number of calls, both in a given hour and on on a per second basis.

Per hour and per second rate limits vary by tier:

  1. Basic:                 25 requests/hour; 3 requests/second
  2. Bronze:              2,400 requests/day; 6 requests/second
  3. Silver:                6,000 requests/day; 12 requests/second
  4. Gold:                  60,000 requests/day; 24 requests/second
  5. Enterprise:         unlimited requests/day; unlimited requests/second

Our REST API applies user rate limiting. Authenticated API calls are measured against the authenticating user's rate limit.

Rate limits are applied to all methods that request information with the HTTP GET command, except for :parent_resource/:resource_id/images.

Are rate limits per user, per computer, or per ap?


Currently, all requests must be authenticated and will apply to the user.

How do I know if I have been rate limited?


If your application is being rate limited, it will receive HTTP 403 Over Rate Limit response codes. We recommend that applications monitor their current rate limit status and dynamically throttle requests if necessary.

What happens when the rate limit reset time is reached?


The rate limit will be the same as it was before the reset time.

Tips to avoid being rate limited


In order to reduce the possibility of being rate limited, you may need to code defensively. We recommend following the tips below.

Please note that you may find that some desired application features are not possible due to rate limiting, especially around the freshness of results. If real-time information is an aim of your application, please contact us to discuss premium plans with higher rate limits.

Caching

If you anticipate making a high number of requests, store API responses in your application or on your site. For example, don't try to call the FanFeedr API on every page load of your website landing page. Instead, call the API infrequently and load the response into a local cache. When users hit your website, load the cached version of the results.

Prioritize active resources

If your site keeps track of the news and scores for many teams, consider prioritizing queries for teams that are in season or expecting to have updated information. Using this approach, you can keep up to date on queries that are popular but not waste cycles requesting queries on resources that do not update as frequently.