Scheduling
Public API

List Open Shifts

Changed on

Lists the open shifts the authenticated employee could claim: published, claimable shifts on the employee's schedules that have not started, have a spot left, are not already assigned to them, and start on a day the employee has an active employment status. A shift the employee was previously declined for stays listed. Rows carry no evaluation; evaluate them with POST /api/v1/scheduling/shift-claims/evaluate. There is no employee parameter, and a caller without an employee record gets an empty list, as does every caller while Open Shifts is off. The filter must bound start or end from below and above, within 31 days.

OAuth Scopes: scheduling:shifts

get/api/v1/scheduling/open-shifts

Request

Query parameters

filterstring required

OData v4 filter expression. Required: a date window on start or end, bounded below (ge, gt, eq) and above (le, lt, eq), at most 31 days wide. Allowed fields: id, scheduleId, name, start, end, claimsRequireApproval.

sortstring

Sort expression on any filterable field (e.g. start desc). Defaults to start ascending.

pageinteger

The starting page for pagination.

pageSizeinteger

The number of items to be returned. Maximum 100.

Response

Open shifts retrieved successfully

Example response

{
  "data": [
    {
      "id": "019aa09f-0712-74cb-9186-8ad0eb6038dc",
      "scheduleId": "0199de9b-6bcb-77e7-941d-3caf74b9a372",
      "name": "Morning Shift",
      "start": "2025-01-01T06:00:00Z",
      "end": "2025-01-01T14:00:00Z",
      "timezone": "America/Denver",
      "claimsRequireApproval": true
    }
  ]
}

Changes