Retrieve all active locations by querying the locations endpoint via REST GET /admin/api/2024-01/locations.json or GraphQL locations query to obtain each location's id
For a given product variant, fetch its inventory item ID from the variant's inventory_item_id field
Query current inventory levels for that inventory item across all locations using GET /admin/api/2024-01/inventory_levels.json?inventory_item_ids={id} to see per-location quantities
To adjust inventory at a specific location, POST to /admin/api/2024-01/inventory_levels/adjust.json with inventory_item_id, location_id, and available_adjustment (a delta, not absolute quantity)
To set an absolute quantity, POST to /admin/api/2024-01/inventory_levels/set.json with inventory_item_id, location_id, and available
Connect an inventory item to a new location first via POST /admin/api/2024-01/inventory_levels/connect.json before setting quantities there
Known gotchas
Using adjust vs set incorrectly causes oversell: adjust adds/subtracts from current, set overwrites; concurrent adjusts are safer in high-concurrency scenarios
An inventory item must be connected to a location before you can set or adjust quantities there; the connect call is a prerequisite
Variants with inventory_management set to null or 'shopify' behave differently; only variants tracked by Shopify respect these API calls
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp