movements

The stock ledger, newest first

Every plus and minus of stock, newest first, each naming the document that caused it: a receipt, a count, a fulfilment, a return, an adjustment, a transfer leg, the opening the ledger started from, or a correction the nightly sweep booked against a source that disagreed.

With no filter the page is the organisation's latest movements across every product and warehouse. Name a product and a warehouse, a document (document_type with document_id), a kind or a window to narrow it; every filter narrows the ledger itself, so filtered_max_size counts the matching rows.

Sums are the point. The rows for one product at one warehouse sum to that pair's on hand, which is what get_position serves as one figure. evidence rides a sync_correction alone, where it carries the source's snapshot, the ledger's sum and how many nights running they disagreed.

Nothing writes here, ever. A movement is written by the document that moved the stock; correcting one is a reversing movement against it, not an edit.

Scope: movements:read.

get/api/v1/inventory/movements

Request

  • Base URL: https://api.app.tightly.io
  • URL: https://api.app.tightly.io/api/v1/inventory/movements
  • Auth: HTTP bearer

Query parameters

variant_idstring
Example:fx-v-mar-top-m

The product.

location_idstring
Example:loc-lb

The warehouse.

document_typestring
Example:purchase_order_delivery

One of ledger_opening, purchase_order_delivery, transfer_order_delivery, stocktake, fulfilment_request, channel_fulfilment, return, approval_request, etl_run, manufacturing_build, quarantine_disposition, transfer_custody, outbound_custody.

document_idstring
Example:8841

The document's own id, as text. Sent with document_type.

kindstring
Example:receipt,return

Comma-separated movement kinds to filter to: opening, receipt, fulfilment, return, adjustment, transfer_out, transfer_in, stocktake, sync_correction.

sincestring date-time

Only movements that occurred at or after this instant.

untilstring date-time

Only movements that occurred at or before this instant.

offsetinteger

How many movements to skip, for paging through a long ledger.

limitinteger

How many movements to return, newest first.

Headers

Tightly-Versionstring
Example:2026-11

The date train to answer on. One train exists today, 2026-11, the one this reference describes and the one every key is minted on, so the call answers on it with or without this header. Send it anyway, so a client built now names its train from the start.

Response

A page of the ledger, newest first.

messageobject

severity, service and desc.

Changes

No recorded changes to this operation across all 1 revision of this API.