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

# List scheduled sends

> Lists the device's scheduled sends. Upcoming schedules come first (soonest next run first), followed by finished ones, newest first.



## OpenAPI

````yaml /openapi.yml get /send/schedules
openapi: 3.0.0
info:
  title: WhatsApp API MultiDevice
  version: 9.7.0
  description: |
    This API is used for sending whatsapp via API.

    The web dashboard is a separate project (gowa-ui); the server downloads its
    latest release asset and serves it at `/` (or returns a JSON banner when
    APP_UI_ENABLED=false).

    Device scoping:
    - Send `X-Device-Id` on all device-scoped REST calls.
    - WebSocket: connect to `/ws?device_id=<id>`.
    - WebSocket auth (when basic auth is enabled): browsers cannot set an
      Authorization header on WebSocket connections, so also pass
      `&authorization=<base64(user:pass)>` in the query string. Use TLS in
      production since the credential is visible in the URL.
servers:
  - url: http://localhost:3000
security:
  - basicAuth: []
tags:
  - name: app
    description: Initial Connection to Whatsapp server
  - name: device
    description: Device management for multi-device support
  - name: user
    description: Getting information
  - name: send
    description: Send Message (Text/Image/File/Video).
  - name: message
    description: Message manipulation (revoke/react/update).
  - name: call
    description: Call management (reject incoming calls)
  - name: chat
    description: Chat conversations and messaging
  - name: group
    description: Group setting
  - name: newsletter
    description: newsletter setting
  - name: chatwoot
    description: Chatwoot integration for customer support
paths:
  /send/schedules:
    get:
      tags:
        - send
      summary: List scheduled sends
      description: >-
        Lists the device's scheduled sends. Upcoming schedules come first
        (soonest next run first), followed by finished ones, newest first.
      operationId: listScheduledSends
      parameters:
        - $ref: '#/components/parameters/DeviceIdHeader'
        - name: status
          in: query
          schema:
            type: string
            enum:
              - active
              - running
              - paused
              - completed
              - failed
              - cancelled
          description: Only schedules in this status
        - name: search
          in: query
          schema:
            type: string
          description: Match the recipient or the message text
        - name: message_type
          in: query
          schema:
            type: string
            enum:
              - text
              - image
              - file
              - video
              - audio
              - sticker
              - contact
              - link
              - location
              - poll
              - forward
          description: Only this kind of scheduled send
        - name: limit
          in: query
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 100
          description: Maximum number of schedules to return
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
          description: Number of schedules to skip (for pagination)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleListResponse'
        '400':
          description: >-
            Bad Request (e.g. unknown status or message_type, limit or offset
            out of range)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInternalServer'
components:
  parameters:
    DeviceIdHeader:
      name: X-Device-Id
      in: header
      required: false
      description: >
        Device identifier for multi-device support. Required when multiple
        devices are registered.

        If only one device is registered, it will be used as the default.

        Can also be provided as `device_id` query parameter.
      schema:
        type: string
        example: my-device-id
  schemas:
    ScheduleListResponse:
      type: object
      properties:
        code:
          type: string
          example: SUCCESS
        message:
          type: string
          example: Schedules fetched
        results:
          type: object
          properties:
            data:
              type: array
              items:
                $ref: '#/components/schemas/Schedule'
            pagination:
              type: object
              properties:
                limit:
                  type: integer
                  example: 25
                offset:
                  type: integer
                  example: 0
                total:
                  type: integer
                  example: 3
    ErrorBadRequest:
      type: object
      properties:
        code:
          type: string
          example: 400
          description: HTTP Status Code
        message:
          type: string
          example: field cannot be blank
          description: Detail error message
        results:
          type: object
          example: null
          description: additional data
    ErrorInternalServer:
      type: object
      properties:
        code:
          type: string
          example: INTERNAL_SERVER_ERROR
          description: SYSTEM_CODE_ERROR
        message:
          type: string
          example: you are not loggin
          description: Detail error message
        results:
          type: object
          example: null
          description: additional data
    Schedule:
      type: object
      properties:
        id:
          type: string
          example: 0b5c3a8e-7f5d-4d6f-9d1e-2f8c1a7b9e10
        message_type:
          type: string
          enum:
            - text
            - image
            - file
            - video
            - audio
            - sticker
            - contact
            - link
            - location
            - poll
            - forward
          example: text
        phone:
          type: string
          example: 6289685028129@s.whatsapp.net
        summary:
          type: string
          example: selamat pagi
          description: Short preview of the message
        status:
          type: string
          enum:
            - active
            - running
            - paused
            - completed
            - failed
            - cancelled
          example: active
          description: |
            - `active`: waiting for its next run
            - `running`: claimed by the worker and sending
            - `paused`: held until resumed
            - `completed`: no runs left
            - `failed`: gave up after retries or a validation error
            - `cancelled`: cancelled by the user
        scheduled_at:
          type: string
          format: date-time
          example: '2026-10-01T02:00:00Z'
        next_run_at:
          type: string
          format: date-time
          example: '2026-10-01T02:00:00Z'
          description: Omitted when no run is left
        timezone:
          type: string
          example: Asia/Jakarta
        recurrence:
          type: string
          enum:
            - once
            - daily
            - weekly
            - monthly
          example: once
        weekdays:
          type: array
          items:
            type: integer
          example:
            - 1
            - 3
            - 5
        day_of_month:
          type: integer
          example: 15
        end_at:
          type: string
          format: date-time
        occurrence_limit:
          type: integer
          example: 10
        occurrence_count:
          type: integer
          example: 0
          description: Number of successful sends so far
        attempts:
          type: integer
          example: 0
          description: Failed attempts for the current run
        last_run_at:
          type: string
          format: date-time
        last_message_id:
          type: string
          example: 3EB0B430B6F8F1D0E053AC120E0A9E5C
        last_error:
          type: string
        created_at:
          type: string
          format: date-time
          example: '2026-09-25T08:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-09-25T08:00:00Z'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.