Rate Limiting
Slow and steady wins the race...
Summary
In order to ensure the quality of service and reduce the impact of any attacks, all requests to the API are rate limited. This means that an application can request at most:
- 750 requests every minute
- 2,500 requests every 15 minutes
- 25,000 requests every 12 hours
For example, you can make 762 requests to the API but you will have to spread them over a two minute period otherwise, if they are all sent immediately, the last 12 requests will be rejected.
Limit Information
Each response from the API will include information about the remaining requests available to you in the response headers, an example of which is as follows:
curl -i "https://api.youmanage.co.uk/" HTTP/1.1 200 OK Date: Tue, 13 Aug 2019 13:08:47 GMT Status: 200 OK X-RateLimit-Limit: 12h X-RateLimit-Remaining: 9996 X-RateLimit-Reset: 2019-08-14T00:08:47.8332277Z
Header | Description |
X-RateLimit-Limit | The time limit in which the remaining requests can be made |
X-RateLimit-Remaining | The number of requests that can be made in the time limit |
X-RateLimit-Reset | The date at which the limit is reset |
Exceeding Limits
If you make too many requests in a given period then you will receive a HTTP 429 response with an error message that will describe the limit that has been reached:
{ "Error": { "Code": "YM0053", "Reference": "https://developer.youmanage.co.uk/api/errors/ym0053", "Target": "Api", "Message": "You have reached your limit of 500 calls per 1m", "Details": null } }
In addition to this error message, there will also be the header RetryAfter that details the number of seconds to wait before your limit is reset and you can try the request again.
Lastly, we'll look at how to get support if you encounter an unexpected error.