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

# Send Sticker

> Send sticker with automatic conversion to WebP format



## OpenAPI

````yaml /openapi.yml post /send/sticker
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/sticker:
    post:
      tags:
        - send
      summary: Send Sticker
      description: Send sticker with automatic conversion to WebP format
      operationId: sendSticker
      parameters:
        - $ref: '#/components/parameters/DeviceIdHeader'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              allOf:
                - $ref: '#/components/schemas/ScheduleOptions'
              properties:
                phone:
                  type: string
                  example: 6289685028129@s.whatsapp.net
                  description: Phone number with country code
                sticker:
                  type: string
                  format: binary
                  description: Sticker image file (jpg/jpeg/png/webp/gif)
                sticker_url:
                  type: string
                  example: https://example.com/sticker.png
                  description: URL of sticker image to send
                duration:
                  type: integer
                  example: 86400
                  description: >-
                    Disappearing message duration in seconds. Allowed values: 0
                    (no expiry), 86400 (24h), 604800 (7d), 7776000 (90d).
                reply_message_id:
                  type: string
                  example: 3EB089B9D6ADD58153C561
                  description: Message ID that you want reply
                is_forwarded:
                  type: boolean
                  example: false
                  description: Whether this is a forwarded sticker
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendResponse'
        '400':
          description: Bad Request
          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:
    ScheduleOptions:
      type: object
      description: |
        Optional fields that schedule the message instead of sending it now. Set
        `scheduled_at` to schedule; without it the message is sent immediately.
        A background worker sends it at the scheduled time, retrying while the
        device is offline or not logged in. Uploaded media is stored on the
        server until the schedule finishes.
        In multipart/form-data bodies, send `weekdays` as a repeated field
        (`weekdays=1`, `weekdays=3`).
      properties:
        scheduled_at:
          type: string
          format: date-time
          example: '2026-10-01T09:00:00+07:00'
          description: >-
            RFC3339 time of the first send. Must be in the future. The first
            send always happens at this time, even if it falls outside
            `weekdays` or `day_of_month`; those set the repeats that follow.
        timezone:
          type: string
          example: Asia/Jakarta
          description: >-
            IANA timezone used to compute recurring runs. Required when
            scheduled_at is set.
        recurrence:
          type: string
          enum:
            - once
            - daily
            - weekly
            - monthly
          default: once
          description: How often to repeat the send
        weekdays:
          type: array
          items:
            type: integer
            minimum: 0
            maximum: 6
          uniqueItems: true
          example:
            - 1
            - 3
            - 5
          description: >-
            Days to send on, 0=Sunday through 6=Saturday. Required when
            recurrence is weekly.
        day_of_month:
          type: integer
          minimum: 1
          maximum: 31
          example: 15
          description: >-
            Day of the month to send on, clamped to the month's last day.
            Required when recurrence is monthly.
        end_at:
          type: string
          format: date-time
          example: '2026-12-31T23:59:59+07:00'
          description: >-
            Recurring only. No sends happen after this time; must be after
            scheduled_at.
        occurrence_limit:
          type: integer
          minimum: 1
          example: 10
          description: Recurring only. Stop after this many sends.
    SendResponse:
      type: object
      properties:
        code:
          type: string
          example: SUCCESS
        message:
          type: string
          example: Success
        results:
          type: object
          properties:
            message_id:
              type: string
              example: 3EB0B430B6F8F1D0E053AC120E0A9E5C
              description: Omitted for scheduled sends
            status:
              type: string
              example: <feature> success ....
            schedule_id:
              type: string
              example: 0b5c3a8e-7f5d-4d6f-9d1e-2f8c1a7b9e10
              description: Scheduled sends only. Use it with the /send/schedules routes.
            scheduled_at:
              type: string
              format: date-time
              example: '2026-10-01T02:00:00Z'
              description: Scheduled sends only. The first send time.
            next_run_at:
              type: string
              format: date-time
              example: '2026-10-01T02:00:00Z'
              description: Scheduled sends only. When the worker sends next.
    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
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````

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