Skip to main content

Limits

The HTTP request body limit equals the video limit (100 MB), so no upload can exceed it. Query the live values with GET /app/info (max_image_size, max_file_size, max_video_size). These limits are compiled-in defaults; there is no environment variable for them.

Two ways to provide media

Every media endpoint accepts either a multipart file or a URL that GOWA fetches server-side:
Send one or the other, not both. A URL must be reachable from the GOWA server.

Processing

GOWA needs FFmpeg and libwebp on the host (both are in the Docker image). /send/file sends documents without conversion.

Incoming media

With WHATSAPP_AUTO_DOWNLOAD_MEDIA=true (default), GOWA downloads media from incoming messages to statics/media/ and puts the relative path in the webhook payload:
Fetch it at http://<host>:3000/statics/media/<file>. Set WHATSAPP_IGNORE_STATUS_MEDIA=true to skip media from status updates. With auto-download off, the payload carries a WhatsApp CDN URL instead. Download through GOWA, which decrypts the file:
WhatsApp keeps media on its servers for a limited time (roughly two weeks). Download what you need promptly.

Disk usage

statics/media/ grows without limit; GOWA does not prune it. Clean it with a scheduled job, for example:
Remember that /statics is served without Basic Auth.

Troubleshooting