Skip to content

Update Shift

PATCH {{base_url}}/api/v3/shifts/{{SHIFT_ID}}

Required scope: shifts:write

Partially updates an operator-owned shift. Requires admin credentials. Send user_id: null to unassign the runner.

The merged final shift is validated: times must remain ordered and within 12 hours, resources must belong to the caller’s operator, and rider overlaps return 409. Toast-clocked shifts reject changes to times, rider, or location with 409.

{
"start": "2026-10-20T14:00:00.000Z",
"stop": "2026-10-20T18:00:00.000Z",
"user_id": "{{RUNNER_ID}}",
"bonus_pay": 15,
"reason": "Schedule adjustment"
}
Terminal window
curl --request PATCH '${base_url}/api/v3/shifts/550e8400-e29b-41d4-a716-446655440000' \
--header 'Content-Type: application/json' \
--data '{
"start": "2026-10-20T14:00:00.000Z",
"stop": "2026-10-20T18:00:00.000Z",
"user_id": "{{RUNNER_ID}}",
"bonus_pay": 15,
"reason": "Schedule adjustment"
}'
{
"type": "success",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"start": "2026-10-20T14:00:00.000Z",
"stop": "2026-10-20T18:00:00.000Z",
"user_id": "1697c3af-450f-42f4-8609-669a4350c22f",
"bonus_pay": 15,
"checked_in": null
}
}