Skip to content

Add a reaction

PUT
/channels/{channel}/messages/{message}/reactions/{emoji}
curl --request PUT \
--url https://desk.example.com/api/v1/channels/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/reactions/%F0%9F%8E%89 \
--header 'Authorization: Bearer <token>'

Required scope: reactions:write

Adds the subject’s reaction to a message. Idempotent — re-adding a reaction the subject already left is a no-op. System messages cannot be reacted to.

channel
required
string format: uuid

The channel’s id.

message
required
string format: uuid

The message’s id.

emoji
required
string
<= 32 characters

A native unicode emoji, or a :name: shortcode naming a custom emoji that exists in the workspace. URL-encode the segment.

Examples
🎉

The reaction is present.

The token is missing, malformed, or revoked.

Media typeapplication/json

The shape every error response carries.

object
message
required
string
Examplegenerated
{
"message": "example"
}

The token lacks the scope this operation requires, or its subject may see the resource but not perform this action on it.

Media typeapplication/json

The shape every error response carries.

object
message
required
string
Examplegenerated
{
"message": "example"
}

The resource does not exist, is outside the token’s workspace, or the integrations platform is disabled. A channel the subject cannot see is reported here rather than as a 403, so the API never leaks its existence.

Media typeapplication/json

The shape every error response carries.

object
message
required
string
Examplegenerated
{
"message": "example"
}

The request body failed validation.

Media typeapplication/json
object
message
required
string
errors
required

The failing fields, each mapped to its messages.

object
key
additional properties
Array<string>
Examplegenerated
{
"message": "example",
"errors": {
"additionalProperty": [
"example"
]
}
}

The per-token rate limit (INTEGRATIONS_API_RATE_LIMIT requests per minute) was exceeded. Retry after the Retry-After header.

Media typeapplication/json

The shape every error response carries.

object
message
required
string
Examplegenerated
{
"message": "example"
}
Retry-After
integer

Seconds to wait before retrying.