To protect the stability of the API and keep it available to all users, Ingram Micro enforces multiple kinds of rate-limiting. Requests that hit any of our rate limits will receive a “429 Too Many Requests” response, which contains the "X-RateLimit" header indicating how many seconds the client should wait before retrying the request. Limits are allocated per API app.
Code | Description |
---|---|
X-RateLimit-Limit: 500 | Total rate limit available per app per transaction. |
X-RateLimit-Remaining: 499 | Remaining rate limit / number of request an app can send for a particular transaction. |
X-RateLimit-Reset: 1392815263 | Time by when X-RateLimit-Remaining counter will reset. Where the number here is EPoch/ Unix time. |
Standard Rate Limits
- Current rate-limits for all GET calls: 60 calls per minute per endpoint.
- Depending on the endpoint you are trying to reach, the rate limit sets a specific number of allowed requests per refresh period. Once this threshold has been reached, Ingram Micro returns a status code 429 response.
- Each Web API request returns the following header information regarding rate limits and the number of requests left.
Rate Limit Examples
This example illustrates a typical rate limit configuration:
GET
https://api.ingrammicro.com:443/vendors/v1HTTP/1.1 HTTP/1.1 200 OK Content-Type: application/json X-RateLimit-Limit: 500 X-RateLimit-Remaining: 499 X-RateLimit-Reset: 1392815263 { "foo": "bar" }
This example illustrates the occurrence of a rate limit being exceeded. In instances where the rate limit has been exceeded, you are longer able to make a request against that endpoint for the duration of the refresh period.
GET
https://api.ingrammicro.com:443/vendors/v1HTTP/1.1 HTTP/1.1 429 TOO MANY REQUESTS Content-Type: application/json X-RateLimit-Limit: 150 X-RateLimit-Remaining: 0 X-RateLimit-Reset: 1392815263 { "errors": [ { "field": null, "message": "too many requests" }, ] }