---
title: "Add a reaction"
method: POST
path: "/v1/chats/{chatID}/messages/{messageID}/reactions"
tags: ["Messages"]
---

# Add a reaction

`POST /v1/chats/{chatID}/messages/{messageID}/reactions`

Add a reaction to an existing message.

## Path parameters

- `chatID` string, required — Unique identifier of the chat.
- `messageID` string, required

## Request body

- object
  - `reactionKey` string, required — Reaction key to add (emoji, shortcode, or custom emoji key)
  - `transactionID` string — Optional transaction ID for deduplication and local echo tracking

## Response `200`

Request executed successfully

- AddReactionOutput
  - `success` true, required — Whether the reaction was successfully added
  - `chatID` string, required — Unique identifier of the chat.
  - `messageID` string, required — Message ID.
  - `reactionKey` string, required — Reaction key that was added
  - `transactionID` string, required — Transaction ID used for the reaction event

## Other responses

- `400` — Invalid request parameters
- `401` — Access token is missing or invalid
- `403` — Access token does not have the required scope
- `404` — Resource not found
- `422` — Unprocessable entity - validation error
- `429` — Too many requests - rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/beeper/apis/beeper-desktop-api.md) · [All operations](https://skmtc.net/beeper/apis/beeper-desktop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/beeper/beeper-desktop-api/revisions/5a8ac7b545c4/schema)
