Read the authenticated user
const url = 'https://chat.work.optidata.cloud/api/me';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/me \ --header 'Authorization: Bearer <token>'The record of the user the authentication key belongs to. Call this first:
most other operations need either the caller’s numeric id (conversation
preference routes) or their uuid (dashboard, direct messages), and this
is the only endpoint that hands you both.
Authorizations
Section titled “Authorizations”Responses
Section titled “ Responses ”The authenticated user.
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.
Presence information for a user.
object
When the user was last active.
Examples
{ "id": 2, "uuid": "3f1c9a52-4d7e-4b31-9c02-77a1b6e5d840", "cuid": "a3f1c9a52-4d7e-4b31-9c02-77a1b6e5d840", "username": null, "email": "jane.doe@acme.example", "name": "Jane Doe", "company_name": "Acme", "created_at": "2026-08-14T11:57:24.000000Z", "updated_at": "2026-08-14T11:57:24.000000Z", "deleted_at": null, "dark_mode": false, "messenger_color": "#2180f3", "type": null, "avatar_url": "https://cdn.example/avatars/jane.webp", "status": { "id": 14, "user_id": 2, "last_seen_at": "2026-08-19T12:37:34.000000Z", "created_at": "2026-08-19T12:37:05.000000Z", "updated_at": "2026-08-19T12:37:34.000000Z" }}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."}