API Documentation
WA Platform exposes an HTTP API for sending WhatsApp messages and reading device status. Authenticate with your device API key from the dashboard.
Authentication
Every request (except /health) requires your device API key.
Create a device in the panel and copy the key from the device screen.
| Header | Type | Description |
|---|---|---|
Authorization |
string | Bearer API_key — 40-character hex key from the device page |
Authorization: Bearer API_key
POSTSend Simple Text Message
Send a text message to a WhatsApp number (international format) or a group.
POST /api/send-message
Authorization: Bearer API_key
Content-Type: application/json
{
"phone": "9665XXXXXXXX",
"message": "Hello from WA Platform",
"isGroup": false
}
| Parameter | Required | Description |
|---|---|---|
phone | Yes | Recipient phone (international) or group id when isGroup is true |
message | Yes | Text body |
isGroup | No | Set true when sending to a group (appends @g.us if needed) |
POSTSend Media
Send an image or document by public URL.
POST /api/send-media
Authorization: Bearer API_key
Content-Type: application/json
{
"phone": "9665XXXXXXXX",
"type": "document",
"url": "https://example.com/file.pdf",
"caption": "Invoice attached",
"fileName": "invoice.pdf",
"isGroup": false
}
| Parameter | Required | Description |
|---|---|---|
phone | Yes | Recipient phone or group id |
type | Yes | image or document |
url | Yes | Public http(s) media URL |
caption | No | Optional caption |
fileName | No | Suggested file name for documents |
isGroup | No | Set true for groups |
GETDevice Info
Connection status, linked phone, and remaining message quota.
GET /api/device/info Authorization: Bearer API_key
GETDevice Scan QR
Poll QR status for a device while connecting WhatsApp. Use the panel scan page or the scan endpoint.
GET /scanqr/{api-key}
{
"status": true,
"message": "qr",
"id": "deviceId",
"src": "data:image/png;base64,..."
}
Possible message values: qr, connecting, ready, or an error string.
Pass ?reset=1 to force a new QR session.
(Bearer alternative: GET /api/device/scan.)
Webhooks
Configure a webhook URL on the device to receive inbound messages (text, image, document, video, audio, location, groups).
POST https://your-server.com/webhook
Content-Type: application/json
{
"event": "message.received",
"deviceId": "your-device-id",
"timestamp": "2026-07-14T12:00:00.000Z",
"isGroup": false,
"groupId": null,
"message": {
"id": "wa-message-id",
"from": "9665XXXXXXXX",
"from_jid": "9665XXXXXXXX@s.whatsapp.net",
"from_name": "Customer",
"type": "text",
"text": "Customer reply",
"isGroup": false,
"groupId": null
}
}
| Field | Description |
|---|---|
deviceId | Source device id that received the message |
isGroup | true when the message is from a group |
groupId | Group JID (...@g.us) when isGroup is true; otherwise null |
message.from | Sender phone (in groups: the participant, not the group) |
message.type | text, image, document, video, audio, location, … |
message.text | Body text or caption when available |
Need a live token?
Register, create a device, then copy the API key from the device details page.