Skip to main content

Inventory Condition History

Get the full condition report history for a specific inventory item across all bookings. Useful for tracking an item's condition over time, identifying chronically problematic items, and supporting insurance claims.

Endpointโ€‹

GET /v1/inventory/{id}/condition-history

Path Parametersโ€‹

ParameterTypeDescription
idintegerProduct inventory item ID

Example Requestโ€‹

curl "https://app.equipdash.com/api/v1/inventory/78/condition-history" \
-H "Authorization: Bearer YOUR_API_KEY"

Responseโ€‹

{
"data": [
{
"id": 42,
"booking_id": 130,
"inventory_log_id": 501,
"inventory_id": 78,
"product_id": 12,
"context": "return",
"condition": "damaged",
"condition_label": "Damaged",
"notes": "Deep scratch on hull",
"reported_by": {
"id": 5,
"name": "Mike Johnson"
},
"reported_at": "2026-03-18T16:30:00Z",
"photos": [
{
"id": 5,
"url": "https://app.equipdash.com/storage/conditionReports/scratch1.jpg",
"order": 0
}
],
"created_at": "2026-03-18T16:30:00Z"
},
{
"id": 40,
"booking_id": 130,
"inventory_log_id": 501,
"inventory_id": 78,
"product_id": 12,
"context": "pickup",
"condition": "good",
"condition_label": "Good",
"notes": "Minor surface wear, all functional",
"reported_by": {
"id": 3,
"name": "Sarah Marshall"
},
"reported_at": "2026-03-15T09:00:00Z",
"photos": [],
"created_at": "2026-03-15T09:00:00Z"
}
],
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-03-20T10:00:00Z"
}
}

Notesโ€‹

  • Reports are ordered by reported_at descending (most recent first)
  • Requires products:read API scope
  • Only returns reports for inventory items belonging to your supplier

On the phone app: every unit of a productโ€‹

GET /api/v1/mobile/inventory/products/{id}/condition-history

The phone app's Condition tab reads the history of every unit of a product in one request, with its phone sign-in token instead of an API key. It needs the Manage inventory permission. {id} is the product ID.

The response has one entry per unit, in unit ID order. Each reports list holds the same reports, fields and order as the per-unit endpoint above. A unit with no reports comes back with an empty list. Deleted units are left out.

{
"data": [
{
"inventory_id": 78,
"reports": [
{
"id": 42,
"booking_id": 130,
"inventory_id": 78,
"product_id": 12,
"context": "return",
"condition": "damaged",
"condition_label": "Damaged",
"reported_at": "2026-03-18T16:30:00Z",
"photos": []
}
]
},
{
"inventory_id": 79,
"reports": []
}
],
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-03-20T10:00:00Z"
}
}

The report objects are shortened here; each one has every field shown in the response above. A product from another account returns 404.