Skip to content
ShiftlyDevelopers
Documentation menu

Who's on now

Staff clocked in right now: one row per open timesheet started in the last 24 hours, earliest clock-in first. It says where a person is, so read it when you need it rather than polling it.

Needs the timesheets:read permission, depending on the operation. The business sees it as "Timesheets".

Fields

ClockedIn fields
FieldTypeAccessMeaning
employee_idstringRead-onlyWho is clocked in.
timesheet_idstringRead-onlyTheir open timesheet. Read it at /timesheets/{id}.
location_idstringRead-onlyWhere they clocked in.
position_idstringRead-onlyThe position they are working.
shift_idstring, may be nullRead-onlyThe rostered shift. Empty when they clocked in without one.
clocked_in_attimestampRead-onlyWhen they clocked in.
on_breakbooleanRead-onlyTrue while they are on a break.
break_started_attimestamp, may be nullRead-onlyWhen the current break started.
scheduled_end_timetimestamp, may be nullRead-onlyWhen their rostered shift ends. Empty when they clocked in without one.

Operations

List the staff clocked in now

GET/v1/whos-on

Permission: timesheets:read

Query parameters
ParameterTypeMeaning
location_idstringOptionalOnly this location.
employee_idstringOptionalOnly this person.
200 response
{
  "data": [
    {
      "employee_id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "timesheet_id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "location_id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "position_id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "shift_id": "66f1c2a4b3d9e8f7a6b5c4d3",
      "clocked_in_at": "2026-10-06T09:00:00+11:00",
      "on_break": true,
      "break_started_at": "2026-10-06T09:00:00+11:00",
      "scheduled_end_time": "2026-10-06T09:00:00+11:00"
    }
  ],
  "has_more": true,
  "next_cursor": "text"
}
Refusals
StatusWhen
400The error's code is invalid_request or range_too_long. The Errors page describes each code.
401The error's code is invalid_token or token_expired. The Errors page describes each code.
403The error's code is origin_not_allowed, permission_denied, not_available, connection_disconnected, connection_suspended or app_suspended. The Errors page describes each code.
404There is nothing at this address, or no such record in this business.
429Too many requests. Retry-After says when to try again.
500Something went wrong at Shiftly. Quote the request id.
503This environment is not set up for partner apps yet.