Slack Reactions API

Slack's Reactions API lets apps programmatically manage emoji reactions on messages and files, making it easy to capture lightweight feedback like approvals, acknowledgments, or votes. Through Web API methods (reactions.add, reactions.remove, reactions.get, reactions.list) and the Events API (reaction_added and reaction_removed), apps can add or delete reactions, read which reactions are on an item, and monitor reaction activity in real time.

OpenAPI Specification

slack-reactions-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: "1.0"
  title: Slack Reactions API
  description: "Slack\x19s Reactions API lets apps programmatically manage emoji reactions on messages and files, making it easy to capture lightweight feedback like approvals, acknowledgments, or votes.
    Through Web API methods (reactions.add, reactions.remove, reactions.get, reactions.list) and the Events API (reaction_added and reaction_removed), apps can add or delete reactions, read which reactions
    are on an item, and monitor reaction activity in real time. It works with messages (including threads), files, and file comments in channels, DMs, and group DMs where the app has access. Responses include
    reaction names, counts, and user IDs, and support both standard and custom emoji. Proper scopes (reactions:read and reactions:write, plus relevant conversation/file scopes) and channel visibility rules
    apply, rate limits are enforced, and each user can apply at most one instance of a given emoji per item."
paths:
  /reactions.add:
    post:
      tags:
      - Add
      - Post
      - Reactions
      description: Adds a reaction to an item.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/reactions.add
      operationId: postReactionsAdd
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `reactions:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - channel
              - name
              - timestamp
              type: object
              properties:
                channel:
                  type: string
                  description: Channel where the message to add reaction to was posted.
                name:
                  type: string
                  description: Reaction (emoji) name.
                timestamp:
                  type: string
                  description: Timestamp of the message to add reaction to.
          application/json:
            schema:
              required:
              - channel
              - name
              - timestamp
              type: object
              properties:
                channel:
                  type: string
                  description: Channel where the message to add reaction to was posted.
                name:
                  type: string
                  description: Reaction (emoji) name.
                timestamp:
                  type: string
                  description: Timestamp of the message to add reaction to.
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: reactions.add schema
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: false
                description: Schema for successful response from reactions.add method
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: reactions.add error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - bad_timestamp
                    - message_not_found
                    - no_item_specified
                    - invalid_name
                    - already_reacted
                    - too_many_emoji
                    - too_many_reactions
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - no_permission
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from reactions.add method
              example:
                error: already_reacted
                ok: false
      security:
      - slackAuth:
        - reactions:write
      summary: Slack Post Reactions Add
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /reactions.get:
    get:
      tags:
      - Get
      - Reactions
      description: Gets reactions for an item.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/reactions.get
      operationId: getReactionsGet
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `reactions:read`'
        required: true
        schema:
          type: string
      - name: channel
        in: query
        description: Channel where the message to get reactions for was posted.
        schema:
          type: string
      - name: file
        in: query
        description: File to get reactions for.
        schema:
          type: string
      - name: file_comment
        in: query
        description: File comment to get reactions for.
        schema:
          type: string
      - name: full
        in: query
        description: If true always return the complete reaction list.
        schema:
          type: boolean
      - name: timestamp
        in: query
        description: Timestamp of the message to get reactions for.
        schema:
          type: string
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: reactions.get success schema
                type: array
                description: Schema for successful response from reactions.get method
              example:
                file:
                  channels:
                  - C2U7V2YA2
                  comments_count: 1
                  created: 1507850315
                  groups: []
                  id: F7H0D7ZA4
                  ims: []
                  name: computer.gif
                  reactions:
                  - count: 1
                    name: stuck_out_tongue_winking_eye
                    users:
                    - U2U85N1RV
                  timestamp: 1507850315
                  title: computer.gif
                  user: U2U85N1RV
                ok: true
                type: file
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: reactions.get error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - bad_timestamp
                    - file_not_found
                    - file_comment_not_found
                    - message_not_found
                    - no_item_specified
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - no_permission
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from reactions.get method
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - reactions:read
      summary: Slack Get Reactions Get
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /reactions.list:
    get:
      tags:
      - Get
      - Lists
      - Reactions
      description: Lists reactions made by a user.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/reactions.list
      operationId: getReactionsList
      parameters:
      - name: token
        in: query
        description: 'Authentication token. Requires scope: `reactions:read`'
        required: true
        schema:
          type: string
      - name: user
        in: query
        description: Show reactions made by this user. Defaults to the authed user.
        schema:
          type: string
      - name: full
        in: query
        description: If true always return the complete reaction list.
        schema:
          type: boolean
      - name: count
        in: query
        schema:
          type: integer
      - name: page
        in: query
        schema:
          type: integer
      - name: cursor
        in: query
        description: >-
          Parameter for pagination. Set `cursor` equal to the `next_cursor`
          attribute returned by the previous request's `response_metadata`.
          This parameter is optional, but pagination is mandatory: the default
          value simply fetches the first "page" of the collection. See
          [pagination](/docs/pagination) for more details.
        schema:
          type: string
      - name: limit
        in: query
        description: >-
          The maximum number of items to return. Fewer than the requested
          number of items may be returned, even if the end of the list hasn't
          been reached.
        schema:
          type: integer
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: reactions.list schema
                required:
                - items
                - ok
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                  paging:
                    $ref: '#/components/schemas/objs_paging'
                  response_metadata:
                    $ref: '#/components/schemas/objs_response_metadata'
                additionalProperties: false
                description: Schema for successful response from reactions.list method
              example:
                items:
                - channel: C3UKJTQAC
                  message:
                    bot_id: B4VLRLMKJ
                    reactions:
                    - count: 1
                      name: robot_face
                      users:
                      - U2U85N1RV
                    subtype: bot_message
                    text: 'Hello from Python! :tada:'
                    ts: '1507849573.000090'
                    username: Shipit Notifications
                  type: message
                - comment:
                    comment: This is a file comment
                    created: 1508286096
                    id: Fc7LP08P1U
                    reactions:
                    - count: 1
                      name: white_check_mark
                      users:
                      - U2U85N1RV
                    timestamp: 1508286096
                    type: file_comment
                    user: U2U85N1RV
                  file:
                    channels:
                    - C2U7V2YA2
                    comments_count: 1
                    created: 1507850315
                    reactions:
                    - count: 1
                      name: stuck_out_tongue_winking_eye
                      users:
                      - U2U85N1RV
                    title: computer.gif
                    user: U2U85N1RV
                    username: ''
                - file:
                    channels:
                    - C2U7V2YA2
                    comments_count: 1
                    created: 1507850315
                    id: F7H0D7ZA4
                    name: computer.gif
                    reactions:
                    - count: 1
                      name: stuck_out_tongue_winking_eye
                      users:
                      - U2U85N1RV
                    size: 1639034
                    title: computer.gif
                    user: U2U85N1RV
                    username: ''
                  type: file
                ok: true
                response_metadata:
                  next_cursor: dGVhbTpDMUg5UkVTR0w=
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: reactions.list error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - user_not_found
                    - not_authed
                    - invalid_auth
                    - account_inactiv
                    - no_permission
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from reactions.list method
              example:
                error: invalid_auth
                ok: false
      security:
      - slackAuth:
        - reactions:read
      summary: Slack Get Reactions List
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /reactions.remove:
    post:
      tags:
      - Post
      - Reactions
      - Remove
      description: Removes a reaction from an item.
      externalDocs:
        description: API method documentation
        url: https://api.slack.com/methods/reactions.remove
      operationId: postReactionsRemove
      parameters:
      - name: token
        in: header
        description: 'Authentication token. Requires scope: `reactions:write`'
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - name
              type: object
              properties:
                name:
                  type: string
                  description: Reaction (emoji) name.
                file:
                  type: string
                  description: File to remove reaction from.
                file_comment:
                  type: string
                  description: File comment to remove reaction from.
                channel:
                  type: string
                  description: >-
                    Channel where the message to remove reaction from was
                    posted.
                timestamp:
                  type: string
                  description: Timestamp of the message to remove reaction from.
          application/json:
            schema:
              required:
              - name
              type: object
              properties:
                name:
                  type: string
                  description: Reaction (emoji) name.
                file:
                  type: string
                  description: File to remove reaction from.
                file_comment:
                  type: string
                  description: File comment to remove reaction from.
                channel:
                  type: string
                  description: >-
                    Channel where the message to remove reaction from was
                    posted.
                timestamp:
                  type: string
                  description: Timestamp of the message to remove reaction from.
        required: true
      responses:
        '200':
          description: Typical success response
          content:
            application/json:
              schema:
                title: reactions.remove schema
                required:
                - ok
                type: object
                properties:
                  ok:
                    $ref: '#/components/schemas/defs_ok_true'
                additionalProperties: false
                description: Schema for successful response from reactions.remove method
              example:
                ok: true
        default:
          description: Typical error response
          content:
            application/json:
              schema:
                title: reactions.remove error schema
                required:
                - error
                - ok
                type: object
                properties:
                  callstack:
                    type: string
                    description: 'Note: PHP callstack is only visible in dev/qa'
                  error:
                    type: string
                    enum:
                    - bad_timestamp
                    - file_not_found
                    - file_comment_not_found
                    - message_not_found
                    - no_item_specified
                    - invalid_name
                    - no_reaction
                    - not_authed
                    - invalid_auth
                    - account_inactive
                    - no_permission
                    - invalid_arg_name
                    - invalid_array_arg
                    - invalid_charset
                    - invalid_form_data
                    - invalid_post_type
                    - missing_post_type
                    - team_added_to_org
                    - invalid_json
                    - json_not_object
                    - request_timeout
                    - upgrade_required
                    - fatal_error
                  ok:
                    $ref: '#/components/schemas/defs_ok_false'
                additionalProperties: false
                description: Schema for error response from reactions.remove method
              example:
                error: no_reaction
                ok: false
      security:
      - slackAuth:
        - reactions:write
      summary: Slack Post Reactions Remove
      x-api-evangelist-processing:
        GenerateOperationSummariesFromPath: true
        PascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas: {}
tags:
- name: Add
- name: Get
- name: Lists
- name: Post
- name: Reactions
- name: Remove