Inventory adjustments

Every inventory quantity change Shopify recorded — how many units moved and how many separate adjustments moved them, by product, quantity state, reason, app and staff member. Requires the read_reports scope; empty on stores that have not granted it.

15 fields — 13 dimensions, 2 metrics. Date clauses (SINCE, UNTIL, DURING) use day.

The live, authoritative list is always GET /v1/datasets — this page is regenerated from the same catalog, but the endpoint reflects exactly what is deployed.

Query it

FROM inventory_adjustment_history
  SHOW inventory_adjustment_change
  GROUP BY day
  SINCE -30d

See Querying with SoloQL for the language.

This dataset is queryable through SoloQL; it has no record-retrieval endpoint.

Fields

FieldTypeRoleDescription
inventory_adjustment_changenumbermetricNet units added or removed by the adjustments in the group. Signed: negative means stock left. Zero is meaningful — it means adjustments cancelled each other out, which is exactly what an inventory snapshot cannot show.
inventory_adjustment_countnumbermetricHow many separate adjustment events occurred in the group, regardless of how many units each moved.
daydatedimensionThe day the adjustments were recorded.
product_variant_skustringdimensionSKU of the adjusted variant.
product_variant_titlestringdimensionTitle of the adjusted variant.
product_variant_idstringdimensionShopify id of the adjusted variant.
inventory_item_idstringdimensionShopify inventory item id behind the adjusted variant.
inventory_statestringdimensionWhich quantity state moved — available, on hand, committed, damaged and so on. ⚠️ One adjustment records BOTH an available and an on-hand row, so totals taken without filtering this dimension count the same movement twice.
inventory_change_reasonstringdimensionWhy the quantity changed — correction, restock, damaged, purchase and so on.
inventory_app_namestringdimensionWhich app made the change, when an app made it.
staff_member_namestringdimensionWhich staff member made the change. Empty for changes made through an API rather than the admin — that is a real answer, not missing data.
reference_document_uristringdimensionWhat the change refers to, such as the order that consumed the stock.
reference_document_typestringdimensionWhat KIND of document the change refers to — a separate column from the URI.
inventory_location_namestringdimensionWhich location the stock moved at.
storestringdimensionThe shop the record belongs to. Filter with WHERE store IN ('Shop name') or GROUP BY store.