Skip to content

List all users in the user's organization

GET
/v1/users
curl --request GET \
--url 'https://api.adversarial.com/api/v1/users?page_size=25&page=1&created_after=2026-01-01&created_before=2026-12-31&last_login_after=2026-01-01&last_login_before=2026-12-31'
page_size
integer format: int64
default: 25 >= 1 <= 100

Rows per page. Defaults to 25, max 100; zero is rejected.

page
integer format: int64
default: 1 >= 1 <= 1000000

1-indexed page number. Defaults to 1; zero is rejected.

last_name
string | null
order_by
One of:

Sort order: "<field>, asc|desc", e.g. "name, desc"; the direction defaults to desc. Fields: name, joined_date, last_login, status.

string

Sort by one field. An unknown field or direction returns 400.

query
string | null

Freetext ILIKE across first_name, last_name, and email. Empty or missing → no filter.

first_name
string | null

Partial (ILIKE) match on first_name.

email
Array<string> | null

Match members whose email is exactly one of these (case-insensitive). Repeated ?email= keys collapse into the set; empty/absent → no filter.

active
boolean | null

true returns only active members (deactivated_date IS NULL); false returns only deactivated; absent returns both.

roles
Array<string> | null

Role UUIDs — matches members holding any of the listed roles.

created_after
One of:

One side of a date range: an RFC 3339 timestamp in any UTC offset, used as given, or a bare YYYY-MM-DD naming a whole UTC day.

string

Members who joined the organization on or after this bound (>=). A bare YYYY-MM-DD covers its whole UTC day, so created_after=2026-04-01 includes April 1.

Example
2026-01-01
created_before
One of:

One side of a date range: an RFC 3339 timestamp in any UTC offset, used as given, or a bare YYYY-MM-DD naming a whole UTC day.

string

Members who joined the organization on or before this bound (<=). A bare YYYY-MM-DD covers its whole UTC day, so created_before=2026-04-30 includes April 30.

Example
2026-12-31
last_login_after
One of:

One side of a date range: an RFC 3339 timestamp in any UTC offset, used as given, or a bare YYYY-MM-DD naming a whole UTC day.

string

Members who last signed in on or after this bound (>=). A bare YYYY-MM-DD covers its whole UTC day, so last_login_after=2026-04-01 includes April 1; an RFC 3339 timestamp in any UTC offset is used as given. Members who have never signed in never match.

Example
2026-01-01
last_login_before
One of:

One side of a date range: an RFC 3339 timestamp in any UTC offset, used as given, or a bare YYYY-MM-DD naming a whole UTC day.

string

Members who last signed in on or before this bound (<=). A bare YYYY-MM-DD covers its whole UTC day, so last_login_before=2026-04-30 includes April 30.

Example
2026-12-31
permission
string | null

Restrict to active users holding this permission label (e.g. risks:read). Resolution is over active members only, so combining this with active=false yields an empty response. Unknown labels: 400.

ids
Array<string>

Restrict to these user IDs (?ids=<uuid>&ids=<uuid>). Collected into a set, so repeats collapse; max 500 distinct. Does NOT override active.

List all users in the organization

Media typeapplication/json

Paginated list envelope: { "results": [...], "pagination": {...} }.

object
pagination
required

Pagination metadata describing the slice.

object
page
required

1-indexed page number of this result slice.

integer format: int64
page_size
required

Number of items requested per page.

integer format: int64
total_items
required

Total number of matching items across all pages.

integer format: int64
total_pages
required

Total number of pages at this page size.

integer format: int64
results
required

The items on this page.

Array
object
email
required
string
first_name
required
string
icon

Relative path to the user’s avatar endpoint, e.g. "users/{id}/avatar?v={hash}". None when the user has no avatar.

string | null
id
required
string format: uuid
last_name
required
string
deactivated_date
string | null format: date-time
joined_date
required
string format: date-time
kind
required

Kind of principal an OrganizationMember represents. Always HUMAN on the /v1/users endpoint today; included on the wire so consumers have a single discriminator regardless of which endpoint surfaced the row.

Wire format is SCREAMING_SNAKE_CASE so the values read as constants (HUMAN, SERVICE_ACCOUNT).

string
Allowed values: HUMAN INTEGRATION SERVICE_ACCOUNT
last_login
string | null format: date-time
roles
required
Array<string>
Example
{
"results": [
{
"kind": "HUMAN"
}
]
}

Unknown permission label, or ids exceeds 500