---
title: "Lists the organization's users with the schedule groups each belongs to."
method: GET
path: "/api/v1/users"
tags: ["Users"]
---

# Lists the organization's users with the schedule groups each belongs to.

`GET /api/v1/users`

## Request

- Base URL: `https://app.flexonthejob.com`
- URL: `https://app.flexonthejob.com/api/v1/users`
- Auth: HTTP bearer

Users are keyed by string ids, so this collection is <b>not</b> cursor-paginated: the
whole list is returned in one response (ordered by first then last name) with
`nextCursor` always `null`. The response carries an `ETag`; send it as
`If-None-Match` to get `304` when nothing changed. Example:
`GET /api/v1/users?scheduleGroupId=5` returns the members of group 5.
Also available as CSV (`Accept: text/csv` or `?format=csv`); paging cursor in `X-Next-Cursor`.

## Query parameters

- `includeInactive` boolean
- `scheduleGroupId` integer
- `format` 'csv'

## Response `200`

All matching users.

- PagedResponseOfUserSummaryDto: One page of a cursor-paginated /api/v1 collection (API_AND_MCP.md: `?after=<syncId>&limit=`).
  - `items` UserSummaryDto[]: Items of this page in ascending creation order.
    - `id` string: User id (string GUID). Use it as an assignee id when scheduling jobs.
    - `displayName` string: Display name, e.g. `"Sam Carter"`; falls back to the e-mail address when no name is recorded.
    - `email` string, nullable: Login e-mail address, e.g. `sam@example.com`. Only present for callers whose key holds `ManageUsers`; it is null for a ViewJobs-only (scheduling) key, and also null when the account has no address on file.
    - `isActive` boolean: False when the account is deactivated (such users are only returned when `includeInactive=true`).
    - `scheduleGroupIds` integer[]: Ids of the schedule groups the user belongs to (see `/api/v1/schedule-groups`). Empty when unassigned.
  - `nextCursor` string, nullable: SyncId of the last item; pass it back as `?after=` to fetch the next page. `null` when this is the last page.

## Other responses

- `304`: Unchanged since the supplied `If-None-Match`.
- `401`: Unauthorized
- `403`: The `scheduling` module is not active for this organization.
- `404`: scheduleGroupId is not a group of this organization.
- `429`: Too Many Requests

---

[API](https://skmtc.dev/flexonthejob/apis/flex-api.md) · [All operations](https://skmtc.dev/flexonthejob/apis/flex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flexonthejob/apis/flex-api/revisions/19c8f4d27acf?raw)
