---
title: "Inventory - Get History"
method: GET
path: "/inventory/get_history"
tags: ["inventory"]
---

# Inventory - Get History

`GET /inventory/get_history`

Retrieve the inventory change history for a specific item at a warehouse.

## Query parameters

- `start` string, date, required — Start date
- `end` string, date, required — End date
- `notes` string — Filter by notes text

## Response `200`

Inventory history records

- object
  - `rows` HistoryRow[], required — Array of inventory change log rows
    - `user_id` string, nullable — User ID who made the change
    - `item_id` string — Item ID affected
    - `location_id` string — Location ID affected
    - `change` InventoryChange — Change details
      - `type` 'increase' | 'decrease' | 'update' | 'remove' | 'add' — Change type
      - `quantity` number — Quantity changed
      - `notes` string — Notes about the change
    - `time` string — Timestamp of the change
    - `old_value` number — Previous on-hand value
    - `sku` string — Item SKU at time of change

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden. Insufficient permissions.
- `429` — Too many requests. Rate limit exceeded.
- `500` — Internal server error.

## Changes

- **2026-03-02** `fa53dd949b8e` — 2 breaking, 7 info
  - the `query` request parameter `end` became required
  - the `query` request parameter `start` became required
  - api operation id `get_inventory_get_history` was added
  - added the media type `application/json` for the response with the status `200`
  - …5 more
- **2024-04-22** `08cd9cfa14dd` — 2 breaking, 2 info
  - for the `query` request parameter `end`, the type/format was changed from `string`/`` to `string`/`date`
  - for the `query` request parameter `start`, the type/format was changed from `string`/`` to `string`/`date`
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
- **2024-04-19** `46ceda528000` — 1 breaking, 10 info
  - removed the media type `application/json` for the response with the status `200`
  - api operation id `get_inventory_get_history` removed and replaced with ``
  - the `query` request parameter `end` became optional
  - the `query` request parameter `start` became optional
  - …7 more

[Change history](https://skmtc.dev/skulabs/apis/skulabs-api/changes/inventory/get_history/get.md)

---

[API](https://skmtc.dev/skulabs/apis/skulabs-api.md) · [All operations](https://skmtc.dev/skulabs/apis/skulabs-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/skulabs/skulabs-api/revisions/4b5ec0ed78a6/schema)
