API Reference
Shifts
Read shifts and their assignments.
API Reference
Read shifts and their assignments.
/v1/shiftsReturns a paginated list of shifts in your organization, newest first. Filter by status, customer, site, or date range.
shifts:readModule: shift_placementQuery parameters
limit | integer Page size, 1-100 (default 25). |
cursor | string Opaque cursor from a previous response’s next_cursor. |
status | enum
|
customer_id | string (uuid) |
site_id | string (uuid) Filter by site (customer location). |
date_from | string (date) Only shifts on or after this date (YYYY-MM-DD). |
date_to | string (date) Only shifts on or before this date (YYYY-MM-DD). |
Request
Response · 200
/v1/shifts/{id}Returns a single shift by id with its assignments embedded. Responds 404 if no such shift exists in your organization.
shifts:readModule: shift_placementPath parameters
idrequired | string (uuid) Shift id. |
Request
curl -X GET "https://keepworkersfirst.org/api/v1/shifts/d4e5f6a7-4444-4d5e-9f6a-b7c8d9e0f1a2" \
-H "Authorization: Bearer $API_KEY"Response · 200
{
"id": "d4e5f6a7-4444-4d5e-9f6a-b7c8d9e0f1a2",
"status": "open",
"shift_date": "2026-07-14",
"start_time": "09:00:00",
"end_time": "17:00:00",
"description": "Day coverage — North Campus front desk",
"customer_id": "b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0",
"site_id": "c3d4e5f6-3333-4c4d-8e5f-a6b7c8d9e0f1",
"positions_needed": 2,
"positions_filled": 1,
"pay_rate": 24,
"pay_type": "hourly",
"offer_type": "open_call",
"confirmation_required": true,
"created_at": "2026-07-01T12:00:00+00:00",
"updated_at": "2026-07-03T08:15:00+00:00",
"assignments": [
{
"id": "e5f6a7b8-5555-4e6f-8a7b-c8d9e0f1a2b3",
"shift_id": "d4e5f6a7-4444-4d5e-9f6a-b7c8d9e0f1a2",
"member_id": "a1b2c3d4-1111-4a2b-8c3d-e4f5a6b7c8d9",
"status": "accepted",
"clock_in": null,
"clock_out": null,
"responded_at": "2026-07-02T15:30:00+00:00",
"confirmed_at": "2026-07-02T15:30:00+00:00",
"is_open_call": true,
"created_at": "2026-07-01T12:05:00+00:00",
"updated_at": "2026-07-02T15:30:00+00:00"
}
]
}/v1/shifts/{id}/assignmentsReturns the assignments for a shift. Responds 404 if no such shift exists in your organization.
shifts:readModule: shift_placementPath parameters
idrequired | string (uuid) Shift id. |
Request
curl -X GET "https://keepworkersfirst.org/api/v1/shifts/d4e5f6a7-4444-4d5e-9f6a-b7c8d9e0f1a2/assignments" \
-H "Authorization: Bearer $API_KEY"Response · 200
{
"data": [
{
"id": "e5f6a7b8-5555-4e6f-8a7b-c8d9e0f1a2b3",
"shift_id": "d4e5f6a7-4444-4d5e-9f6a-b7c8d9e0f1a2",
"member_id": "a1b2c3d4-1111-4a2b-8c3d-e4f5a6b7c8d9",
"status": "accepted",
"clock_in": null,
"clock_out": null,
"responded_at": "2026-07-02T15:30:00+00:00",
"confirmed_at": "2026-07-02T15:30:00+00:00",
"is_open_call": true,
"created_at": "2026-07-01T12:05:00+00:00",
"updated_at": "2026-07-02T15:30:00+00:00"
}
],
"has_more": false,
"next_cursor": null
}{
"data": [
{
"id": "d4e5f6a7-4444-4d5e-9f6a-b7c8d9e0f1a2",
"status": "open",
"shift_date": "2026-07-14",
"start_time": "09:00:00",
"end_time": "17:00:00",
"description": "Day coverage — North Campus front desk",
"customer_id": "b2c3d4e5-2222-4b3c-9d4e-f5a6b7c8d9e0",
"site_id": "c3d4e5f6-3333-4c4d-8e5f-a6b7c8d9e0f1",
"positions_needed": 2,
"positions_filled": 1,
"pay_rate": 24,
"pay_type": "hourly",
"offer_type": "open_call",
"confirmation_required": true,
"created_at": "2026-07-01T12:00:00+00:00",
"updated_at": "2026-07-03T08:15:00+00:00"
}
],
"has_more": false,
"next_cursor": null
}curl -X GET "https://keepworkersfirst.org/api/v1/shifts" \
-H "Authorization: Bearer $API_KEY"