---
title: "Search for items."
method: POST
path: "/api/v4/inventory/items/search"
tags: ["Order Visibility"]
---

# Search for items.

`POST /api/v4/inventory/items/search`

## Request

- Base URL: `https://na12.api.project44.com`
- URL: `https://na12.api.project44.com/api/v4/inventory/items/search`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/api/v4/oauth2/token`
- TypeScript: <https://skmtc.dev/project44/apis/project44-rest-api/docs/api/v4/inventory/items/search/post.ts> (a function with typed inputs; its response is checked against the schema)

Use the BasicInventoryItemSearchCriteria, page number, page size and sort field to perform Inventory Item search

## Query parameters

- `page` integer
- `size` integer
- `sort` string

## Request body

- BasicInventoryItemSearchCriteria: BasicInventoryItemSearchCriteria contains criteria used to search inventory item data.
  - `consumeByDateTimeRange` OffsetDateTimeRangeFilter: A date and time range filter, with time zone offset.
    - `endDateTime` string: End Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `endDateTimeInclusive` boolean: Signifies if the end date time is inclusive. (default: false)
    - `startDateTime` string: Start Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `startDateTimeInclusive` boolean: Signifies if the start date time is inclusive. (default: true)
  - `hazardClasses` string[]: Search for items with hazard classes that match the provided hazard classes.
  - `ids` string[]: Search for items with ids that match the provided ids.
  - `inventoryIdentifiers` InventoryIdentifier[]: Search for items with inventory identifiers that match the provided inventory identifiers (InventoryIdentifier.type, InventoryIdentifier.description, InventoryIdentifier.value).
    - `description` string: The description for the identifier
    - `type` 'DEPARTMENT' | 'SUB_DEPARTMENT' | 'CATEGORY' | 'GROUP' | 'FAMILY' | 'GENDER' | 'VENDOR' | 'MANUFACTURER' | 'PROMOTION' | 'SECTOR' | 'DIVISION' | 'CLASS' | 'SUB_CLASS' | 'CODE' | 'SEASON': The type of the identifier
    - `value` string: The value for the identifier
  - `manufacturedDateTimeRange` OffsetDateTimeRangeFilter: A date and time range filter, with time zone offset.
    - `endDateTime` string: End Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `endDateTimeInclusive` boolean: Signifies if the end date time is inclusive. (default: false)
    - `startDateTime` string: Start Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `startDateTimeInclusive` boolean: Signifies if the start date time is inclusive. (default: true)
  - `orderIds` string[]: Search for items with order ids that match the provided order ids.
  - `packagedDateTimeRange` OffsetDateTimeRangeFilter: A date and time range filter, with time zone offset.
    - `endDateTime` string: End Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `endDateTimeInclusive` boolean: Signifies if the end date time is inclusive. (default: false)
    - `startDateTime` string: Start Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `startDateTimeInclusive` boolean: Signifies if the start date time is inclusive. (default: true)
  - `perUnitCost` MonetaryValueRangeFilter
    - `maximumValue` MonetaryValue: A monetary value expressing amount and currency type.
      - `amount` number: The value of the shipment
      - `currency` 'USD' | 'CAD' | 'MXN' | 'EUR', enum: The currency of the shipment value
    - `maximumValueInclusive` boolean: Signifies if the maximum value is inclusive. (default: false )
    - `minimumValue` MonetaryValue: A monetary value expressing amount and currency type.
      - `amount` number: The value of the shipment
      - `currency` 'USD' | 'CAD' | 'MXN' | 'EUR', enum: The currency of the shipment value
    - `minimumValueInclusive` boolean: Signifies if the minimum value is inclusive. (default: true )
  - `perUnitRetailValue` MonetaryValueRangeFilter
    - `maximumValue` MonetaryValue: A monetary value expressing amount and currency type.
      - `amount` number: The value of the shipment
      - `currency` 'USD' | 'CAD' | 'MXN' | 'EUR', enum: The currency of the shipment value
    - `maximumValueInclusive` boolean: Signifies if the maximum value is inclusive. (default: false )
    - `minimumValue` MonetaryValue: A monetary value expressing amount and currency type.
      - `amount` number: The value of the shipment
      - `currency` 'USD' | 'CAD' | 'MXN' | 'EUR', enum: The currency of the shipment value
    - `minimumValueInclusive` boolean: Signifies if the minimum value is inclusive. (default: true )
  - `perishable` boolean: Search for items which are perishable (true) or non-perishable (false).
  - `searchText` string: Provide a multi field text search across the full inventory item object.
  - `sellByDateTimeRange` OffsetDateTimeRangeFilter: A date and time range filter, with time zone offset.
    - `endDateTime` string: End Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `endDateTimeInclusive` boolean: Signifies if the end date time is inclusive. (default: false)
    - `startDateTime` string: Start Date time of this range with timezone offset. (format: 'yyyy-MM-dd'T'HH:mm:ssZ' )
    - `startDateTimeInclusive` boolean: Signifies if the start date time is inclusive. (default: true)
  - `shipmentIds` string[]: Search for items with shipment ids that match the provided shipment ids. These must be project44-generated masterShipmentIds.
  - `skus` string[]: Search for items with stock keeping units that match the provided stock keeping units.
  - `taxable` boolean: Search for items which are taxable (true) or non-taxable (false).
  - `upcs` string[]: Search for items with universal product codes that match the provided universal product codes.

## Response `200`

OK

- InventoryItemPage: A wrapper class for InventoryItem objects that represents a paginated response containing results and information about the current page.
  - `paginationInfo` PaginationInfo: Pagination information about a collection of resources.
    - `pageNumber` integer: Matching page number given the supplied PaginationParameters.
    - `pageSize` integer: Page size matching the PaginationParameters.
    - `total` integer: Total number of resource items matching the supplied criteria.
  - `results` InventoryItem[]: List of resources contained on this page.
    - `consumeByDateTime` string: The Consumed-By date-time for the inventory item. (format: yyyy-MM-dd'T'HH:mm:ssZ, example: 2019-11-14T12:30:00-0500).
    - `description` string: The description of the inventory item
    - `externalID` string
    - `id` string: The unique identifier for one inventory item. This identifier should be treated as an opaque string and should be used to associate the inventory item to other orders and items.
    - `inventoryDimensionalWeight` DimensionalWeight: The Dimensional Weight which includes quantity, package type, cubic dimension details, and weight details for the inventory item
      - `cubicDimension` CubicDimension: A cubic dimension.
        - `height` number: Height measurement.
        - `length` number: Length measurement.
        - `width` number: Width measurement.
      - `lengthUnit` 'IN' | 'CM' | 'FT' | 'M': The length unit applicable for the cubic dimension details for the DimensionalWeight
      - `packageType` 'BAG' | 'BALE' | 'BOX' | 'BUCKET' | 'BUNDLE' | 'CAN' | 'CARTON' | 'CASE' | 'COIL' | 'CRATE' | 'CYLINDER' | 'DRUM' | 'PAIL' | 'PLT' | 'PIECES' | 'REEL' | 'ROLL' | 'SKID' | 'TOTE' | 'TUBE' | 'EACH' | 'FLAT' | 'LOOSE': The package type for the DimensionalWeight
      - `quantity` integer: The quantity of identical packages that make up this inventory item
      - `weight` Weight
        - `weight` number: The numeric decimal value of this weight.
        - `weightUnit` 'LB' | 'KG': The unit of measurement for this weight.
    - `inventoryIdentifiers` InventoryIdentifier[]: The customer-defined unique identifiers for the item
      - `description` string: The description for the identifier
      - `type` 'DEPARTMENT' | 'SUB_DEPARTMENT' | 'CATEGORY' | 'GROUP' | 'FAMILY' | 'GENDER' | 'VENDOR' | 'MANUFACTURER' | 'PROMOTION' | 'SECTOR' | 'DIVISION' | 'CLASS' | 'SUB_CLASS' | 'CODE' | 'SEASON': The type of the identifier
      - `value` string: The value for the identifier
    - `lineItemHazmatDetail` LineItemHazmatDetail: Provides important information about the hazardous materials to be transported, as required by the US Department of Transportation (DOT). Only required for shipment requests.
      - `hazardClass` string: The hazard class number, according to the classification system outlined by the Federal Motor Carrier Safety Administration (FMCSA). This is a one digit number or a two digit number separated by a decimal.
      - `identificationNumber` string: The United Nations (UN) or North America (NA) number identifying the hazmat item.
      - `packingGroup` 'I' | 'II' | 'III' | 'NONE': The hazmat packing group for a line item, indicating the degree of danger.
      - `properShippingName` string: The proper shipping name of the hazmat item.
    - `manufacturedDateTime` string: The manufactured date-time for the inventory item. (format: yyyy-MM-dd'T'HH:mm:ssZ, example: 2019-11-14T12:30:00-0500).
    - `orderIds` string[]: The list of order identifiers for the inventory item. These must be the unique project44-generated ids from the id field of orders in the system.
    - `packagedDateTime` string: The packaged date-time for the inventory item. (format: yyyy-MM-dd'T'HH:mm:ssZ, example: 2019-11-14T12:30:00-0500).
    - `perUnitCost` MonetaryValue: A monetary value expressing amount and currency type.
      - `amount` number: The value of the shipment
      - `currency` 'USD' | 'CAD' | 'MXN' | 'EUR', enum: The currency of the shipment value
    - `perUnitRetailValue` MonetaryValue: A monetary value expressing amount and currency type.
      - `amount` number: The value of the shipment
      - `currency` 'USD' | 'CAD' | 'MXN' | 'EUR', enum: The currency of the shipment value
    - `perishable` boolean: The flag to indicate if inventory item is perishable (default: 'false')
    - `promotionalDateTimeWindow` OffsetDateTimeWindow: A date and time range, with time zone offset.
      - `endDateTime` string: End time of this window with timezone offset. (format: yyyy-MM-dd'T'HH:mm:ssZ)
      - `startDateTime` string: Start time of this window with timezone offset. (format: yyyy-MM-dd'T'HH:mm:ssZ)
    - `sellByDateTime` string: The Sell-By date-time for the inventory item. (format: yyyy-MM-dd'T'HH:mm:ssZ, example: 2019-11-14T12:30:00-0500).
    - `serialNumber` string: A customer provided number that distinguishes identical goods or items.
    - `shipmentIds` string[]: The list of shipment identifiers associated with the inventory item. These values must be the project44-generated masterShipmentId from the shipments.
    - `stockKeepingUnit` string: The Stock Keeping Unit (aka SKU) is the common code used to represent goods or items.
    - `taxable` boolean: The flag to indicate if inventory item is taxable (default: 'false')
    - `universalProductCode` string: The Universal Product Code (aka UPC) is the bar code value used to represent goods or items.

## Other responses

- `400`: Invalid request
- `401`: Invalid or missing credentials
- `403`: User not authorized to perform this operation

---

[API](https://skmtc.dev/project44/apis/project44-rest-api.md) - [All operations](https://skmtc.dev/project44/apis/project44-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/project44/apis/project44-rest-api/revisions/cdf9675e2294?raw)
