Retrieve an item
Operation ID: getItem
Group: Inventory › Items
Open in the interactive reference
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". |
{
"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_FOUND401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error