Web Services only allows clients to make a limited number of calls in a given hour. The default rate limit for calls to a Resource permits 600 requests per hour. Calls are measured against the public facing IP of the server or device making the request. Every Resource in the documentation explains if it is rate limited or not.
If your application is being rate-limited it will receive HTTP 400 response codes. It is best practice for applications to monitor their current rate limit status and dynamically throttle requests if necessary.
You can check the rate limit one of two ways.
Every time you make a request to Resource we will return the current rate status to you in the response header. You should look for the following header keys:
X-RateLimit-Limit: 150 X-RateLimit-Remaining: 149 X-RateLimit-Reset: 1330819320 X-RateLimit-ResetTime: Sun, 04 Mar 2012 00:02:00 +0000
Make a request call to /ws/v2.0/ratelimits. You will get a response similar to:
{ "pattern"=>"/time/CGT/", "reset"=>1330819320, "remaining"=>149, "limit"=>150, "reset_time"=>"Sun, 04 Mar 2012 00:02:00 +0000" } <ratelimits version="0.1" total="1"> <ratelimit pattern="/time/CGT/" limit="150" remaining="149" reset="1330819320" reset_time="Sun, 04 Mar 2012 00:02:00 +0000"/> </ratelimits>
Once the rate limit reset time is reached, your remaining count will be reset the limit and everything will continue as it was before the rate limit was reached.
Whitelising is currently not available. Resourceful use of more efficient requests will allow you to build your integration successfully without requiring whitelisting.
The tips below are there to help you code defensively and reduce the possibility of being rate limited.
Some application features that you may want to provide are simply impossible in light of rate limiting, especially around the freshness of results.
Store responses in your application or on your site if you expect a lot of use. For example, don't try to call a Resource on every page load of your website landing page. Instead, call the Resource infrequently and load the response into a local cache. When users hit your website load the cached version of the results.
If your site keeps track of many users (for example, fetching their current status), consider only requesting data for users who have recently signed into your site.
We ask that you honor the rate limit. If you or your application abuses the rate limits we will blacklist it. If you are blacklisted you will be unable to get a response from the SW Combine Web Services.
If you or your application has been blacklisted and you think there has been an error you can create a Support Ticket. So we can get you back online quickly please include the following information: