Add Inventory Items
Add one or more inventory items to an item-tracked store product. Each item is created as an individual record with total_quantity: 1.
Provide either identifier + quantity for a numbered run, or an identifiers array of exact codes:
- Numbered run: the number at the end of
identifieris continued, preserving its zero-padding --identifier: "A-0001",quantity: 3createsA-0001,A-0002,A-0003. Aquantityof 1 saves the code exactly (no suffix). A code with no trailing number falls back to{identifier}-1,{identifier}-2, ... A blankidentifiercreates unlabeled items. - Exact list (
identifiers): each string is saved verbatim as its own item -- use this for serial numbers.
The -N suffix only ever appears to avoid a clash. Numbers already in use are skipped; an exact code that already exists returns a 422 and nothing is created.
Endpointโ
POST /v1/store-products/{id}/inventory-items
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 | integer | Conditional | Number of items to add (1--100). Required unless identifiers is provided |
identifier | string | No | Starting code for a numbered run (max 255 characters). A blank value creates unlabeled items |
identifiers | string[] | Conditional | An array of exact codes, one record each (saved verbatim). Use instead of identifier + quantity |
variation_id | integer | No | Product variation ID to associate with |
location_id | integer | No | Supplier location ID to assign items to (see Locations) |
Responseโ
Success (201 Created)โ
{
"data": {
"product_id": 5,
"items_added": 3,
"new_stock_quantity": 10
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-13T12:00:00+00:00"
}
}
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 | not_item_tracked | Product does not use item-level inventory tracking |
| 422 | validation_error | Invalid request body |
| 422 | inventory_error | Business logic error |
Example Requestโ
curl -X POST "https://app.equipdash.com/api/v1/store-products/5/inventory-items" \
-H "Authorization: Bearer eqd_live_abc123xyz789..." \
-H "Content-Type: application/json" \
-d '{
"quantity": 3,
"identifier": "WIDGET",
"variation_id": 3,
"location_id": 1
}'