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

# Get Reactions

> This endpoint is used to fetch reactions for an org or a specific chat or message. 

 You can use `chat_id` and `message_id` to filter reactions specific to a chat or message. 

#### Response

The response is an array of JSON reaction objects. Refer to [the reaction object here](/api-reference/objects/the-reaction-object)



## OpenAPI

````yaml GET /reactions
openapi: 3.0.3
info:
  title: API - Local
  description: >-
    #### Welcome to the official Postman collection of Periskope API


    Periskope APIs enable you automate actions on your WhatsApp phone, and the
    Periskope platform


    - Read more about the APIs & webhooks here -
    [https://docs.periskope.app/api-reference/introduction](https://docs.periskope.app/api-reference/introduction)
        
    - We encourage responsible usage of the APIs. Follow these best practices
    and recommendations for safe actions on WhatsApp -
    [https://docs.periskope.app/get-started/best-practices](https://docs.periskope.app/get-started/best-practices)
        

    #### Getting Started


    ##### Pre-requisites:


    1. **Sign up for a free account on Periskope:** To use the Periskope API,
    you need to have an active Periskope account. If you don’t have one, you can
    sign up for a 7-day free trial [here](https://console.periskope.app).
        
    2. **Scan the QR code from WhatsApp to connect your phone:** A connected
    phone is required to use the APIs
        
    3. **Go to** [Settings &gt;
    API](https://console.periskope.app/settings/api), and generate an API key
    for your organization - The API key is used to authenticate every request.
    Please keep this secure
        

    ##### Using Postman:


    1. **Fork the collection so you can edit values and test the APIs in your
    own postman environment:** To fork the collection, click on the three dots
    next to v1. Then click on create a fork (_shortcut: Ctrl + Alt + F)._
        
    2. **Update the value of the variables in the collection:**  
        \- Update the API key with the key generated in Step 3  
        \- Update the phone number with your connected number. This number will be added to the `x-phone` header across requests
        
        It must be in the format of country code+number, with no special characters or spaces _e.g. +91 98745 32456 becomes 919874532456_
        

    For any help or feedback, please contact us at
    [support@periskope.app](https://mailto:support@periskope.app), or ping us on
    [WhatsApp](https://what.sapp.link/periskope)
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.periskope.app/v1
security:
  - bearerAuth: []
tags:
  - name: contacts
  - name: tickets
  - name: tasks
  - name: phones
  - name: message
  - name: queue
  - name: chats
  - name: group
  - name: members
  - name: webhooks
  - name: custom properties
paths:
  /reactions:
    get:
      tags:
        - reaction
      summary: Fetch Reactions
      description: >-
        This endpoint is used to fetch reactions for an org or a specific chat
        or message. 

         You can use `chat_id` and `message_id` to filter reactions specific to a chat or message. 

        #### Response


        The response is an array of JSON reaction objects. Refer to [the
        reaction object here](/api-reference/objects/the-reaction-object)
      operationId: getReactions
      parameters:
        - name: chat_id
          in: query
          schema:
            type: string
            example: 9184090XXXXX@c.us
            description: >-
              Use this option to fetch reactions of a specific chat. 


              - For groups, enter the chat_id of the group. This will be a
              string that ends with @g.us

              - For 1-1 chats, enter the country_code + number of the recipient
              e.g. [919537851844@c.us](https://mailto:919537851844@c.us) (The
              @c.us is optional)
        - name: message_id
          in: query
          schema:
            type: string
            example: true_9184090XXXXX@c.us_3D023C13C1487916ED112C671C348635
            description: |-
              Use this option to fetch reactions of a specific message. 

              - The message_id is a unique ID of a WA message on Periskope
        - name: offset
          in: query
          schema:
            type: number
            example: '0'
            description: |-
              - The offset value for paginating the results
              - Default `0`
        - name: limit
          in: query
          schema:
            type: number
            example: '10'
            description: |-
              - The maximum number of reactions to retrieve
              - Default `500`
        - name: x-phone
          in: header
          schema:
            type: string
            example: '{{orgPhone}}'
          description: >-
            **Optional.** The phone to scope this request to — in country code +
            number format with no spaces or special characters (e.g.
            919876543210), or the phone_id (phone-xxxxxxxxxxxx). When set, only
            reactions for that phone are returned. When omitted, reactions are
            returned — across all phones your token can access (the phones in
            your token's scope, or every phone in your organization if the token
            is unscoped). Passing a phone that is outside your token's scope
            returns a 401.
        - name: start_time
          in: query
          schema:
            type: string
            example: 2025-04-25 or 2025-04-25T00:00:00Z
            description: '- Filter for all reactions from the start_time timestamp onwards'
        - name: end_time
          in: query
          schema:
            type: string
            example: 2025-04-31 or 2025-04-31T23:59:59Z
            description: '- Filter for all reactions up to the end_time timestamp'
      responses:
        '200':
          description: Reaction
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
                example: '*'
            Connection:
              schema:
                type: string
                example: keep-alive
            Content-Length:
              schema:
                type: string
                example: '70'
            Date:
              schema:
                type: string
                example: Wed, 22 Jan 2025 10:07:53 GMT
            ETag:
              schema:
                type: string
                example: W/"46-G83wmhGAIRrmKrMUWfoeGk61n3A"
            Keep-Alive:
              schema:
                type: string
                example: timeout=5
            X-Powered-By:
              schema:
                type: string
                example: Express
            X-RateLimit-Limit:
              schema:
                type: string
                example: '10'
            X-RateLimit-Remaining:
              schema:
                type: string
                example: '9'
            X-RateLimit-Reset:
              schema:
                type: string
                example: '1737540475'
            x-periskope-org-id:
              schema:
                type: string
                example: 2997dd64-89bf-48d3-9a22-b314fca017e5
            x-periskope-phone-id:
              schema:
                type: string
                example: phone-bqzvyibhmwkaergr
            x-periskope-trace-id:
              schema:
                type: string
                example: bec43610-d8a8-11ef-8033-3b03afb6e098
          content:
            application/json:
              schema:
                type: object
                properties:
                  from:
                    type: number
                    example: 1
                    description: The starting index of the reactions returned
                  to:
                    type: number
                    example: 10
                    description: The ending index of the reactions returned
                  start_time:
                    type: string
                    example: '2025-08-15T00:00:00Z'
                    description: >-
                      The start_time of the reactions returned. The format
                      should be YYYY-MM-DDTHH:MM:SSZ
                  end_time:
                    type: string
                    example: '2025-08-15T23:59:59Z'
                    description: >-
                      The end_time of the reactions returned. The format should
                      be YYYY-MM-DDTHH:MM:SSZ
                  count:
                    type: number
                    example: 10
                    description: The total number of reactions returned
                  reactions:
                    type: array
                    description: >-
                      An array of reaction objects. Refer to [the reaction
                      object here](/api-reference/objects/the-reaction-object)
              examples:
                Reactions:
                  value:
                    from: 1
                    start_time: '2025-08-15T00:00:00Z'
                    end_time: '2025-08-15T23:59:59Z'
                    to: 2
                    count: 2
                    reactions:
                      - org_id: 2997dd64-89bf-48d3-9a22-b314fca017e5
                        message_id: >-
                          false_9184090XXXXX@c.us_3D023C13C1487916ED112C671C348635
                        ack: null
                        id:
                          id: 12F4BBF6D901439A78B5B404A4662308
                          remote: 9184090XXXXX@c.us
                          from_me: false
                          serialized: >-
                            false_9184090XXXXX@c.us_12F4BBF6D901439A78B5B404A4662308
                        orphan: null
                        reaction: 😢
                        read: true
                        reaction_id: >-
                          false_9184090XXXXX@c.us_12F4BBF6D901439A78B5B404A4662308
                        timestamp: '2025-07-14T03:07:00.003+00:00'
                        msg_id:
                          id: 3D023C13C1487916ED112C671C348635
                          remote: 9184090XXXXX@c.us
                          from_me: false
                          serialized: >-
                            false_9184090XXXXX@c.us_3D023C13C1487916ED112C671C348635
                        orphan_reason: null
                        sender_id: 917452891348@c.us
                        org_phone: 91882424xxxx@c.us
                        chat_id: 9184090XXXXX@c.us
                        unique_id: 3D023C13C1487916ED112C671C348635
                      - org_id: 2997dd64-89bf-48d3-9a22-b314fca017e5
                        message_id: false_1203632541736XXXXX@g.us_3A6A3C183F00093184DB
                        ack: null
                        id:
                          id: 3EB0B1654FCA55F479F316
                          remote: 1203632541736XXXXX@g.us
                          from_me: false
                          serialized: false_1203632541736XXXXX@g.us_3EB0B1654FCA55F479F316
                        orphan: null
                        reaction: 👍
                        read: true
                        reaction_id: false_1203632541736XXXXX@g.us_3EB0B1654FCA55F479F316
                        timestamp: '2025-08-16T13:58:47.252+00:00'
                        msg_id:
                          id: 3A6A3C183F00093184DB
                          remote: 1203632541736XXXXX@g.us
                          from_me: false
                          serialized: false_1203632541736XXXXX@g.us_3A6A3C183F00093184DB
                        orphan_reason: null
                        sender_id: 919971844008@c.us
                        org_phone: 91882424xxxx@c.us
                        chat_id: 1203632541736XXXXX@g.us
                        unique_id: 3A6A3C183F00093184DB
      x-codeSamples:
        - lang: TypeScript
          label: Node.js
          source: |-
            import { PeriskopeApi } from '@periskope/periskope-client';

            const client = new PeriskopeApi({
              authToken: 'YOUR_API_KEY',
              phone: 'YOUR_PHONE_NUMBER', // Optional for this endpoint — omit to return reactions across all phones your token can access
            });

            async function fetchReactions() {
              const response = await client.reaction.getReactions();

              console.log(response);
            }

            fetchReactions();
        - lang: cURL
          label: cURL
          source: >-
            # x-phone is optional for this endpoint — omit it to return
            reactions across all phones your token can access

            curl -X GET \
              https://api.periskope.app/v1/reaction \
              -H 'Authorization: Bearer <token>' \
              -H 'Content-Type: application/json' \
              -H 'x-phone: YOUR_PHONE_NUMBER' \
              -d '{
                "chat_id": "919537851844@c.us",
                "message_id": "true_919537851844@c.us_3EB0ABB7C973860FC19EBE05FD934141CCEC2D8B",
                "start_time": "2025-08-10 10:00:00",
                "end_time": "2025-08-15 10:00:00",
                "offset": "0",
                "limit": "1000"
            }'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````