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/cls/v1/resource HTTP/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/cls/v1/resource/ HTTP/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"
    },
  ]
}

 

Next: Using Sandbox >