List stock movements
Was this page helpful?
List stock movements
Follow every change to your stock, oldest first.
Overview
Returns every stock movement: each time units were received, sold, moved or corrected. Movements are never changed, so this list is a full history you can follow.
Request
GET/movements
Needs the permission stock:read
cURL
curl "https://api.o2m.in/api/v1/movements?sku=MUG-BLUE&type=DSP&since=2026-10-01T00:00:00Z" \
-H "X-Access-Key: $O2M_ACCESS_KEY" \
-H "X-Secret-Key: $O2M_SECRET_KEY"Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
sku | string | No | One exact SKU. |
type | string | No | One movement type, such as DSP. See Status values. |
since | date and time | No | Only movements at or after this time, for example 2026-10-02T10:00:00Z. |
limit | number | No | Rows per page, from 1 to 500. The default is 100. |
cursor | string | No | The next value of the page before. See Pagination. |
Response
200 with movements and next.
Response
{
"movements": [
{
"id": "812",
"type": "DSP",
"sku": "MUG-BLUE",
"qty": 2,
"from": {
"kind": "warehouse",
"warehouse": "BLR",
"state": "committed"
},
"to": {
"kind": "customer"
},
"reason": null,
"ref_type": "order_item",
"ref_id": "9001",
"source": "ui",
"note": null,
"at": "2026-10-02T15:00:00.000Z"
}
],
"next": "812"
}| Field | Type | Description |
|---|---|---|
id | string | The movement's ID. |
type | string | What happened. |
sku | string | The item. |
qty | number | Units moved. |
from, to | object | Where the units left and arrived. kind is always given. For a warehouse, warehouse is its code and state its stock state. |
reason | string or null | The adjustment reason, when there is one. |
ref_type, ref_id | string or null | The record behind the movement, for tracing only. |
source | string | Where it was made: ui, mobile, api, channel or system. |
note | string or null | A note. |
at | string | When it happened. |
Errors
| Status | Code | Message | What to do |
|---|---|---|---|
| 422 | — | since must be a date and time, for example 2026-10-02T10:00:00Z | Correct the value. |
Every endpoint can also return the common errors: a missing or invalid key, a missing permission, the rate limit, or a temporary failure.