WaConnect|API Documentation Dashboard Swagger UI

Media Messages

Send images, videos, audio files, documents, and stickers via WhatsApp. Media can be provided as a public URL or a previously uploaded Media ID.

Endpoints

TypeEndpointSupported FormatsMax Size
ImagePOST /api/messages/imageJPEG, PNG5 MB
VideoPOST /api/messages/videoMP4, 3GPP16 MB
AudioPOST /api/messages/audioMP3, OGG, AMR, AAC16 MB
DocumentPOST /api/messages/documentPDF, DOC, XLSX, etc.100 MB
StickerPOST /api/messages/stickerWebP (static/animated)500 KB / 100 KB

Request Body

FieldTypeRequiredDescription
tostringYesRecipient phone number with country code
mediaUrlstringYes*Public URL of the media file
mediaIdstringYes*Meta Media ID (from a previous upload)
captionstringNoCaption text (images, videos, documents only)
filenamestringNoDisplay filename (documents only)
phoneNumberIdstringNoSend from a specific number

* Provide either mediaUrl or mediaId, not both.

Image Example

POST /api/messages/image HTTP/1.1
Host: app.waconnect.me
X-API-Key: wba_YOUR_API_KEY_HERE
Content-Type: application/json

{
  "to": "15551234567",
  "mediaUrl": "https://example.com/product-photo.jpg",
  "caption": "Check out our new product!"
}HTTP

Document Example

{
  "to": "15551234567",
  "mediaUrl": "https://example.com/invoice-2026-001.pdf",
  "caption": "Your invoice for April 2026",
  "filename": "Invoice-2026-001.pdf"
}JSON

C# Example (Image)

var payload = new
{
    to = "15551234567",
    mediaUrl = "https://example.com/product-photo.jpg",
    caption = "Check out our new product!"
};

var json = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");

// POST to /api/messages/image
var response = await client.PostAsync(
    "https://app.waconnect.me/api/messages/image", content);C#

C# Example (Document)

var payload = new
{
    to = "15551234567",
    mediaUrl = "https://example.com/invoice.pdf",
    caption = "Your invoice for April 2026",
    filename = "Invoice-2026-001.pdf"
};

var json = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");

// POST to /api/messages/document
var response = await client.PostAsync(
    "https://app.waconnect.me/api/messages/document", content);C#

Media URLs must be publicly accessible. WhatsApp servers will download the file directly from the URL you provide. If your files are behind authentication, upload them to a public CDN or use the Meta Media Upload API first.