> ## Documentation Index > Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # React to Message > React or unreact to a chat message. ### Changelog | Version | Description | | ---------------- | ------------| |0.64.0 | Added parameter "shouldReact" to make endpoint work like a setter| |0.63.0 | Emoji has to exist | |0.62.2 |Added | ## OpenAPI ````json POST /api/v1/chat.react { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "Messaging" }, "servers": [ { "url": "https://apiexplorer.support.rocket.chat" } ], "tags": [ { "name": "Chat" }, { "name": "Direct Messages" }, { "name": "Auto-Translate" } ], "paths": { "/api/v1/chat.react": { "post": { "tags": [ "Chat" ], "summary": "React to Message", "description": "React or unreact to a chat message.\n\n### Changelog\n| Version | Description | \n| ---------------- | ------------|\n|0.64.0 | Added parameter \"shouldReact\" to make endpoint work like a setter|\n|0.63.0 | Emoji has to exist |\n|0.62.2 |Added |", "operationId": "post-api-v1-chat.react", "parameters": [ { "$ref": "#/components/parameters/Auth-Token" }, { "$ref": "#/components/parameters/UserId" } ], "requestBody": { "description": "The emoji doesn't have to contain `:`. However, the emoji must exist. Using either the `emoji` or `reaction` parameter is required.", "content": { "application/json": { "schema": { "type": "object", "properties": { "messageId": { "type": "string", "description": "The message ID to react to." }, "emoji": { "type": "string", "description": "The emoji to react with. It's required if you aren't using the `reaction` parameter." }, "reaction": { "type": "string", "description": "The reaction to use. It's required if you aren't using the `emoji` parameter." }, "shouldReact": { "type": "boolean", "description": "Boolean to specify if the reaction should be added or removed." } }, "required": [ "messageId" ] }, "examples": { "Example 1": { "value": { "messageId": "7aDSXtjMA3KPLxLjt", "emoji": "smile", "shouldReact": "true" } } } } } }, "responses": { "200": { "$ref": "#/components/responses/trueSuccess" }, "401": { "$ref": "#/components/responses/authorizationError" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" }, "errorType": { "type": "string" } } }, "examples": { "Example 1": { "value": { "success": "false", "error": "The required \"messageId\" param is missing. [error-messageid-param-not-provided]", "errorType": "error-messageid-param-not-provided" } }, "Example 2": { "value": { "success": "false", "error": "The provided \"messageId\" does not match any existing message. [error-message-not-found]", "errorType": "error-message-not-found" } } } } } } } } } }, "components": { "parameters": { "Auth-Token": { "name": "X-Auth-Token", "in": "header", "description": "The `authToken` of the authenticated user.", "required": "true", "schema": { "type": "string" }, "example": "RScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f" }, "UserId": { "name": "X-User-Id", "in": "header", "description": "The `userId` of the authenticated user.", "required": "true", "schema": { "type": "string" }, "example": "rbAXPnMktTFbNpwtJ" } }, "responses": { "trueSuccess": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } } }, "examples": { "Success": { "value": { "success": "true" } } } } } }, "authorizationError": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" } } }, "examples": { "Authorization Error": { "value": { "status": "error", "message": "You must be logged in to do this." } } } } } } } } } ````