Skip to main content

List Shifts

Retrieve a paginated list of staff shifts.

Endpointโ€‹

GET /v1/staff/shifts

Authenticationโ€‹

Requires an API key with the staff:read scope.

Query Parametersโ€‹

ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger15Items per page (max 100)
datestring-Filter by shift date (YYYY-MM-DD)
staff_idinteger-Filter by staff member ID
location_idinteger-Filter by location ID
statusstring-Filter by status: Open, Unpublished, Published, Updated, Active, Inactive
sortstringshift_dateSort field: id, shift_date, start_time, end_time, status, created_at
directionstringdescSort direction: asc or desc

Responseโ€‹

Success (200 OK)โ€‹

{
"data": [
{
"id": 1,
"staff": {
"id": 5,
"first_name": "Jane",
"last_name": "Smith"
},
"staff_id": 5,
"location": {
"id": 2,
"name": "Beach Location"
},
"location_id": 2,
"shift_date": "2026-03-15",
"start_time": "09:00:00",
"end_time": "17:00:00",
"duration_calculation": "8 hours",
"break_setting": true,
"break_type": "lunch_break",
"break_time": "30",
"break_payment": "paid",
"shift_notes": "Morning briefing at 8:45",
"status": "Published",
"publish_type": null,
"created_at": "2026-03-10T08:00:00+00:00",
"updated_at": "2026-03-10T08:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 24,
"total_pages": 2,
"request_id": "req_abc123",
"timestamp": "2026-03-10T12:00:00+00:00"
}
}

Response Fieldsโ€‹

Shiftโ€‹

FieldTypeDescription
idintegerUnique shift identifier
staffobject|nullAssigned staff member (id, first_name, last_name)
staff_idinteger|nullStaff member ID
locationobject|nullShift location (id, name)
location_idinteger|nullLocation ID
shift_datestringShift date (YYYY-MM-DD)
start_timestringStart time (HH:MM:SS)
end_timestringEnd time (HH:MM:SS)
duration_calculationstring|nullHuman-readable duration (e.g., "8 hours 30 minutes")
break_settingbooleanWhether break is enabled
break_typestring|nullBreak type (e.g., lunch_break, tea_break)
break_timestring|nullBreak duration in minutes
break_paymentstring|nullBreak payment type (paid, unpaid)
shift_notesstring|nullNotes for the shift
statusstringShift status
publish_typeboolean|nullPublish type flag
created_atstringISO 8601 datetime
updated_atstringISO 8601 datetime

Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyInvalid API key
403insufficient_scopeAPI key lacks staff:read scope

Example Requestโ€‹

curl -X GET "https://app.equipdash.com/api/v1/staff/shifts?date=2026-03-15&staff_id=5" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."