Product Inventory
Manage inventory items for a product. Inventory tracking enables you to track individual units of stock and their availability.
Inventory Tracking Modesโ
Products can have different inventory tracking modes:
| Mode | Description |
|---|---|
none | No inventory tracking |
group | Track total quantity as a group |
item | Track individual items with unique identifiers |
Endpointsโ
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/products/{id}/inventory | List inventory |
| GET | /v1/products/{id}/inventory/{inventoryId} | Get inventory item |
| POST | /v1/products/{id}/inventory | Add inventory |
| PATCH | /v1/products/{id}/inventory/{inventoryId} | Update inventory |
| DELETE | /v1/products/{id}/inventory/{inventoryId} | Delete inventory |
Authenticationโ
All inventory endpoints require an API key with products:read scope for GET requests, and products:write scope for POST/PATCH/DELETE requests.
Inventory Statusโ
Inventory items can have three statuses based on their availability dates:
| Status | Description |
|---|---|
current | Available now (no available_from or it's in the past, and no available_until or it's in the future) |
expected | Not yet available (available_from is in the future) |
expired | No longer available (available_until is in the past) |
Common Patternsโ
Group Inventory (Simple Stock Count)โ
For products where you just need to track total quantity:
curl -X POST ".../products/1/inventory" \
-d '{"total_quantity": 10}'
Item-Level Inventory (Individual Tracking)โ
For products where each unit is tracked separately:
curl -X POST ".../products/1/inventory" \
-d '{"identifier": "Bike #1", "unique_identifier": "SN-001", "total_quantity": 1}'
curl -X POST ".../products/1/inventory" \
-d '{"identifier": "Bike #2", "unique_identifier": "SN-002", "total_quantity": 1}'
Seasonal Inventoryโ
For equipment only available during certain periods:
curl -X POST ".../products/1/inventory" \
-d '{
"identifier": "Summer Kayak",
"total_quantity": 1,
"available_from": "2026-05-01T00:00:00Z",
"available_until": "2026-09-30T23:59:59Z"
}'
Notesโ
- Inventory tracking must be enabled on the product (
inventory_tracking!=none) - The
incrementfield is auto-generated and represents the sequence number - Deleted inventory items are soft-deleted (marked as deleted, not removed)
- When checking availability, only
currentstatus items are considered