List users of the tenant
const url = 'https://work.optidata.cloud/api/users';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
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://work.optidata.cloud/api/users \ --header 'Authorization: Bearer <token>'Every user of the tenant, keyed by UUID rather than returned as an
array. Narrow the result with uuids[], and trim the payload with
attributes[] to keep only the columns you need.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Restrict the result to these user UUIDs.
Only return these attributes of each user. Names must be real columns of the user record; unknown names fail validation.
Responses
Section titled “ Responses ”Users of the tenant, keyed by UUID.
object
A user of the tenant.
object
Identifier of the company (tenant) the user belongs to.
Role of the user inside the tenant.
Profile extras (avatar, job title). Loaded only where noted.
Groups the user belongs to. Loaded only where noted.
A group of users inside the tenant.
object
Tenant-wide identifier of the group; used in paths.
Members of the group, each with its embedded user.
object
Presence status of the user. Loaded only where noted.
Rendered presence details (type, icon, message). Present on dashboard listings.
Examples
{ "9c1f0e2a-4d31-4d8a-8c1a-1f0b6b1f9a10": { "id": 15, "uuid": "9c1f0e2a-4d31-4d8a-8c1a-1f0b6b1f9a10", "cuid": "a1b2c3d4-2226-46c1-91b2-a9e9ba4c2d5b", "username": "jane.doe@acme.example", "email": "jane.doe@acme.example", "name": "Jane Doe", "full_name": "Jane Doe", "company_name": "Acme", "role": "super-admin", "status": "active", "avatar_url": "https://work.optidata.cloud/vendor/opticloud/images/user-default.svg", "created_at": "2025-03-26T17:36:28.000000Z", "updated_at": "2026-08-11T18:56:16.000000Z", "deleted_at": null }}Missing, malformed or expired authentication key.
Authentication failures use an error key rather than message.
object
Examples
No bearer token sent
{ "error": "JWT passport exception: Missing bearer token in request"}The request body or query string failed validation.
object
The first validation message.
Validation messages keyed by field name.
object
Examples
{ "message": "The name field is required.", "errors": { "name": [ "The name field is required." ] }}Rate limit exceeded. Retry after the window resets.
Generic error envelope used by policy, binding and framework failures.
object
Human-readable description of the failure.
Examples
{ "message": "Too Many Attempts."}