> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gleap.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Set a message reaction

> Add or remove an emoji reaction on a message.

Reactions are INTERNAL — never visible to end customers, never fire
webhooks/SLA/unread, never move the ticket's latest message. The update
reaches open dashboards via the ordinary comment.updated broadcast.



## OpenAPI

````yaml https://api.gleap.io/api-docs.json put /messages/{messageId}/reactions
openapi: 3.0.0
info:
  title: gleap-server
  version: 14.0.0
  contact: {}
servers:
  - url: https://api.gleap.io/v3
security: []
paths:
  /messages/{messageId}/reactions:
    put:
      tags:
        - Messages
      summary: Set a message reaction
      description: |-
        Add or remove an emoji reaction on a message.

        Reactions are INTERNAL — never visible to end customers, never fire
        webhooks/SLA/unread, never move the ticket's latest message. The update
        reaches open dashboards via the ordinary comment.updated broadcast.
      operationId: SetMessageReaction
      parameters:
        - in: path
          name: messageId
          required: true
          schema:
            type: string
        - in: header
          name: project
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetReactionDto'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema: {}
      security:
        - jwt: []
components:
  schemas:
    SetReactionDto:
      description: |-
        Body of PUT /v3/messages/{messageId}/reactions.

        Explicit op instead of a blind toggle: idempotent and retry-safe, and
        immune to the optimistic-UI race where a stale toggle inverts intent.
      properties:
        emoji:
          type: string
          description: |-
            The unicode emoji, e.g. "👍" or "👨‍👩‍👧". Validated server-side
            (pictographic/keycap/flag required, max 32 UTF-16 units).
        op:
          type: string
          enum:
            - add
            - remove
      required:
        - emoji
        - op
      type: object
      additionalProperties: false
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````