---
title: "List part transactions"
method: GET
path: "/maintenance/parts/transactions"
tags: ["Maintenance"]
---

# List part transactions

`GET /maintenance/parts/transactions`

## Request

- Base URL: `https://api.samsara.com`
- URL: `https://api.samsara.com/maintenance/parts/transactions`
- Auth: HTTP bearer

Returns a paginated, time-windowed feed of inventory transactions (an append-only parts audit log) for the organization, ordered by the time each transaction occurred.

 <b>Rate limit:</b> 5 requests/sec (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).

To use this endpoint, select **Read Parts** under the Work Orders category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
 

 **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.

## Query parameters

- `happenedAtTimeStart` string, required
- `happenedAtTimeEnd` string
- `partSamsaraIds` string
- `placeIds` string
- `transactionTypeIn` string
- `after` string
- `limit` integer

## Response `200`

OK response.

- EntityInventoryTransactionsServiceListPartTransactionsResponseBody
  - `data` EntityListPartTransactionsTypeResponseBody[], required: An array of InventoryTransactions
    - `batch` string: Batch or lot identifier, when the part is batch-tracked.
    - `createdAtTime` string: Server ingestion timestamp. Not used for filtering or ordering.
    - `createdByUserId` string: ID of the user who performed the transaction. Absent on work-order-backed and requisition-backed types.
    - `fromPlaceId` string: Transfer only — source maintenance site (place ID).
    - `happenedAtTime` string: User-supplied time the transaction occurred. The window filter and result ordering operate on this field.
    - `id` string: Stable unique identifier for the inventory transaction.
    - `notes` string: Free-text notes. Present on scrap and adjust transactions.
    - `part` EntityListPartTransactionsPartDefinitionRefTypeResponseBody: Reference to a PartDefinition
      - `id` string, required: The ID of the referenced PartDefinition.
    - `placeId` string: Maintenance site (linked Address/place ID) where this transaction occurred. For transfers, indicates which side of the transfer this record represents.
    - `purchaseOrder` string: Purchase order reference. Present on receive transactions.
    - `quantity` number, double: Signed net effect on inventory in the part's unit of measure. Positive adds stock; negative removes it.
    - `resultingQuantity` number, double: Absolute on-hand quantity at the place after this transaction was applied.
    - `toPlaceId` string: Transfer only — destination maintenance site (place ID).
    - `transactionType` 'Unknown' | 'Receive' | 'Transfer' | 'Scrap' | 'Adjust' | 'Reserve' | 'Issue' | 'Release' | 'Return': The kind of inventory movement this record represents. Valid values: `Unknown`, `Receive`, `Transfer`, `Scrap`, `Adjust`, `Reserve`, `Issue`, `Release`, `Return`
    - `unitCost` number, double: Per-unit cost recorded with the transaction. Present on receive transactions.
    - `vendorId` string: Vendor the part was received from. Present on receive transactions. Resolvable via GET /fleet/maintenance/vendors.
    - `workOrder` EntityListPartTransactionsWorkOrderRefTypeResponseBody: Reference to a WorkOrder
      - `id` string, required: The ID of the referenced WorkOrder.
  - `pagination` GoaPaginationResponseResponseBody, required: Pagination parameters.
    - `endCursor` string, required: Cursor identifier representing the last element in the response. This value should be used in conjunction with a subsequent request's 'after' query parameter. This may be an empty string if there are no more pages left to view.
    - `hasNextPage` boolean, required: True if there are more pages of results immediately available after this endCursor.

## Other responses

- `401`: Unauthorized response.
- `404`: Not Found response.
- `405`: Method Not Allowed response.
- `413`: Content Too Large response.
- `429`: Too Many Requests response.
- `500`: Internal Server Error response.
- `501`: Not Implemented response.
- `502`: Bad Gateway response.
- `503`: Service Unavailable response.
- `504`: Gateway Timeout response.
- `default`: Bad Request response.

---

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