Inventory Stock
GET /v1/inventory/stock.
Required scope: inventory.stock.read. Paginated.
What a stock row tells you
Section titled “What a stock row tells you”productId, storeId, sku, barcode, name, trackStock (whether this product’s stock is
tracked at all), stockQuantity (exact current quantity, as a string), reorderLevel (the
threshold used to compute availability below), minimumStockLevel (informational only - see
note), and availability.
inventory.stock.read is approved to return the exact stock quantity - this scope grants real
stock visibility, deliberately, not just a coarse in-stock/out-of-stock signal.
availability
Section titled “availability”A stable enum computed from trackStock and stockQuantity/reorderLevel:
| Value | Condition |
|---|---|
not_tracked | trackStock is false |
out_of_stock | tracked, stockQuantity <= 0 |
low_stock | tracked, 0 < stockQuantity <= reorderLevel |
in_stock | tracked, stockQuantity > reorderLevel |
minimumStockLevel is returned for completeness but is not used to compute availability -
reorderLevel is. Don’t build low-stock logic against minimumStockLevel.
Filters
Section titled “Filters”storeId, productId, sku, barcode, categoryId, updatedSince, lowStockOnly (only
availability: "low_stock" rows), activeOnly (default true), plus page/pageSize.
What’s excluded
Section titled “What’s excluded”Cost price, pack/unit cost, margin percent, stock cost layers, stock movement/adjustment history
(who changed stock and why), supplier pricing, invoice/purchase history, and staff references.
inventory.stock.read grants stock-level visibility, not financial inventory data.
Related
Section titled “Related”- Products -
productIdcorresponds to a product’sid. - Inventory Sync - a practical polling pattern using
updatedSince/lowStockOnly.