---
title: "Get an item's purchase history — every time it was bought, from whom, at what price."
method: GET
path: "/api/items/{itemId}/purchase-history"
tags: ["Item"]
---

# Get an item's purchase history — every time it was bought, from whom, at what price.

`GET /api/items/{itemId}/purchase-history`

## Path parameters

- `itemId` string, required

## Query parameters

- `months` integer

## Response `200`

The item's purchase history over the requested window.

- ItemPurchaseHistoryDto — What one item has cost, read from the purchase orders that bought it.
  - `item` CommonReferenceDto — Represents a reference to a document in a DB collection
    - `id` string, nullable — Unique Id associated to the referenced object
    - `name` string, nullable — Descriptive name associated to the object
  - `windowMonths` integer, required — Window the history covers, in months back from now. Reflects the value actually used after clamping.
  - `totalPurchaseCount` integer, required — Number of purchases in FulcrumProduct.PublicApi.Dto.Item.PurchaseHistory.ItemPurchaseHistoryDto.Purchases.
  - `purchases` ItemPurchaseHistoryEntryDto[], required — Every purchase of the item in the window, newest first.
    - `purchaseOrder` CommonReferenceDto — Represents a reference to a document in a DB collection
      - `id` string, nullable — Unique Id associated to the referenced object
      - `name` string, nullable — Descriptive name associated to the object
    - `purchaseOrderNumber` integer, required — Human-facing purchase order number.
    - `purchaseOrderStatus` string, nullable — Order status at read time — only `Ordered` or `Paid` appear here.
    - `orderDateUtc` string, date-time, nullable — When the order was placed (UTC).
    - `vendor` CommonReferenceDto — Represents a reference to a document in a DB collection
      - `id` string, nullable — Unique Id associated to the referenced object
      - `name` string, nullable — Descriptive name associated to the object
    - `unitPrice` number, double, nullable — Unit price on the order line.
    - `actualBilledUnitPrice` number, double, nullable — Unit price the vendor actually billed, when it came back different from the ordered price.
    - `effectiveUnitPrice` number, double, nullable — The price actually paid: the billed price when there is one, otherwise the ordered price. Use this rather than picking between the two.
    - `quantityOrdered` number, double, nullable — Quantity ordered on the line.
    - `quantityReceived` number, double, nullable — Quantity received against the line so far.
  - `summary` ItemPurchaseHistorySummaryDto — Roll-up over an item's purchases in the window. Prices are effective prices.
    - `minUnitPrice` number, double, nullable — Lowest effective unit price paid in the window.
    - `maxUnitPrice` number, double, nullable — Highest effective unit price paid in the window.
    - `avgUnitPrice` number, double, nullable — Mean effective unit price across the window, to four decimal places.
    - `latestUnitPrice` number, double, nullable — Effective unit price on the most recent purchase — the "last price paid".
    - `latestOrderDateUtc` string, date-time, nullable — Order date of the most recent purchase (UTC).
    - `vendorCount` integer, required — How many distinct vendors the item was bought from in the window.

## Other responses

- `404` — Item did not exist

---

[API](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi.md) · [All operations](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fulcrumpro/fulcrum-publicapi/revisions/016c1fd45a3f/schema)
