Skip to main content

Messages

Send various types of messages through WhatsApp.

Send Text Message

POST /api/v1/sessions/{session_id}/messages/text

Request Body

{
"to": "628123456789",
"text": "Hello from WA-RS!"
}

Response

{
"message_id": "3EB0ABC123...",
"status": "sent"
}

Example

curl -X POST http://localhost:3000/api/v1/sessions/my-session/messages/text \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to": "628123456789",
"text": "Hello!"
}'

Send Image

POST /api/v1/sessions/{session_id}/messages/image

Request Body

{
"to": "628123456789",
"media": {
"url": "https://example.com/image.jpg"
},
"caption": "Check this out!"
}

Or with base64:

{
"to": "628123456789",
"media": {
"base64": "/9j/4AAQSkZJRg...",
"mimetype": "image/jpeg"
},
"caption": "Check this out!"
}

Send Video

POST /api/v1/sessions/{session_id}/messages/video

Request Body

{
"to": "628123456789",
"media": {
"url": "https://example.com/video.mp4"
},
"caption": "Watch this!"
}

Send Audio

POST /api/v1/sessions/{session_id}/messages/audio

Request Body

{
"to": "628123456789",
"media": {
"url": "https://example.com/audio.mp3"
},
"ptt": true
}
FieldDescription
pttPush-to-talk (voice note) if true

Send Document

POST /api/v1/sessions/{session_id}/messages/document

Request Body

{
"to": "628123456789",
"media": {
"url": "https://example.com/document.pdf"
},
"filename": "report.pdf"
}

Send Sticker

POST /api/v1/sessions/{session_id}/messages/sticker

Request Body

{
"to": "628123456789",
"media": {
"url": "https://example.com/sticker.webp"
}
}

Send Location

POST /api/v1/sessions/{session_id}/messages/location

Request Body

{
"to": "628123456789",
"latitude": -6.2088,
"longitude": 106.8456,
"name": "Jakarta",
"address": "Jakarta, Indonesia"
}

Send Contact

POST /api/v1/sessions/{session_id}/messages/contact

Request Body

{
"to": "628123456789",
"contact": {
"name": "John Doe",
"phones": [
{
"phone": "+628123456789",
"type": "CELL"
}
]
}
}

Edit Message

POST /api/v1/sessions/{session_id}/messages/edit

Request Body

{
"message_id": "3EB0ABC123...",
"chat": "628123456789",
"text": "Edited message text"
}

Send Reaction

POST /api/v1/sessions/{session_id}/messages/react

Request Body

{
"message_id": "3EB0ABC123...",
"chat": "628123456789",
"emoji": "👍"
}

To remove reaction, send empty emoji:

{
"message_id": "3EB0ABC123...",
"chat": "628123456789",
"emoji": ""
}

Media Data Format

All media endpoints accept either URL or base64:

URL Format

{
"media": {
"url": "https://example.com/file.jpg"
}
}

Base64 Format

{
"media": {
"base64": "base64-encoded-data...",
"mimetype": "image/jpeg"
}
}

Supported MIME Types

TypeMIME Types
Imageimage/jpeg, image/png, image/webp
Videovideo/mp4, video/3gpp
Audioaudio/mpeg, audio/ogg, audio/wav
DocumentAny
Stickerimage/webp