---
title: "List Users"
method: GET
path: "/v2/company/{company_id}/users"
tags: ["Users"]
---

# List Users

`GET /v2/company/{company_id}/users`

## Request

- Base URL: `https://api.7shifts.com`
- URL: `https://api.7shifts.com/v2/company/{company_id}/users`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://app.7shifts.com/oauth2/authorize`
    - Client credentials
    - Password
    - Token URL: `https://app.7shifts.com/oauth2/token`
  - API key in cookie `7session`
- TypeScript: <https://skmtc.dev/7shifts/apis/7shifts-api/docs/v2/company/:company_id/users/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `company_id` integer, required

## Query parameters

- `modified_since` string
- `location_id` integer
- `department_id` integer
- `role_id` integer
- `status` 'active' | 'inactive'
- `name` string
- `sort_by` string
- `cursor` string
- `limit` integer

## Headers

- `x-api-version` string: An API version
- `x-company-guid` string, uuid

## Response `200`

OK

- object
  - `object` 'users', required
  - `data` object[], required
    - `id` integer, required: User ID
    - `identity_id` integer, nullable: Internal use
    - `company_id` integer, required: Company ID
    - `first_name` string, required: First Name
    - `last_name` string, required: Last Name
    - `preferred_first_name` string, nullable: Preferred first name
    - `preferred_last_name` string, nullable: Preferred last name
    - `pronouns` string, nullable: Pronouns
    - `email` string, required: Email Address
    - `mobile_number` string, nullable, required: Mobile Number
    - `home_number` string, nullable, required: Home Number
    - `birth_date` string, date, nullable, required: Birthdate. Format YYYY-MM-DD
    - `address` string, nullable, required: Address
    - `postal_zip` string, nullable, required: Zip or postal code
    - `city` string, nullable, required: City
    - `prov_state` string, nullable, required: State or province
    - `invite_status` 'accepted' | 'pending' | 'required' | 'missing_contact_info', required: Invitation status to join 7shifts for the first time
    - `active` boolean, required: If true user is active in allowed to login. If false the user has been deactivated/deleted
    - `photo` string, nullable, required: Photo url
    - `notes` string, nullable, required: User notes
    - `timezone` string, nullable, required: Timezone. Valid zone info name
    - `type` 'employee' | 'asst_manager' | 'manager' | 'employer', required: User type
    - `employee_id` string, nullable, required: Employee ID
    - `max_weekly_hours` string, required: Maximum weekly hours user is set to work
    - `punch_id` string, nullable, required: Value used during clock in/out in 7shifts applications
    - `created` string
    - `modified` string
    - `invited` string, nullable, required: The date that the user has been sent an invitation to join 7shifts, null if not invited.
    - `invite_accepted` string, nullable, required: The date that the user accepted their 7shifts invitation, null if not accepted.
    - `is_new` boolean, required: If true user is new
    - `appear_as_employee` boolean: If true user can be assigned shifts. This applies to managers, asst_manager and employers.
    - `subscribe_to_updates` boolean: If true this user is subscribed to updates from 7shifts. This includes announcing new features for 7shifts
    - `language` string: Specified language. In ISO 639-1 format
    - `push` boolean: Are mobile push notifications enabled for the user
    - `skill_level` integer, nullable: Current assigned skill level
    - `hourly_wage` integer, nullable: Users current hourly wage in cents
    - `wage_type` string, nullable: The type of wage the user will receive
    - `sms_me_schedules` boolean, nullable: If the user should receive sms notifications for shifts
    - `notify_ot_risk` boolean, nullable: Should notifications be sent if the user is at risk of overtime hours
    - `permissions_template_id` integer, nullable: The ID of the permission template currently assigned to the user.
    - `reactivation_status` 'accepted' | 'pending' | 'expired', nullable: Invitation status to re-join 7shifts after initially being deactivated
    - `meta` object, nullable
      - `readonly_fields` string[]
      - `identity_status` 'created' | 'updated' | 'merging_identities', nullable: Indicates whether an identity was created, updated, or lead to an Identity merge from the preceding request
  - `meta` object, required
    - `cursor` object, required
      - `current` string, nullable, required: The current cursor.
      - `prev` string, nullable, required: A cursor for navigating to the previous page.
      - `next` string, nullable, required: A cursor for navigating to the next page.
      - `count` integer, nullable, required: The total items in the current cursor.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `500`: Server Error

---

[API](https://skmtc.dev/7shifts/apis/7shifts-api.md) - [All operations](https://skmtc.dev/7shifts/apis/7shifts-api/llms.txt) - [OpenAPI document](https://skmtc.dev/7shifts/apis/7shifts-api/revisions/40e0ef40dfcd?raw)
