API - Shifts - Retrieve List

Retrieve the worker shifts scheduled in a date range, with who is assigned to each one. Use it to show a schedule in another system or to sync shifts into a calendar.

MethodURLPackage
GEThttps://rental.software/api6/shifts_listWP/API and Workers

Before You Start

Which shifts are returned depends on the permissions of the API key. Open the key under Settings > API Keys and check these two permissions:

PermissionWhat it allows
Worker Site Access Others ShiftsNeeded to see the shifts of your workers. Set it to Read Only or Full Access
Worker Site Show Past ShiftsNeeded to see shifts that ended more than 24 hours ago. Set it to Full Access

If the API key is limited to certain locations, only shifts in those locations are returned.


Request

GET /api6/shifts_list?apiKey=YOUR_API_KEY&date=7/20/2026 - 7/26/2026
ParameterDefaultDescription
apiKeyRequired. Your API key
dateToday through the next 14 daysThe date range to return, written as two dates in the date format of your account with a dash between them: 7/20/2026 - 7/26/2026. Any shift that overlaps the range is returned
_bodyfalseIf true, returns more details for each shift, including the position name, the lead it belongs to and the assigned worker
offset0Record number to start at. The first record is 0
limit25Count of records to return

Example using curl. The spaces in the date range are written as %20 in a URL:

curl "https://rental.software/api6/shifts_list?apiKey=YOUR_API_KEY&date=7/20/2026%20-%207/26/2026&limit=100"

Response

{
  "offset": 0,
  "limit": "100",
  "first": "https://rental.software/api6/shifts_list?offset=0&limit=100",
  "next": "https://rental.software/api6/shifts_list?offset=100&limit=100",
  "previous": "https://rental.software/api6/shifts_list?offset=0&limit=100",
  "items": [
    {
      "id": "227051",
      "workerid": "13687",
      "wuname": "jlee",
      "firstname": "Jamie",
      "lastname": "Lee",
      "cphone": "(330) 555-0151",
      "rank": "1",
      "unq_shiftid": "s227051",
      "starttime": "2026-07-25T14:30:00-04:00",
      "starttime_ts": "1785004200",
      "starttime_utc": "2026-07-25T18:30:00Z",
      "endtime": "2026-07-25T18:30:00-04:00",
      "endtime_ts": "1785018600",
      "endtime_utc": "2026-07-25T22:30:00Z"
    }
  ],
  "request_time": 1760000000
}

Returned Fields

FieldDescription
idShift ID
workerid, wuname, firstname, lastname, cphone, rankThe worker assigned to the shift. Empty when nobody is assigned yet
unq_shiftidA unique reference for the shift. It is 0 when the shift is not assigned
starttime, endtimeStart and end of the shift in your account's time zone. Each also comes as a Unix timestamp (_ts) and in UTC (_utc)

The response can include a few extra keys not listed here. Your code should ignore keys it does not use.


Good to Know

  • Shifts are sorted by start time.
  • Shifts for vehicles are not included.
  • A page can contain fewer shifts than your limit even when more pages follow, because shifts the key is not allowed to see are removed after the page is read. Keep paging until you get a 404.

Errors

StatusMessageWhat to do
404No shifts foundThere are no shifts in that date range, or you paged past the end
405Only accepts GET requestsUse GET

See API - Errors and Rate Limits for errors that apply to every call.


Related Links

Is this article helpful?
0 0 0