List all users in the user's organization
const 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';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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'Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Rows per page. Defaults to 25, max 100; zero is rejected.
1-indexed page number. Defaults to 1; zero is rejected.
Freetext ILIKE across first_name, last_name, and email. Empty
or missing → no filter.
Partial (ILIKE) match on first_name.
Match members whose email is exactly one of these (case-insensitive).
Repeated ?email= keys collapse into the set; empty/absent → no filter.
true returns only active members (deactivated_date IS NULL);
false returns only deactivated; absent returns both.
Role UUIDs — matches members holding any of the listed roles.
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.
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-01One 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.
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-31One 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.
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-01One 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.
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-31Restrict 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.
Restrict to these user IDs (?ids=<uuid>&ids=<uuid>). Collected into a
set, so repeats collapse; max 500 distinct. Does NOT override active.
Responses
Section titled “Responses”List all users in the organization
Paginated list envelope: { "results": [...], "pagination": {...} }.
object
Pagination metadata describing the slice.
object
1-indexed page number of this result slice.
Number of items requested per page.
Total number of matching items across all pages.
Total number of pages at this page size.
The items on this page.
object
Relative path to the user’s avatar endpoint, e.g.
"users/{id}/avatar?v={hash}". None when the user has no avatar.
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).
Example
{ "results": [ { "kind": "HUMAN" } ]}Unknown permission label, or ids exceeds 500