List the people you can talk to
const url = 'https://chat.work.optidata.cloud/api/users?paginated=false';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://chat.work.optidata.cloud/api/users?paginated=false' \ --header 'Authorization: Bearer <token>'Every user of the company except the caller. By default the whole list is
returned as a plain array; pass paginated=true to get a paginated
envelope instead.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Return a paginated envelope instead of a plain array.
Responses
Section titled “ Responses ”The company’s users. A plain array, or a paginator envelope whose
data carries the same items when paginated=true.
A person in the tenant.
object
Numeric id, used on the conversation and participant routes.
Stable identifier of the user across the Optiwork suite.
Identifier of the company the user belongs to.
null for a person. 0 marks the Optiwork AI assistant, 1 a bot and
2 a contact reached over an external messaging integration.
The colour used for this user’s name in the interface.
Set when the user has been removed from the company.
Details of the linked external-messaging contact, present when the user
is reached over an external messaging integration (type 2); null
for an ordinary person. Its keys depend on the integration, so treat it
as an open object.
object
A person in the tenant.
object
Numeric id, used on the conversation and participant routes.
Stable identifier of the user across the Optiwork suite.
Identifier of the company the user belongs to.
null for a person. 0 marks the Optiwork AI assistant, 1 a bot and
2 a contact reached over an external messaging integration.
The colour used for this user’s name in the interface.
Set when the user has been removed from the company.
Details of the linked external-messaging contact, present when the user
is reached over an external messaging integration (type 2); null
for an ordinary person. Its keys depend on the integration, so treat it
as an open object.
Examples
Default — plain array
[ { "id": 5, "uuid": "7c2f4b18-a90d-4d6e-8f11-2b5c9e70a334", "cuid": "a3f1c9a52-4d7e-4b31-9c02-77a1b6e5d840", "username": null, "email": "john.smith@acme.example", "name": "John Smith", "company_name": "Acme", "created_at": "2026-08-14T14:00:10.000000Z", "updated_at": "2026-08-14T14:00:10.000000Z", "deleted_at": null, "dark_mode": false, "messenger_color": "#2180f3", "type": null, "avatar_url": "https://cdn.example/avatars/john.webp" }]Missing, malformed or expired authentication key.
Authentication failures — and a few permission denials — use an error
key rather than message.
object
Examples
No bearer token sent
{ "error": "JWT passport exception: Missing bearer token in request"}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."}