Adjust Store Product Inventory
Incrementally adjust the stock quantity of a store product. Use positive values to add stock and negative values to reduce stock.
This endpoint only works for products using group inventory tracking. For products using item tracking, manage individual inventory items instead.
Endpointโ
POST /v1/store-products/{id}/inventory
Authenticationโ
Requires an API key with the store:write scope.
Parametersโ
| Parameter | Type | Location | Description |
|---|---|---|---|
id | integer | path | The store product ID |
Request Bodyโ
| Field | Type | Required | Description |
|---|---|---|---|
quantity_change | integer | Yes | Amount to adjust by (positive to add, negative to remove) |
variation_id | integer | Conditional | The variation to adjust. Required when the product has variations โ see the note below. Must belong to this product. |
location_id | integer | No | The location to stock. Must belong to your supplier. Defaults to your default location when omitted. |
reason | string | No | Reason for the adjustment (max 255 characters, default: "API adjustment") |
variation_idA variation product's stock lives on its variations โ the parent product's stock_quantity is the sum of them. Omitting variation_id for such a product returns a 422 inventory_error rather than silently adjusting nothing.
Call Get Store Product to list the variations and their IDs. Each call adjusts one variation at one location, so stock several combinations with one call each.
Responseโ
Success (200 OK)โ
{
"data": {
"product_id": 1,
"variation_id": 12,
"new_variation_stock": 10,
"new_stock_quantity": 35
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-13T12:00:00+00:00"
}
}
new_variation_stock is the adjusted variation's new total across all locations, or null when the product has no variations. new_stock_quantity is the product total โ for a variation product that is the sum across every variation.
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks store:write scope |
| 404 | resource_not_found | Store product does not exist |
| 422 | inventory_not_tracked | Product does not have inventory tracking enabled |
| 422 | item_tracked | Product uses item-level tracking -- use the inventory items endpoints instead |
| 422 | inventory_error | variation_id omitted for a product that has variations, or the location does not belong to your supplier |
| 422 | validation_error | Invalid request body |
If an adjustment would result in negative stock, the quantity is clamped to 0 rather than returning an error. The response will show new_stock_quantity: 0.
To set stock to an exact value (rather than adjusting incrementally), use the Update Store Product endpoint with the stock_quantity field.
Example Requestsโ
Add stockโ
curl -X POST "https://app.equipdash.com/api/v1/store-products/1/inventory" \
-H "Authorization: Bearer eqd_live_abc123xyz789..." \
-H "Content-Type: application/json" \
-d '{
"quantity_change": 10,
"reason": "Restocked from supplier delivery"
}'
Remove stockโ
curl -X POST "https://app.equipdash.com/api/v1/store-products/1/inventory" \
-H "Authorization: Bearer eqd_live_abc123xyz789..." \
-H "Content-Type: application/json" \
-d '{
"quantity_change": -3,
"reason": "Damaged items written off"
}'
Add stock to a specific variation at a specific locationโ
curl -X POST "https://app.equipdash.com/api/v1/store-products/1/inventory" \
-H "Authorization: Bearer eqd_live_abc123xyz789..." \
-H "Content-Type: application/json" \
-d '{
"quantity_change": 10,
"variation_id": 12,
"location_id": 3,
"reason": "Restocked from supplier delivery"
}'