Skip to main content

10 - Messaging

Overview

Send and receive all types of WhatsApp messages.


Message Types

TypeEndpointDescription
TextPOST /messages/textPlain text messages
ImagePOST /messages/imageImages with caption
VideoPOST /messages/videoVideos with caption
AudioPOST /messages/audioVoice/audio files
DocumentPOST /messages/documentFiles/PDFs
LocationPOST /messages/locationMap locations
ContactPOST /messages/contactContact cards
PollPOST /messages/pollInteractive polls

Send Text

curl -X POST http://localhost:3001/api/messages/text \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"profileId": "profile-123",
"to": "628123456789",
"text": "Hello from MultiWA!"
}'

Send Image

curl -X POST http://localhost:3001/api/messages/image \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"profileId": "profile-123",
"to": "628123456789",
"url": "https://example.com/image.jpg",
"caption": "Check this out!"
}'

Send Poll

curl -X POST http://localhost:3001/api/messages/poll \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"profileId": "profile-123",
"to": "628123456789",
"question": "What is your favorite color?",
"options": ["Red", "Blue", "Green"],
"allowMultiple": false
}'

Phone Number Format

Both formats are accepted:

FormatExample
Without suffix628123456789
With suffix628123456789@c.us

For groups, use the full JID: 123456789-123456@g.us


Response

{
"success": true,
"data": {
"messageId": "true_628xxx_3EB0ABC",
"status": "sent",
"timestamp": "2026-02-05T10:00:00.000Z"
}
}

Rate Limits

  • Per profile: 30 messages/minute (adjustable)
  • Bulk API: Use /bulk/send for high-volume

← Webhook Events · Documentation Index · Groups →