Critical Missing Feature: No Access to Historical Inventory Adjustments via API

Hi everyone,

I wanted to raise an important issue that severely limits any serious inventory or ERP integration with Shopify.
There is currently no way to retrieve historical inventory adjustments (stock movements over time) via the Shopify Admin API, whether through GraphQL or REST.

The situation

After opening a support ticket with Shopify, I received official confirmation that:

  • There is no public endpoint that exposes past inventory adjustments or movements.

  • The Shopify Admin API is focused only on the current state of inventory.

  • The only suggested workaround is to listen to webhooks (inventory_levels/update, orders/create, fulfillments/create, etc.) and maintain an external ledger.

Why this is a serious problem

This approach might look fine on paper, but in real-world production systems it’s not reliable enough:

  • Webhooks are not guaranteed to be 100% delivered. They fail due to downtime, delivery retries, or platform-side errors.

  • There’s no way to re-fetch missing adjustments. Once a webhook is lost, that inventory movement is gone forever.

  • This makes it impossible to perform accurate daily reconciliation, audits, or financial validation.

  • Even the most robust ERP or warehouse systems need a way to cross-check actual vs. reported stock movements. Something Shopify currently doesn’t allow.

For any business managing physical products at scale, this is a fundamental gap. Without a verifiable inventory adjustment history, you can’t ensure consistency or accountability in stock management.

What’s needed

Shopify urgently needs to provide an official, read-only Inventory Adjustment History endpoint, accessible via GraphQL or REST.
Even a limited version (e.g. last 90 days, paginated) would allow partners and merchants to reconcile and audit their stock data properly.

Why it matters for all of us

As partners and developers, we’re the ones building ERP integrations, analytics dashboards, and audit tools that merchants rely on to run their businesses. Without this capability, every integration has to reinvent an unreliable, fragile workaround that shouldn’t exist.

I strongly encourage other developers and partners who have faced similar issues to upvote, comment, and share your experiences — this is a critical topic that Shopify needs to take seriously.

#inventory
#GraphQL
#feature-request
#ShopifyAPI

Hi @Ricardo_Silva ,

Have you seen shopifyqlQuery - GraphQL Admin ? This gives you the control you need via a query like

FROM inventory_adjustment_history
  SHOW inventory_adjustment_change
  GROUP BY day, product_variant_sku, inventory_app_name, staff_member_name,
    inventory_change_reason, inventory_state WITH TOTALS
  TIMESERIES day
  HAVING inventory_adjustment_change != 0
  SINCE startOfDay(-30d) UNTIL yesterday
  ORDER BY day ASC
  LIMIT 1000000

I think?

I’d suggest starting here in admin to get what you want, then copy that query that is built for you via the visual Unified Analytics editor.

My only advice is don’t trust this for real-time, but if your use cases are:

building ERP integrations, analytics dashboards, and audit tools

this should solve that?

1 Like

Also give this a read, if you are building external integrations, I think referenceDocumentUri + analytics could be quite beneficial for you New guidelines for referenceDocumentUri in inventory adjustments - Shopify developer changelog

Thank you! Especially for the shopifyqlQuery suggestion.

I can confirm this query endpoint is only available in the latest Admin GraphQL version (2025-10), and it really looks like what we need for historical inventory adjustments.

Shopify Plus support should have be able to know this.