> ## 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.

# List All Message Queues

> This endpoint returns the jobs in the message queue. Optionally filter by `queue_id` or `broadcast_id`

**Note:** To check the status of a broadcast, pass the `broadcast_id` in the request body. This will return all jobs associated with that broadcast




## OpenAPI

````yaml POST /message/queues
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:
  /message/queues:
    post:
      tags:
        - message
      summary: List Queue Jobs
      description: >
        This endpoint returns the jobs in the message queue. Optionally filter
        by `queue_id` or `broadcast_id`


        **Note:** To check the status of a broadcast, pass the `broadcast_id` in
        the request body. This will return all jobs associated with that
        broadcast
      operationId: listQueueJobs
      parameters:
        - name: x-phone
          in: header
          schema:
            type: string
            example: '918527184400'
          description: >-
            Please provide the number of the phone you want to call with this
            API in the header. The number must be in country code + number
            format without any characters or spaces, e.g. 919876543210;
            Alternatively, provide the phone_id (phone-xxxxxxxxxxxx) in the
            header
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                queue_id:
                  type: string
                  description: Filter by a specific message queue
                  example: 5df4cb6d-9f2b-46b6-936e-8e6f4b1a5400
                broadcast_id:
                  type: string
                  description: >-
                    Filter by broadcast ID to return all jobs belonging to this
                    broadcast
                  example: b25192d5-2370-4a69-b844-aae5e2bfae92
            examples:
              Filter by queue_id:
                value:
                  queue_id: 5df4cb6d-9f2b-46b6-936e-8e6f4b1a5400
              Filter by broadcast_id:
                value:
                  broadcast_id: b25192d5-2370-4a69-b844-aae5e2bfae92
              List all jobs:
                value: {}
      responses:
        '200':
          description: 200 OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
                example: '*'
            Connection:
              schema:
                type: string
                example: keep-alive
            X-Powered-By:
              schema:
                type: string
                example: Express
            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: array
                description: The response is a JSON array of message job objects
                items:
                  type: object
                  properties:
                    queue_id:
                      type: string
                      description: Unique identifier for the message queue
                      example: 5df4cb6d-9f2b-46b6-936e-8e6f4b1a5400
                    unique_id:
                      type: string
                      description: >-
                        Provisional message identifier, useful for tracking via
                        /message/{unique_id}/status
                      example: 3EB0A0A8F90A01259C81A3
                    message_id:
                      type: string
                      description: >-
                        A unique identifier for the message, containing
                        information about the chat, sender, and message details.
                      example: true_8824248940@c.us_3EB0A0A8F90A01259C81A3
                    chat_id:
                      type: string
                      description: >-
                        The recipient's chat ID, the unique identifier of the
                        WhatsApp chat
                      example: 8824248940@c.us
                    performed_by:
                      type: string
                      description: Identifier of who initiated the message (e.g. api, user)
                      example: api
                    status:
                      type: string
                      description: >-
                        Current status of the job (queued, sending, sent,
                        failed, scheduled, pending, delivered, read, played)
                      enum:
                        - queued
                        - sending
                        - sent
                        - failed
                        - scheduled
                      example: sent
                    status_description:
                      type: string
                      description: Description of the current status of the message
                      example: Successfully submitted.
                    message:
                      type: object
                      description: The message content that was sent
                      properties:
                        body:
                          type: string
                          description: The text body of the message
                          example: Hello
                        type:
                          type: string
                          description: The type of the message (e.g. chat, image, video)
                          example: chat
                    timeline:
                      type: object
                      description: Timestamps for key events in the message lifecycle
                      properties:
                        queued_at:
                          type: string
                          description: >-
                            Timestamp when the message job was added to the
                            queue
                          format: date-time
                          example: '2026-04-01T14:23:21.279Z'
                        sent_at:
                          type: string
                          description: Timestamp when the message was sent to WhatsApp
                          format: date-time
                          example: '2026-04-01T14:23:24.111Z'
                    attempts:
                      type: integer
                      description: Number of send attempts made
                      example: 1
              examples:
                200 OK:
                  value:
                    - queue_id: 5df4cb6d-9f2b-46b6-936e-8e6f4b1a5400
                      unique_id: 3EB0A0A8F90A01259C81A3
                      message_id: true_8824248940@c.us_3EB0A0A8F90A01259C81A3
                      chat_id: 8824248940@c.us
                      performed_by: api
                      status: sent
                      status_description: Successfully submitted.
                      message:
                        body: Hello
                        type: chat
                      timeline:
                        queued_at: '2026-04-01T14:23:21.279Z'
                        sent_at: '2026-04-01T14:23:24.111Z'
                      attempts: 1
      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', // e.g., '919876543210'
            });

            async function listQueueJobs() {
              // Filter by broadcast_id to track all jobs for a broadcast
              const jobs = await client.message.getMessageQueues({
                broadcast_id: 'b25192d5-2370-4a69-b844-aae5e2bfae92'
              });

              console.log(jobs);
            }

            listQueueJobs();
        - lang: cURL
          label: cURL
          source: |-
            curl -X POST \
              https://api.periskope.app/v1/message/queues \
              -H 'Authorization: Bearer <token>' \
              -H 'Content-Type: application/json' \
              -H 'x-phone: YOUR_PHONE_NUMBER' \
              -d '{
                "broadcast_id": "b25192d5-2370-4a69-b844-aae5e2bfae92"
              }'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````