GET v3/stockLevels
GET/v3/stockLevels
List the stock levels of your products, with pagination.
Returns the various stockLevels of the product indicated by the id in the url. The GET v3/stockLevels endpoint will return up to 100 stockLevel resource at a time. Each stockLevel is related to a single product by its id and may contain multiple levels for each warehouse the product is located in.
Pagination
The endpoint supports pagination to split the large collection of resources into smaller, more manageable chunks or pages. This helps to reduce the response size and to improve performance. The endpoint supports two forms of cursor-based pagination, both are explained below.
- See also this article on pagination.
Iterating over all stock levels of all products
By default the end-point will enable the user to iterate over all stock levels of all products in ascending order of id (product-id). To begin iterating start by making the following request: GET v3/stockLevels. It is possible to specify a page[size] to reduce the number of items returned from 100. To iterate, invoke the URL provided in the next parameter of the response. Each response will contain another next parameter pointing to the next 'page'. This process can be continued until the response either contains fewer stockLevel resources than requested using the page[size] parameter or there is no next paramter in the response to invoke.
Iterating over stock levels that changed on or after a certain point in time
The end-point also supports iteration over the stock levels of products that have changed on or since a certain point in time. To start this iteration, invoke the endpoint using the filter filter[mutatedOn][gte]={timestamp}. The parameter page[size] can also be used in this case. For example GET v3/stockLevels?filter[mutatedOn][gte]=2023-07-28T11:25:00 will return the stockLevels of the first 100 skus that have changed since 11:25 on 2023-07-28. The response will also have a next parameter that will point to the next 'page' and by repeatedly invoking the next of each response will guarnatee that all stock levels changed since the prodivded timestamp are returned. The final response will contain fewer stockLevel resources than requested using the page[size] parameter or will have no next paramter to invoke at which point the product whose stock level was mutated latest has been returned. Note however that during this process, stock mutations may have occurred on products whose stock level was already returned in a previous response. The server will return these updated stock levels for those products again on more recent 'pages' (i.e. more towards the end of the iteration process) because these products now have a more recent mutatedOn value.
Filters
The GET v3/stockLevels endpoint supports filtering on the following attributes: sku;\
Filtering on sku
By specifying the product sku it is possible to look for stock of that product specifically. Be aware that the SKU's must be URL encoded to avoid being interpreted incorrecly. stockLevels for:
GET {host}/v3/stockLevels?filter[sku][in]=ABC,DEFwill return thestockLevelsfor theproductswith skuABCandDEF.GET {host}/v3/stockLevels?filter[sku][in]=ABC%2CDEFwill return thestockLevelsfor theproductwith skuABC,DEF.
Filtering on mutatedOn
By specifying a timestamp to the filter filter[mutatedOn][gte] it becomes possible to iterate over all stockLevels that have changed since that timestamp. (See the section above for a more detailed explanation of this process.) The filter on mutatedOn supports only the 'greater than or equal' comparitor: filter[mutatedOn][gte]={timestamp} and will cause the sorting of the response to adhere to sort=mutadedOn,id regardless what was provided or requested. The sort query paramter is implicitly set to mutatedOn,id when using this filter.
Note that the timestamp is considered to be in UTC
Ordering
The endpoint has two orderings of the result sets, however this ordering cannot be specified by the user.
Limitations of GET v3/stockLevels
- At most 100
stockLevelresources are returned regardles of the value provided by thepage[size]query parameter. - The
idof thestockLevelis the same as theproduct. - Ordering of results:
- By default or when using
page[cursor], the ordering is set tosort=id. This is byidof thesku\\productand in ascending order to guarantee that eachskuappears exactly once.
- By default or when using
- When using
filter[mutatedOn][gte]the ordering is set tosort=mutatedOn,id. This ordering is fixed for this filter to guarantee that nostockLevelsare omitted from the results when iterating over the set ofstockLevelsthat changed since the provided timestamp. filter[mutatedOn][gte]expectes a timestamp in UTC.- Users are rate-limited to 1000 requests per hour on this service.
Request
Responses
- 200
- 401
- 403
- 404
- 406
- 415
- 429
OK
Response Headers
The maximum number of requests per hour (see documentation for current limits)
500401 Unauthorized
A 401 Unauthorized response occurs when attempting to access a resource or perform an action that requires authentication, but no valid credentials have been provided. It indicates that the requester is unauthorized to access the requested resource.
The following are common scenarios that may lead to a 401 Unauthorized response:
- Attempting to access a protected API endpoint without providing authentication credentials.
- Providing an invalid or expired authentication token.
- Providing valid authentication credentials, but lacking sufficient privileges to access the requested resource.
- Providing authentication credentials that are valid for a different resource or API endpoint than the one being requested.
403 Forbidden
The HTTP 403 Forbidden client error response status code indicates that the server understood the request but refused to process it. This status is similar to 401 Unauthorized, except that for 403 Forbidden responses, authenticating or re-authenticating makes no difference. The request failure is tied to application logic, such as insufficient permissions to a resource or action.
404 Not Found
A 404 Not Found response occurs when attempting to access a resource that cannot be found on the server. It indicates that the requested resource does not exist, either because it has been deleted, the URL is incorrect or because the endpoint has not been realized.
The following are common scenarios that may lead to a 404 Not Found response:
- Attempting to access an endpoint with an invalid or non-existent URL.
- Attempting to access an endpoint that has not (yet) been realized
- Requesting a resource that has been deleted or moved.
406 Not Acceptable
A 406 Not Acceptable response occurs when the server cannot provide a response that matches the client's requested format or content language for the requested resource. For instance, if a client sends an Accept header of text/html to an API endpoint that only supports application/json responses, the server would respond with a 406 Not Acceptable status code. This type of response is a required response for JSON:API compatible endpoints.
415 Unsupported Media Type
A 415 Unsupported Media Type response occurs when the server cannot process the request because the media type specified in the request is not supported for the requested resource. For example, if a client sends a request with a Content-Type header of application/pdf to an API endpoint that only supports application/json (the only valid media type for JSON:API), the server would respond with a 415 Unsupported Media Type status code. This type of error-response is a required for JSON:API compatible endpoints.
429 Too Many Requests
The request could not be completed because of a rate limit violation.