Update Workshop Entry
Update an existing workshop entry. Can be used to change reason, scheduling, or start a scheduled entry.
Endpointโ
PATCH /v1/workshop/{id}
Authenticationโ
Requires an API key with the products:write scope.
Parametersโ
| Parameter | Type | Location | Description |
|---|---|---|---|
id | integer | path | The workshop entry ID |
Request Bodyโ
All fields are optional. Only include fields you want to update. Omitted fields keep their saved values. Completed jobs cannot have their details edited; a due date must follow a scheduled start.
| Field | Type | Description |
|---|---|---|
reason | string | maintenance, repair, cleaning, other, returned_damaged, or null |
scheduled_start_at | string | When to start (ISO 8601) |
scheduled_end_at | string or null | Due date and time in UTC (ISO 8601), or a date alone (YYYY-MM-DD) meaning the end of that day in the shop's timezone; null clears it |
auto_complete | boolean | Auto-complete when scheduled_end_at is reached |
status | string | Change status: scheduled, in_workshop, completed |
Status Transitionsโ
| From | To | Effect |
|---|---|---|
scheduled | in_workshop | Starts the workshop entry immediately |
scheduled | completed | Cancels the scheduled entry |
in_workshop | completed | Removes item from workshop |
Note: Cannot change from in_workshop back to scheduled.
Responseโ
Success (200 OK)โ
{
"data": {
"id": 1,
"product": {
"id": 5,
"name": "Mountain Bike"
},
"inventory": {
"id": 12,
"identifier": "Bike #5",
"unique_identifier": "SN-00012"
},
"quantity": 1,
"status": "in_workshop",
"reason": "repair",
"scheduled_start_at": null,
"scheduled_end_at": "2026-02-07T17:00:00+00:00",
"auto_complete": true,
"added_to_workshop_at": "2026-02-01T09:00:00+00:00",
"removed_from_workshop_at": null,
"is_overdue": false,
"notes_count": 2,
"created_at": "2026-02-01T09:00:00+00:00",
"updated_at": "2026-02-01T11:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T11:00:00+00:00"
}
}
Example Requestsโ
Extend Workshop Timeโ
curl -X PATCH "https://app.equipdash.com/api/v1/workshop/1" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduled_end_at": "2026-02-07T17:00:00Z",
"auto_complete": true
}'
Start Scheduled Entry Nowโ
curl -X PATCH "https://app.equipdash.com/api/v1/workshop/1" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "in_workshop"
}'
Change Reasonโ
curl -X PATCH "https://app.equipdash.com/api/v1/workshop/1" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "repair"
}'
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 403 | insufficient_scope | API key lacks products:write scope |
| 404 | resource_not_found | Workshop entry not found |
| 422 | validation_error | Invalid request data |
Common Validation Errorsโ
- Cannot update completed entry: Completed workshop entries cannot be modified
- Invalid status transition: Cannot change from
in_workshopback toscheduled