# Retrieve an item

Operation ID: `getItem`

Group: Inventory › Items

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/getItem)

`GET /inventory/items/{id}`

Read-only: Reads and returns; changes nothing.

Retrieves an item. The item comes back with every field, including standardCost, itemPurchasePrice, and currency, which the collection GET inventory/items leaves out. POST inventory/items/search returns the same fields.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · 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`. |
| `id` | path | string | yes | The unique identifier of the item you want to retrieve. |

## Response

`200` Success

Under `data` (getItemOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The unique identifier for the item. Example: `"517a93e4-cbb4-4571-9e3d-2343e56cfd84"`. |
| `itemCode` | string | no | The item code, for example 'WIDGET-01'. Unique within the tenant. It is set when the item is created and cannot be changed. Example: `"WIDGET-01"`. |
| `itemName` | string | no | The display name of the item. Example: `"Standard widget"`. |
| `externalItemId` | string | no | Your own identifier for this item in an external system. |
| `brandName` | string | no | The display name of the brand. |
| `notes` | string | no | Free text on the item. |
| `imageAvatar` | string | no | The URL of the item's avatar image. Absent when none is set. |
| `itemTypeId` | string | 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. Example: `"66aea173-07b8-4c4e-bc4a-5c35dedfdc16"`. |
| `itemTypeName` | string | no | The display name of the item's type. Example: `"Stocked good"`. |
| `categoryId` | string | no | The unique identifier of the item's category. See id on GET inventory/item-categories/:id. Example: `"6709e2bf-d6cf-4800-9ffa-d5a496ec4d0b"`. |
| `categoryName` | string | no | The display name of the item's category. Example: `"Components"`. |
| `inventoryUnitId` | string | 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. Example: `"77bd4c16-e1f0-426d-a98f-07b063df2d9c"`. |
| `inventoryUnitCode` | string | no | The code of the inventory unit. Example: `"EA"`. |
| `salesUnitId` | string | 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 | no | The code of the sales unit. |
| `purchaseUnitId` | string | 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 | no | The code of the purchase unit. |
| `unitGroupId` | string | 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. Example: `"38b5454a-c3fe-452b-9754-61f9ead49e87"`. |
| `unitGroupName` | string | no | The display name of the unit of measure group. Example: `"Each"`. |
| `valuationMethod` | string | 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. Example: `"movingAverage"`. |
| `isBatch` | boolean | no | Whether the item is tracked by batch. Receipts and shipments of it name batches. Example: `false`. |
| `isSerial` | boolean | no | Whether the item is tracked by serial number. Receipts and shipments of it name one serial per unit. Example: `false`. |
| `isInventory` | boolean | no | Whether stock levels are kept for the item. False for a service or charge item. Example: `true`. |
| `isSalesItem` | boolean | no | Whether the item can appear on sales documents. Example: `true`. |
| `isPurchaseItem` | boolean | no | Whether the item can appear on purchase documents. Example: `true`. |
| `active` | boolean | no | Whether the item can be selected on new documents. False means it is retired, and historical records keep it. Example: `true`. |
| `eccnNumber` | string | no | The Export Control Classification Number. |
| `htsCode` | string | no | The Harmonized Tariff Schedule code. |
| `countryOfOrigin` | string | no | The country the item originates from. |
| `minStockLevel` | decimal | no | The stock level below which the item should be reordered, in the inventory unit. |
| `minimumTransactionQuantity` | decimal | no | The smallest quantity any document can move. Absent when there is no restriction. |
| `leadTime` | decimal | no | The number of weeks between ordering the item and receiving it. |
| `standardCost` | decimal | no | The standard cost carried for planning, in the item's currency. It is not the value of the stock on hand. Read that from GET inventory/inventory-levels. |
| `itemPurchasePrice` | decimal | no | The expected purchase price, in the item's currency. |
| `currency` | string | no | The currency of standardCost and itemPurchasePrice. Format ISO 4217, for example 'USD'. |
| `weight` | decimal | 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. Example: `"1.4"`. |
| `weightUnit` | string | no | The unit weight is expressed in. Possible values: 'G', 'Kg', 'Lbs'. Example: `"Kg"`. |
| `grossWeight` | decimal | no | The weight including packaging, in weightUnit. |
| `netWeight` | decimal | no | The weight excluding packaging, in weightUnit. |
| `length` | decimal | 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` | decimal | no | The width of one item. |
| `height` | decimal | no | The height of one item. |
| `volumePerUnit` | decimal | no | The volume of one item, in volumeUnit. |
| `volumeUnit` | string | no | The unit volumePerUnit is expressed in. Possible values: 'L'. |
| `defaultAllocationMode` | string | 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 | no | Whether the item expires. |
| `shelfLifeDays` | number | no | The number of days the item keeps from production. |
| `minShelfLifeDaysOnReceipt` | number | no | The least remaining shelf life a receipt of this item will accept. |
| `minShelfLifeDaysOnDispatch` | number | no | The least remaining shelf life a dispatch of this item will accept. |
| `bestBeforeOffsetDays` | number | no | The number of days between the expiry date and the best-before date printed on it. |
| `storageTempMin` | decimal | no | The lowest temperature the item can be stored at, in degrees Celsius. |
| `storageTempMax` | decimal | no | The highest temperature the item can be stored at, in degrees Celsius. |
| `createdDate` | date-time | no | The date and time the item was created, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
| `lastModifiedDate` | date-time | no | The date and time the item record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Example: `"2026-08-18T09:14:22.517Z"`. |

```json
{
  "data": {
    "id": "517a93e4-cbb4-4571-9e3d-2343e56cfd84",
    "itemCode": "WIDGET-01",
    "itemName": "Standard widget",
    "externalItemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "brandName": "<brandName>",
    "notes": "<notes>",
    "imageAvatar": "<imageAvatar>",
    "itemTypeId": "66aea173-07b8-4c4e-bc4a-5c35dedfdc16",
    "itemTypeName": "Stocked good",
    "categoryId": "6709e2bf-d6cf-4800-9ffa-d5a496ec4d0b",
    "categoryName": "Components",
    "inventoryUnitId": "77bd4c16-e1f0-426d-a98f-07b063df2d9c",
    "inventoryUnitCode": "EA",
    "salesUnitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "salesUnitCode": "<salesUnitCode>",
    "purchaseUnitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "purchaseUnitCode": "<purchaseUnitCode>",
    "unitGroupId": "38b5454a-c3fe-452b-9754-61f9ead49e87",
    "unitGroupName": "Each",
    "valuationMethod": "movingAverage",
    "isBatch": false,
    "isSerial": false,
    "isInventory": true,
    "isSalesItem": true,
    "isPurchaseItem": true,
    "active": true,
    "eccnNumber": "<eccnNumber>",
    "htsCode": "<htsCode>",
    "countryOfOrigin": "<countryOfOrigin>",
    "minStockLevel": "19.99",
    "minimumTransactionQuantity": "19.99",
    "leadTime": "19.99",
    "standardCost": "19.99",
    "itemPurchasePrice": "19.99",
    "currency": "<currency>",
    "weight": "1.4",
    "weightUnit": "Kg",
    "grossWeight": "19.99",
    "netWeight": "19.99",
    "length": "19.99",
    "width": "19.99",
    "height": "19.99",
    "volumePerUnit": "19.99",
    "volumeUnit": "<volumeUnit>",
    "defaultAllocationMode": "<defaultAllocationMode>",
    "isPerishable": true,
    "shelfLifeDays": 0,
    "minShelfLifeDaysOnReceipt": 0,
    "minShelfLifeDaysOnDispatch": 0,
    "bestBeforeOffsetDays": 0,
    "storageTempMin": "19.99",
    "storageTempMax": "19.99",
    "createdDate": "2026-01-15T09:30:00.000Z",
    "lastModifiedDate": "2026-08-18T09:14:22.517Z"
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}
```

## Errors

| Code | Status |
| --- | --- |
| `NOT_FOUND` | 400 |

## Statuses

- `400` — Invalid request or business failure. Codes: NOT_FOUND
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
