Skip to main content

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โ€‹

ParameterTypeLocationDescription
idintegerpathThe product ID
inventoryIdintegerpathThe inventory item ID
activity_pageintegerqueryPage number for activity log (default: 1)
activity_per_pageintegerqueryItems 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โ€‹

FieldTypeDescription
idintegerInventory item ID
variationobject|nullAssociated variation details
identifierstring|nullDisplay name (item-level tracking only)
unique_identifierstring|nullUnique identifier (e.g., serial number)
incrementintegerAuto-generated sequence number
total_quantityintegerQuantity of this item
locationstring|nullFree-text storage location
supplier_locationobject|nullSupplier location (id, name) if assigned
available_fromstring|nullDate when item becomes available (ISO 8601)
available_untilstring|nullDate when item is no longer available (ISO 8601)
statusstringSee status values below
created_atstringCreation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)

Status Valuesโ€‹

Group-level tracking:

  • current - Available now
  • expected - Not yet available (future available_from)
  • expired - No longer available (past available_until)

Item-level tracking:

  • in_stock - Available for booking
  • reserved - Currently reserved by a booking
  • in_workshop - In maintenance/repair

Availability Object (Group-Level)โ€‹

FieldTypeDescription
total_quantityintegerTotal quantity across all current inventory records
in_stockintegerAvailable for new bookings
reservedintegerReserved by confirmed bookings (not yet picked up)
picked_upintegerCurrently with customers
in_workshopintegerIn maintenance/repair

Availability Object (Item-Level)โ€‹

FieldTypeDescription
statusstringin_stock, reserved, or in_workshop
workshop_log_idintegerWorkshop log ID if in workshop

Bookings Arrayโ€‹

FieldTypeDescription
booking_idintegerThe booking ID
quantityintegerQuantity reserved
reserved_fromstringReservation start (ISO 8601)
reserved_tostringReservation end (ISO 8601)
picked_upstring|nullPickup timestamp (ISO 8601)
returnedstring|nullReturn timestamp (ISO 8601)
customerobject|nullCustomer info (id, name)

Activity Logโ€‹

FieldTypeDescription
itemsarrayArray of activity events
paginationobjectPagination info

Activity Event Typesโ€‹

TypeDescription
reservedItem reserved by a booking
picked_upItem picked up by customer
returnedItem returned by customer
workshop_addedSent to workshop
workshop_scheduledScheduled for workshop
workshop_removedReturned from workshop
warningBooking 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โ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
403insufficient_scopeAPI key lacks products:read scope
403forbiddenProduct belongs to different supplier
404resource_not_foundProduct or inventory item not found