---
title: "Get inventory items with optional filters"
method: GET
path: "/Inventory"
tags: ["Inventory"]
---

# Get inventory items with optional filters

`GET /Inventory`

## Query parameters

- `status` string
- `category` string
- `vendorId` string
- `hasDeaBook` boolean
- `search` string
- `drugForm` string
- `rxRequired` boolean

## Response `200`

OK

- InventoryItemListResponseDto
  - `data` InventoryItemDto[]
    - `id` string
    - `name` string
    - `invoiceName` string, nullable
    - `sku` string, nullable
    - `barcode` string, nullable
    - `description` string, nullable
    - `defaultSig` string, nullable — Default prescription instructions (SIG) for rx-required items. See PAW-671.
    - `compoundFormula` string, nullable — Compounding formula / preparation details for compounded items. See PAW-671.
    - `category` string
    - `vaccineTypeId` string, nullable
    - `status` string
    - `vendorId` string, nullable
    - `vendor` VendorSummaryDto
      - `id` string
      - `name` string
      - `code` string, nullable
    - `vendorItemNumber` string, nullable
    - `drugForm` string, nullable
    - `unitOfMeasure` string, nullable — Per-item dispensing-unit label override (e.g. "dose", "applicator"). Null = derive the label from DrugForm (ITE-390).
    - `strength` string, nullable
    - `ndc` string, nullable
    - `isCompounded` boolean
    - `rxRequired` boolean
    - `allowedSpeciesIds` string[], nullable
    - `vcprRequiredDays` union
      - integer
      - string, int32
    - `maxDispenseQuantity` union
      - number, double
      - string, double
    - `deaBookId` string, nullable
    - `deaBook` DEABookSummaryDto
      - `id` string
      - `drugName` string
      - `deaSchedule` string, nullable
    - `deaSchedule` string, nullable
    - `controlledSubstanceSchedule` union
      - integer
      - string, int32
    - `requiresWitness` boolean — Server-computed: does dispensing this item require a witness on submit? Mirrors the predicate in DispenseValidator so UI gating stays in lockstep with backend validation.
    - `distributionCategory` string, nullable
    - `cascadeEligible` boolean
    - `isAntimicrobial` boolean
    - `antimicrobialType` string, nullable
    - `requiresUnderCare` boolean
    - `requiresPhysicalExam` boolean
    - `foodProducing` boolean
    - `requiresWithdrawalPeriod` boolean
    - `unitCost` union
      - number, double
      - string, double
    - `unitPrice` union
      - number, double
      - string, double
    - `pricePolicy` string
    - `markupPercent` union
      - number, double
      - string, double
    - `mapPrice` union
      - number, double
      - string, double
    - `dispenseFee` union
      - number, double
      - string, double
    - `unitsPerContainer` union — Dispensing units per container (e.g. 30 tablets per bottle). Display and conversion aid only — never enters price math.
      - number, double
      - string, double
    - `sellingPrice` union — Indicative per-unit selling price derived from the price policy and the most-recent lot cost (or catalog UnitCost). Lets the item-lookup dropdown show a real price instead of $0 for cost-based or empty-UnitPrice items. The amount actually charged is recomputed at dispense from the specific lot, so treat this as an estimate. Null when no price can be inferred.
      - number, double
      - string, double
    - `isTaxable` boolean
    - `vatCategory` string, nullable
    - `trackLots` boolean
    - `storageRequirements` union
      - integer
      - string, int32
    - `minQuantity` union
      - number, double
      - string, double
    - `parQuantity` union
      - number, double
      - string, double
    - `maxQuantity` union
      - number, double
      - string, double
    - `reorderPoint` union
      - number, double
      - string, double
    - `totalOnHand` union
      - number, double
      - string, double
    - `activeLotCount` union
      - integer
      - string, int32
    - `earliestExpiration` string, date-time, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `totalCount` union
    - integer
    - string, int32

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1.md) · [All operations](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clinicos/pawthosx-business-api-v1/revisions/d8d7501dde48/schema)
