List users in the caller's agency hierarchy.
Paginated list of users under the caller's agency. Ordered oldest-first by createdAt. Supports role + active filters and cursor pagination. Platform roles (super_admin, admin) are filtered out at the Motor query layer.
| Method | Path |
|---|---|
GET | /api/v1/users |
Primary host: https://valara.cloud (legacy alias: https://dash.jacoballenmedia.com).
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
role | query | no | string | Filter to a single role. Platform roles (super_admin, admin) are rejected at the Pydantic boundary with 422 and ALSO stripped server-side via the $nin clause on the Motor query (defense-in-depth). |
active | query | no | string | Filter on is_active. Omit to return both active and inactive users (reconciliation default). True for only active users; False for only deactivated users. |
cursor | query | no | string | Opaque cursor from a prior response's next_cursor field. Base64-wrapped JSON payload. Tampering produces a 422 invalid_cursor error. |
limit | query | no | integer | Rows per page. Range [1, 200]; default 50. Large agencies may page up to 200 per request to reduce round-trips. |
Request body
(no request body)
Response
null
Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error (see error codes) |
Examples
curl
curl -X GET "https://valara.cloud/api/v1/users" \
-H "Authorization: Bearer $VALARA_API_KEY" \
-H "Content-Type: application/json"
Python
import os
import uuid
import httpx
res = httpx.request(
"GET",
"https://valara.cloud/api/v1/users",
headers={
"Authorization": f"Bearer {os.environ['VALARA_API_KEY']}",
"Content-Type": "application/json",
},
)
res.raise_for_status()
print(res.json())