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

# Download media from a newsletter message

> Fetches one newsletter message directly from WhatsApp by server ID,
downloads its media to the server's statics directory, and returns the
saved file metadata and public URL. Supported media types are images,
videos, video notes, audio, documents, and stickers.




## OpenAPI

````yaml /openapi.yml get /newsletter/messages/{server_id}/download
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:
  /newsletter/messages/{server_id}/download:
    get:
      tags:
        - newsletter
      summary: Download media from a newsletter message
      description: |
        Fetches one newsletter message directly from WhatsApp by server ID,
        downloads its media to the server's statics directory, and returns the
        saved file metadata and public URL. Supported media types are images,
        videos, video notes, audio, documents, and stickers.
      operationId: downloadNewsletterMessageMedia
      parameters:
        - $ref: '#/components/parameters/DeviceIdHeader'
        - name: server_id
          in: path
          required: true
          description: Newsletter message server ID returned by GET /newsletter/messages
          schema:
            type: integer
            minimum: 1
          example: 8872
        - name: newsletter_id
          in: query
          required: true
          description: Newsletter JID containing the message
          schema:
            type: string
          example: 120363024512399999@newsletter
      responses:
        '200':
          description: Media downloaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsletterMediaDownloadResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBadRequest'
        '500':
          description: Message lookup or media download failed
          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:
    NewsletterMediaDownloadResponse:
      type: object
      properties:
        status:
          type: integer
          example: 200
        code:
          type: string
          example: SUCCESS
        message:
          type: string
          example: Media downloaded successfully
        results:
          type: object
          properties:
            server_id:
              type: integer
              example: 8872
            message_id:
              type: string
              example: ACBD7F85529AAD63FAF376F622351D14
            status:
              type: string
              example: >-
                Media downloaded successfully to
                statics/media/120363024512399999/2026-08-28/image.jpg
            media_type:
              type: string
              enum:
                - image
                - video
                - video_note
                - audio
                - document
                - sticker
              example: image
            mime_type:
              type: string
              example: image/jpeg
            filename:
              type: string
              example: image.jpg
            file_path:
              type: string
              description: Local server path where the downloaded media was saved
              example: statics/media/120363024512399999/2026-08-28/image.jpg
            file_url:
              type: string
              description: Public URL for the saved media file
              example: >-
                http://localhost:3000/statics/media/120363024512399999/2026-08-28/image.jpg
            file_size:
              type: integer
              format: int64
              example: 524288
    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.