Skip to main content
WaGo media endpoints generally accept base64 data URLs or direct URLs, depending on the endpoint.

Base64 data URLs

Many media endpoints expect a data URL:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...
Common prefixes:
MediaPrefix
JPEG imagedata:image/jpeg;base64,
PNG imagedata:image/png;base64,
MP4 videodata:video/mp4;base64,
PDF documentdata:application/pdf;base64,
OGG/Opus audiodata:audio/ogg;base64,

Direct URLs

POST /send/mediaurl downloads media from a URL and sends it. The server must be able to reach the URL. If the URL is private, sign it or proxy it through your backend.

Local files

Call playback uses a file path on the WaGo server:
{
  "CallID": "call-id",
  "AudioFile": "/opt/wago/audio/intro.wav"
}
That path is not a browser path. It must exist on the machine where the WaGo binary is running.

Downloading received media

Media download endpoints reconstruct media from webhook metadata:
  • POST /message/download/image
  • POST /message/download/video
  • POST /message/download/document
  • POST /message/download/audio
  • POST /message/download/sticker
Use the media fields from the webhook message payload: url, directPath, mediaKey, mimetype, fileEncSHA256, fileSHA256, and fileLength.

Size and timeout advice

Large media uploads can fail through reverse proxies before WaGo sees them. In production, set upload limits in your proxy and app server to match your product limits. For browser apps, upload media to your backend first, then call WaGo with a direct URL or a backend-generated payload.