---
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`

## Request

- Base URL: `https://api.fulcrumpro.com`
- URL: `https://api.fulcrumpro.com/api/items/{itemId}/purchase-history`
- Auth: none declared

## 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

## Changes

- **2026-08-20** `1e2d7913fcf0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/items/:itemId/purchase-history/get.md)

---

[API](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi.md) - [All operations](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/llms.txt) - [OpenAPI document](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/revisions/c9e6f41852d1?raw)
