---
title: "List users"
method: GET
path: "/users"
tags: ["Users"]
---

# List users

`GET /users`

Endpoint used to list user resources

## Query parameters

- `cursor` string — Last pagination reference
- `limit` integer — max number of Users returned
- `onlyAssignable` boolean — Will only show users that can be assigned to a work order
- `email` string[] — Filter users by email. You can filter for multiple users by specifying multiple emails like so: `/users?email=user1@example.com&email=user2@example.com`. Note that if you are using special characters in a url, you will need to URI encode them in order for us to interprete them correctly. For example, `+` should be encoded as `%2B` and though we accept `@`, they should still be encoded as `%40`. So filtering for email `user1+test@example.com`, you would use `/users?email=user1%2Btest%example.com` in your URI
- `expand` string[] — To expand multiple fields: `expand=role&expand=extra_fields`

## Headers

- `x-organization-id` integer

## Response `200`

Successfully fetched Users list

- object
  - `users` object[], required
    - `id` integer, required — Global ID of the user
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, nullable
    - `phoneNumber` string, nullable
    - `authType` 'NORMAL' | 'SAML' | 'OIDC', nullable
    - `hourlyRate` integer, nullable — Cost in cents. For example, for $1.20, the value will be 120. If the hourly rate is not set specifically for the user, the API will return the default organization hourly rate, if that is also not set, it will return the hourly rate that is specifically set for the user in any work order. Otherwise, it would be `undefined`
    - `lastVisitedAt` string, date-time, nullable — Last time the user visited this organization. Scoped to the organization the request is made against. `null` if the user has never visited (e.g. an invited user who has not yet accepted). For service accounts, returns the organization-user creation date.
    - `createdAt` string, date-time, nullable — When the user was added to this organization. Scoped to the organization the request is made against. `null` if the user is no longer part of the organization.
    - `role` 'ADMIN' | 'MEMBER' | 'OPERATOR' | 'REQUESTER' | 'SERVICE_ACCOUNT' — (expand with query parameter)
    - `extraFields` object — Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "Department") (expand with query parameter)
  - `nextCursor` string, nullable, required — The cursor to retrieve the next page of Users.
  - `nextPageUrl` string, nullable, required — Path with query parameters that can be used to retrieve the next page of Users.

## Other responses

- `400` — Error with query
- `401` — Invalid token

---

[API](https://skmtc.net/getmaintainx/apis/maintainx-api.md) · [All operations](https://skmtc.net/getmaintainx/apis/maintainx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getmaintainx/maintainx-api/revisions/ef9153fcac7c/schema)
