---
title: "List inventory records"
method: POST
path: "/inventory"
tags: ["Inventory"]
---

# List inventory records

`POST /inventory`

Returns a paginated list of inventory records.

🔒 Requires: `inventory:read` scope

## Request body

- InventoryRequest
  - `after` integer — The lower limit for the version numbers to be included in the response.
  - `before` integer — The upper limit for the version numbers to be included in the response.
  - `include_deleted` boolean — Whether to include inventory records for deleted products.
  - `product_id` string, uuid — Optional filter to restrict results to the specified product. When combined with variants: true, it's treated as a root product ID and matches all variants of that product; otherwise it matches the exact product.
  - `size` integer — The maximum number of inventory records to return.
  - `sort_direction` 'asc' | 'desc' — Whether to sort the response by ascending or descending.
  - `variants` boolean — When true (and product_id is set), matches all variant products sharing the same root_product_id, rather than just the exact product.

## Response `200`

- Inventory[]
  - `average_cost` number, double, nullable — The average cost of inventory available to sell.
  - `current_inventory_level` number, double — Current inventory level.
  - `deleted_at` string, date-time, nullable — The deletion timestamp in UTC, or null if not deleted.
  - `id` string — Auto-generated object ID.
  - `outlet_id` string — The ID of the outlet associated with this inventory record.
  - `product_id` string — The ID of the product associated with this inventory record.
  - `quantity_to_procure` number, double — Quantity of stock to procure in order to satisfy current fulfilments and service orders.
  - `reorder_amount` number, double, nullable — The quantity to order to reach the desired stock level. For the `FIXED` method, this is a static amount that was set when the reorder method was configured. For `MIN_MAX`, this is dynamically computed as the difference between reorder_target and current_inventory_level, or zero if current stock exceeds the target. This computation is independent of reorder_point and may produce a non-zero value even when current_inventory_level is above the reorder point. It is null if no reorder method is configured.
  - `reorder_method` 'FIXED' | 'MIN_MAX' | 'null', nullable — The reorder strategy in use. Either `FIXED` or `MIN_MAX`. Null if no reorder method is configured.
  - `reorder_point` number, double, nullable — The inventory level at which a product should be automatically included in stock orders.
  - `reorder_target` number, double, nullable — The desired stock level to restore to when reordering. For reorder_method `MIN_MAX`, this is the target the reorder amount is computed against. For `FIXED`, this equals reorder_point + reorder_amount. Null if no reorder method is configured.
  - `version` integer — Auto-incrementing object version number.

---

[API](https://skmtc.net/lightspeedhq/apis/api-2026-07.md) · [All operations](https://skmtc.net/lightspeedhq/apis/api-2026-07/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightspeedhq/api-2026-07/revisions/72d4ceb46dbb/schema)
