# Returns a list of items.

`GET /inventory/items`

Group: Inventory › Items · Operation ID: `items`

Returns a list of items. It cannot filter on missing weight or missing dimensions. Use POST inventory/items/search for those. It also omits standardCost, itemPurchasePrice and currency, which GET inventory/items/:id and POST inventory/items/search return.

[Open in the interactive reference](https://docs.api.lensing.ai/?op=items)

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | `"v1"` | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `itemCode` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `externalItemId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `brandName` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `itemTypeId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `categoryId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `unitGroupId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `valuationMethod` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `isBatch` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `isSerial` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `isInventory` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `isSalesItem` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `isPurchaseItem` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `active` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `countryOfOrigin` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `isPerishable` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- Orderable: id, itemCode, valuationMethod, active, createdDate, lastModifiedDate
- Selectable: id, itemCode, itemName, externalItemId, brandName, notes, imageAvatar, itemTypeId, itemTypeName, categoryId, categoryName, inventoryUnitId, inventoryUnitCode, salesUnitId, salesUnitCode, purchaseUnitId, purchaseUnitCode, unitGroupId, unitGroupName, valuationMethod, isBatch, isSerial, isInventory, isSalesItem, isPurchaseItem, active, eccnNumber, htsCode, countryOfOrigin, minStockLevel, minimumTransactionQuantity, leadTime, weight, weightUnit, grossWeight, netWeight, length, width, height, volumePerUnit, volumeUnit, defaultAllocationMode, isPerishable, shelfLifeDays, minShelfLifeDaysOnReceipt, minShelfLifeDaysOnDispatch, bestBeforeOffsetDays, storageTempMin, storageTempMax, createdDate, lastModifiedDate

## Response

`200` Success

Under `data`, an array of itemsRow:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | no | The unique identifier for the item. |
| `itemCode` | string or null | no | The item code, for example 'WIDGET-01'. Unique within the tenant. It is set when the item is created and cannot be changed. |
| `itemName` | string or null | no | The display name of the item. |
| `externalItemId` | string or null | no | Your own identifier for this item in an external system. |
| `brandName` | string or null | no | The display name of the brand. |
| `notes` | string or null | no | Free text on the item. |
| `imageAvatar` | string or null | no | The URL of the item's avatar image. Absent when none is set. |
| `itemTypeId` | string or null | no | The unique identifier of the item's type. It is set when the item is created and cannot be changed. See id on GET inventory/item-types/:id. |
| `itemTypeName` | string or null | no | The display name of the item's type. |
| `categoryId` | string or null | no | The unique identifier of the item's category. See id on GET inventory/item-categories/:id. |
| `categoryName` | string or null | no | The display name of the item's category. |
| `inventoryUnitId` | string or null | no | The unique identifier of the unit stock is counted in. Every quantity on an inventory level or transaction is in this unit. See id on GET inventory/unit-of-measures/:id. |
| `inventoryUnitCode` | string or null | no | The code of the inventory unit. |
| `salesUnitId` | string or null | no | The unique identifier of the unit used on sales documents. Absent when it is the same as the inventory unit. See id on GET inventory/unit-of-measures/:id. |
| `salesUnitCode` | string or null | no | The code of the sales unit. |
| `purchaseUnitId` | string or null | no | The unique identifier of the unit used on purchase documents. Absent when it is the same as the inventory unit. See id on GET inventory/unit-of-measures/:id. |
| `purchaseUnitCode` | string or null | no | The code of the purchase unit. |
| `unitGroupId` | string or null | no | The unique identifier of the unit of measure group that has the conversions between the item's units. See id on GET inventory/unit-of-measure-groups/:id. |
| `unitGroupName` | string or null | no | The display name of the unit of measure group. |
| `valuationMethod` | string or null | no | How the item's stock is valued. Possible values: 'movingAverage', 'batch', 'serials', 'none'. 'none' is for an item that is not stocked. 'fifo' can be returned but cannot be written, because it is under development. |
| `isBatch` | boolean or null | no | Whether the item is tracked by batch. Receipts and shipments of it name batches. |
| `isSerial` | boolean or null | no | Whether the item is tracked by serial number. Receipts and shipments of it name one serial per unit. |
| `isInventory` | boolean or null | no | Whether stock levels are kept for the item. False for a service or charge item. |
| `isSalesItem` | boolean or null | no | Whether the item can appear on sales documents. |
| `isPurchaseItem` | boolean or null | no | Whether the item can appear on purchase documents. |
| `active` | boolean or null | no | Whether the item can be selected on new documents. False means it is retired, and historical records keep it. |
| `eccnNumber` | string or null | no | The Export Control Classification Number. |
| `htsCode` | string or null | no | The Harmonized Tariff Schedule code. |
| `countryOfOrigin` | string or null | no | The country the item originates from. |
| `minStockLevel` | string (decimal) or null | no | The stock level below which the item should be reordered, in the inventory unit. |
| `minimumTransactionQuantity` | string (decimal) or null | no | The smallest quantity any document can move. Absent when there is no restriction. |
| `leadTime` | string (decimal) or null | no | The number of days between ordering the item and receiving it. |
| `weight` | string (decimal) or null | no | The weight of one item, in weightUnit. A landed cost Weight allocation fails rather than falling back when an item on the receipt has none. |
| `weightUnit` | string or null | no | The unit weight is expressed in. Possible values: 'G', 'Kg', 'Lbs'. |
| `grossWeight` | string (decimal) or null | no | The weight including packaging, in weightUnit. |
| `netWeight` | string (decimal) or null | no | The weight excluding packaging, in weightUnit. |
| `length` | string (decimal) or null | no | The length of one item. A landed cost Volume allocation needs length, width and height together, and fails when the set is incomplete. |
| `width` | string (decimal) or null | no | The width of one item. |
| `height` | string (decimal) or null | no | The height of one item. |
| `volumePerUnit` | string (decimal) or null | no | The volume of one item, in volumeUnit. |
| `volumeUnit` | string or null | no | The unit volumePerUnit is expressed in. Possible values: 'L'. |
| `defaultAllocationMode` | string or null | no | The allocation mode a landed cost charge for this item falls back to when it names none. Possible values: 'Equal', 'Quantity', 'LineTotal', 'Weight', 'Volume'. |
| `isPerishable` | boolean or null | no | Whether the item expires. |
| `shelfLifeDays` | number or null | no | The number of days the item keeps from production. |
| `minShelfLifeDaysOnReceipt` | number or null | no | The least remaining shelf life a receipt of this item will accept. |
| `minShelfLifeDaysOnDispatch` | number or null | no | The least remaining shelf life a dispatch of this item will accept. |
| `bestBeforeOffsetDays` | number or null | no | The number of days between the expiry date and the best-before date printed on it. |
| `storageTempMin` | string (decimal) or null | no | The lowest temperature the item can be stored at, in degrees Celsius. |
| `storageTempMax` | string (decimal) or null | no | The highest temperature the item can be stored at, in degrees Celsius. |
| `createdDate` | string (date-time) or null | no | The date and time the item was created, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
| `lastModifiedDate` | string (date-time) or null | no | The date and time the item record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |

## Statuses

- `400` — Invalid request or business failure
- `401` — Missing or invalid access token
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests
- `500` — Internal server error
