Skip to content

Overview

The ILS API is the primary way to get data into and out of the Integrated Logistics Solutions (ILS) platform. It's an HTTP-based API that apps can use to programmatically query data, post new data, and perform a wide variety of other tasks.

HTTP

All data transfers conform to HTTP/1.1, and all endpoints require HTTPS. Because the ILS API is HTTP-based, it works with any language that has an HTTP library, such as cURL and urllib. This means you can performing this cURL request:

curl -i -X GET "https://api.ils.live/api/healthz"

Host URL

Almost all requests are passed to the api.ils.live host URL.

Access Tokens

Access tokens allow your app to access the ILS API. Almost all ILS API endpoints require an access token of some kind, so each time you access an endpoint, your request may require one. They typically perform two functions:

They allow your app to access a Customer's information without requiring the User's login. For example, your app needs product details to perform a function. If the Customer agrees to allow your app to retrieve their product details from ILS, the Customer will not need to create/share their user login for your app to get their product data.

Visit our authentication documentation to learn more.

Rate Limits

A rate limit is the number of API calls an app can make within a given time period. If this limit is exceeded, the app may be throttled. API requests made by a throttled app will fail.

All applications are limited to a certain number of API requests per minute. Real time rate limit usage statistics are described in headers that are included with most API responses once enough calls have been made to an endpoint. Once a rate limit is reached, any subsequent requests made by your app will fail and the API returns an error response with a status code of 429 until enough time has passed for the call count to drop below the limit.

Clients who use the ILS API are subjected to two rate limits:

  1. The maximum number of API calls per hour is 7200 API requests.
  2. The maximum number of API calls per minute is 120 API requests.

If your application hits the rate limit, an HTTP 429 Too Many Requests response will be returned with this body:

{
    "statusCode": 429,
    "statusInfoSet": {
        "ils_codeMajor": "failure",
        "ils_codeMinor": "too many requests",
        "ils_codeSeverity": "error",
        "ils_description": "Quota exceeded. Maximum allowed: 120 per minute. Please try again in 38 second(s)."
    }
}

You can also access rate limit information from all requests via the response headers in the API response:

Header Name Description
X-Rate-Limit-Limit The maximum number of API calls.
X-Rate-Limit-Remaining The remaining number of API calls.
X-Rate-Limit-Reset The time internal to reset the API call count.

Paginated Results

When making an API request to list endpoints, you usually don't receive all of the results of that request in a single response. This is because some responses could contain thousands of objects so most responses are paginated by default. ILS API uses offset based pagination.

An offset-paginated request supports the following parameters:

  • offset : This offsets the start of each page by the number specified.
  • limit : This is the maximum number of objects that may be returned. A query may return fewer than the value of limit due to filtering. All the APIs have 500 as maximum on the limit value for performance reasons. In all cases, the API returns the correct pagination links.

An offset-paginated response includes the following parameters:

  • currentPage : The current result page number and starting page number is 1.
  • totalPages : The total number of result pages.
  • pageSize : This is the maximum number of objects that may be returned.
  • totalCount : This is the total number of objects that may be returned.
  • hasPrevious : This indicates whether the current result page has previous page.
  • hasNext : This indicates whether the current result page has next page.