One of the Additional HTTP Status Codes (RFC6585) is
Where can I find examples of HTTP / REST API Rate-Limiting HTTP response headers that are useful with this HTTP response status?
Setting a timeout is the easiest way to limit API requests. Just set the timeout limit and then return the following message to your users.
API headers are like an extra source of information for each API call you make. Their job is to represent the meta-data associated with an API request and response. If you ever encounter issues with an API, the first place you should look is the headers, since they can help you track down any potential issues.
Here are some examples of HTTP API Rate Limiting HTTP Response headers. Taken from four common REST APIs: Github, Vimeo, Twitter and Imgur:
#=============================#=============================================# # HTTP Header # Description # #=============================#=============================================# | X-RateLimit-Limit | Request limit per hour | +-----------------------------+---------------------------------------------+ | X-RateLimit-Remaining | The number of requests left for the time | | | window | +-----------------------------+---------------------------------------------+
#=============================#=============================================# # HTTP Header # Description # #=============================#=============================================# | X-RateLimit-Limit | Request limit per day / per 5 minutes | +-----------------------------+---------------------------------------------+ | X-RateLimit-Remaining | The number of requests left for the time | | | window | +-----------------------------+---------------------------------------------+ | X-RateLimit-Reset | The remaining window before the rate limit | | | resets in UTC epoch seconds | +-----------------------------+---------------------------------------------+
Note: Twitter uses headers with similar names like Vimeo, but has another dash in each name.
#=============================#=============================================# # HTTP Header # Description # #=============================#=============================================# | X-Rate-Limit-Limit | The rate limit ceiling for that given | | | request | +-----------------------------+---------------------------------------------+ | X-Rate-Limit-Remaining | The number of requests left for the | | | 15 minute window | +-----------------------------+---------------------------------------------+ | X-Rate-Limit-Reset | The remaining window before the rate limit | | | resets in UTC epoch seconds | +-----------------------------+---------------------------------------------+
#=============================#=============================================# # HTTP Header # Description # #=============================#=============================================# | X-RateLimit-UserLimit | Total credits that can be allocated | +-----------------------------+---------------------------------------------+ | X-RateLimit-UserRemaining | Total credits available | +-----------------------------+---------------------------------------------+ | X-RateLimit-UserReset | Timestamp (unix epoch) for when the credits | | | will be reset | +-----------------------------+---------------------------------------------+ | X-RateLimit-ClientLimit | Total credits that can be allocated for the | | | application in a day | +-----------------------------+---------------------------------------------+ | X-RateLimit-ClientRemaining | Total credits remaining for the application | | | in a day | +-----------------------------+---------------------------------------------+
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With