Skip to main content
GET
/
workers
Get Workers
curl --request GET \
  --url https://api.roostedhr.com/api/1_12/workers \
  --header 'X-API-KEY: <api-key>'
{
  "workers": [
    {
      "id": "<string>",
      "reference_id": "<string>",
      "signup_date": "<string>",
      "signup_date_original": "<string>",
      "last_login": "<string>",
      "last_login_original": "<string>",
      "next_shift_date": "<string>",
      "next_shift_date_original": "<string>",
      "last_shift_date": "<string>",
      "last_shift_date_original": "<string>",
      "account_status": 0,
      "name_first": "<string>",
      "email": "<string>",
      "phone": "<string>",
      "address": "<string>",
      "city": "<string>",
      "zip": "<string>",
      "country_id": 123,
      "areas": [
        {
          "id": "<string>",
          "name": "<string>"
        }
      ],
      "bad_phone_number": 0,
      "texting_off": 0,
      "latitude": "<string>",
      "longitude": "<string>",
      "multilogin": 0,
      "onboarded": 0,
      "app_notifications_active": 0,
      "app_notifications_preferred": 0,
      "current_worker": 0,
      "admin": 0,
      "owner": 0,
      "selected": "<string>",
      "selected_picture_location": "<string>",
      "pending_document_signing_count": 123,
      "total_shifts": "<string>",
      "last_noshow": "<string>",
      "no_id": true,
      "stars": 1,
      "skillsets": [
        {
          "roles_id": "<string>",
          "role_title": "<string>"
        }
      ],
      "pullTimestamp": 123
    }
  ],
  "totals": {
    "pendingTotal": 123,
    "activeTotal": 123,
    "inactiveTotal": 123,
    "firstLoginTotal": 123,
    "onboardingTotal": 123,
    "allTotal": 123
  }
}
This endpoint returns all workers matching your filters in a single response — it is not paginated. The response includes a totals object with a breakdown of worker counts by account status (activeTotal, inactiveTotal, pendingTotal, firstLoginTotal, onboardingTotal, allTotal).
Custom fields filter — To filter by a custom field, use the query parameter format customFields[{id}]={field_type}|{comparator}|{value}. For example, customFields[116]=dropdown|is|some_value filters by custom field 116 (a dropdown) where the value equals some_value. Comparators vary by field type: text fields support basic matching, date fields support is_before, is_after, and is, and dropdown fields support is.

Authorizations

X-API-KEY
string
header
required

Query Parameters

workerStatus
integer

Filter by account status: 0 = pending, 1 = active, 2 = inactivated, 3 = all

areas
string

Comma-separated area IDs to filter by

skillsets
string

Comma-separated skillset IDs to filter by

tags
string

Comma-separated tag IDs to filter by

customFields
string

Comma-separated custom field filter values

workerCreated
string<date-time>

Filter by worker signup date (ISO 8601 format)

workerCreatedOperator
enum<string>

Comparator for the workerCreated filter

Available options:
is_before,
is_after,
is
nextWorking
string<date-time>

Filter by next scheduled shift date (ISO 8601 format)

nextWorkingOperator
enum<string>

Comparator for the nextWorking filter

Available options:
is_before,
is_after,
is
nextWorkingHasOperator
enum<string>

Filter by whether the worker has a next scheduled shift

Available options:
has,
does_not_have
lastShift
string<date-time>

Filter by last shift date (ISO 8601 format)

lastShiftOperator
enum<string>

Comparator for the lastShift filter

Available options:
is_before,
is_after,
is
lastShiftHasOperator
enum<string>

Filter by whether the worker has a recorded last shift

Available options:
has,
does_not_have

Response

OK

workers
object[]

Array of worker objects matching the filters

totals
object

Breakdown of worker counts by account status.