Skip to content

List who reacted to a message

GET
/chats/{chat}/messages/{message}/reactions
curl --request GET \
--url https://chat.work.optidata.cloud/api/chats/36/messages/176/reactions \
--header 'Authorization: Bearer <token>'

The reactions on a message, grouped by emoji, with the full user record of everyone who left one. The caller comes first inside their own group, and reactions_count carries the per-emoji totals plus an All total, ordered from most to least used.

chat
required
integer format: int64

Numeric id of the conversation.

message
required
integer format: int64

Numeric id of the message.

The reactions on the message.

Media typeapplication/json
object
message_reactions
required

Users keyed by the emoji they reacted with.

object
key
additional properties
Array<object>

A person in the tenant.

object
id
required

Numeric id, used on the conversation and participant routes.

integer format: int64
uuid
required

Stable identifier of the user across the Optiwork suite.

string format: uuid
cuid

Identifier of the company the user belongs to.

string
username
string | null
email
required
string format: email
name
required
string
company_name
string | null
type

null for a person. 0 marks the Optiwork AI assistant, 1 a bot and 2 a contact reached over an external messaging integration.

integer | null
dark_mode
boolean
messenger_color

The colour used for this user’s name in the interface.

string
avatar_url
string | null format: uri
created_at
string format: date-time
updated_at
string format: date-time
deleted_at

Set when the user has been removed from the company.

string | null format: date-time
whatsapp_info

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 | null
reactions_count
required

Counts keyed by emoji, plus an All key with the total.

object
key
additional properties
integer
Examples
Examplenone

Nobody has reacted yet

{
"message_reactions": {},
"reactions_count": {
"All": 0
}
}

Missing, malformed or expired authentication key.

Media typeapplication/json

Authentication failures — and a few permission denials — use an error key rather than message.

object
error
required
string
Examples
Examplemissing

No bearer token sent

{
"error": "JWT passport exception: Missing bearer token in request"
}

The caller is not a participant of the conversation, or lacks the role the operation requires.

Media typeapplication/json

Generic error envelope used by policy, binding and framework failures.

object
message
required

Human-readable description of the failure.

string
Examples
Exampledenied
{
"message": "This action is unauthorized."
}

The resource does not exist, or does not belong to the given conversation.

Media typeapplication/json

Generic error envelope used by policy, binding and framework failures.

object
message
required

Human-readable description of the failure.

string
Examples
Examplemissing
{
"message": "No query results for model [App\\Models\\Chat\\Chat] 99999999"
}

Rate limit exceeded. Retry after the window resets.

Media typeapplication/json

Generic error envelope used by policy, binding and framework failures.

object
message
required

Human-readable description of the failure.

string
Examples
Examplethrottled
{
"message": "Too Many Attempts."
}