Get Inventory Item
Retrieve a single inventory item by ID with full details including availability, associated bookings, and activity log.
Endpointโ
GET /v1/products/{id}/inventory/{inventoryId}
Authenticationโ
Requires an API key with the products:read scope.
Parametersโ
| Parameter | Type | Location | Description |
|---|---|---|---|
id | integer | path | The product ID |
inventoryId | integer | path | The inventory item ID |
activity_page | integer | query | Page number for activity log (default: 1) |
activity_per_page | integer | query | Items per page for activity log (default: 20) |
Responseโ
Group-Level Tracking (200 OK)โ
For products using group-level inventory tracking:
{
"data": {
"id": 1,
"variation": {
"id": 1,
"sku": "BIKE-L-RED",
"values": "Large, Red"
},
"identifier": null,
"unique_identifier": null,
"increment": 1,
"total_quantity": 10,
"location": "Warehouse A",
"supplier_location": {
"id": 1,
"name": "Main Store"
},
"available_from": null,
"available_until": null,
"status": "current",
"availability": {
"total_quantity": 10,
"in_stock": 6,
"reserved": 2,
"picked_up": 1,
"in_workshop": 1
},
"bookings": [
{
"booking_id": 123,
"quantity": 2,
"reserved_from": "2026-02-01T09:00:00+00:00",
"reserved_to": "2026-02-03T17:00:00+00:00",
"picked_up": null,
"returned": null,
"customer": {
"id": 45,
"name": "John Doe"
}
}
],
"activity": {
"items": [
{
"type": "reserved",
"date": "2026-02-01T09:00:00+00:00",
"label": "Reserved",
"description": "01 Feb 2026 9:00 AM โ 03 Feb 2026 5:00 PM (Qty: 2)",
"booking_id": 123
},
{
"type": "workshop_added",
"date": "2026-01-28T14:00:00+00:00",
"label": "Sent to workshop",
"description": "Qty: 1 sent to workshop",
"workshop_log_id": 5
}
],
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 15,
"last_page": 1
}
},
"created_at": "2026-01-15T10:00:00+00:00",
"updated_at": "2026-01-15T10:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T10:00:00+00:00"
}
}
Item-Level Tracking (200 OK)โ
For products using item-level inventory tracking:
{
"data": {
"id": 5,
"variation": {
"id": 1,
"sku": "BIKE-L-RED",
"values": "Large, Red"
},
"identifier": "Bike #1",
"unique_identifier": "SN-001",
"increment": 1,
"total_quantity": 1,
"location": "Main Store",
"supplier_location": {
"id": 1,
"name": "Main Store"
},
"available_from": null,
"available_until": null,
"status": "reserved",
"availability": {
"status": "reserved"
},
"bookings": [
{
"booking_id": 456,
"quantity": 1,
"reserved_from": "2026-02-01T09:00:00+00:00",
"reserved_to": "2026-02-03T17:00:00+00:00",
"picked_up": null,
"returned": null,
"customer": {
"id": 78,
"name": "Jane Smith"
}
}
],
"activity": {
"items": [
{
"type": "reserved",
"date": "2026-02-01T09:00:00+00:00",
"label": "Reserved",
"description": "01 Feb 2026 9:00 AM โ 03 Feb 2026 5:00 PM",
"booking_id": 456
},
{
"type": "returned",
"date": "2026-01-25T16:30:00+00:00",
"label": "Returned",
"description": "Item returned by customer",
"booking_id": 400
}
],
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 8,
"last_page": 1
}
},
"created_at": "2026-01-15T10:00:00+00:00",
"updated_at": "2026-01-15T10:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T10:00:00+00:00"
}
}
Item In Workshopโ
{
"data": {
"id": 5,
"status": "in_workshop",
"availability": {
"status": "in_workshop",
"workshop_log_id": 12
}
}
}
Response Fieldsโ
Core Fieldsโ
| Field | Type | Description |
|---|---|---|
id | integer | Inventory item ID |
variation | object|null | Associated variation details |
identifier | string|null | Display name (item-level tracking only) |
unique_identifier | string|null | Unique identifier (e.g., serial number) |
increment | integer | Auto-generated sequence number |
total_quantity | integer | Quantity of this item |
location | string|null | Free-text storage location |
supplier_location | object|null | Supplier location (id, name) if assigned |
available_from | string|null | Date when item becomes available (ISO 8601) |
available_until | string|null | Date when item is no longer available (ISO 8601) |
status | string | See status values below |
created_at | string | Creation timestamp (ISO 8601) |
updated_at | string | Last update timestamp (ISO 8601) |
Status Valuesโ
Group-level tracking:
current- Available nowexpected- Not yet available (futureavailable_from)expired- No longer available (pastavailable_until)
Item-level tracking:
in_stock- Available for bookingreserved- Currently reserved by a bookingin_workshop- In maintenance/repair
Availability Object (Group-Level)โ
| Field | Type | Description |
|---|---|---|
total_quantity | integer | Total quantity across all current inventory records |
in_stock | integer | Available for new bookings |
reserved | integer | Reserved by confirmed bookings (not yet picked up) |
picked_up | integer | Currently with customers |
in_workshop | integer | In maintenance/repair |
Availability Object (Item-Level)โ
| Field | Type | Description |
|---|---|---|
status | string | in_stock, reserved, or in_workshop |
workshop_log_id | integer | Workshop log ID if in workshop |
Bookings Arrayโ
| Field | Type | Description |
|---|---|---|
booking_id | integer | The booking ID |
quantity | integer | Quantity reserved |
reserved_from | string | Reservation start (ISO 8601) |
reserved_to | string | Reservation end (ISO 8601) |
picked_up | string|null | Pickup timestamp (ISO 8601) |
returned | string|null | Return timestamp (ISO 8601) |
customer | object|null | Customer info (id, name) |
Activity Logโ
| Field | Type | Description |
|---|---|---|
items | array | Array of activity events |
pagination | object | Pagination info |
Activity Event Typesโ
| Type | Description |
|---|---|
reserved | Item reserved by a booking |
picked_up | Item picked up by customer |
returned | Item returned by customer |
workshop_added | Sent to workshop |
workshop_scheduled | Scheduled for workshop |
workshop_removed | Returned from workshop |
warning | Booking warning (e.g., inventory shortage) |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/products/1/inventory/5" \
-H "Authorization: Bearer YOUR_API_KEY"
With Activity Paginationโ
curl -X GET "https://app.equipdash.com/api/v1/products/1/inventory/5?activity_page=2&activity_per_page=10" \
-H "Authorization: Bearer YOUR_API_KEY"
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 403 | insufficient_scope | API key lacks products:read scope |
| 403 | forbidden | Product belongs to different supplier |
| 404 | resource_not_found | Product or inventory item not found |