Send WhatsApp Message
Send a text message to a single WhatsApp recipient using API v2.
Last updated · Markdown version
Endpoint
HTTP
POST /api/v2/messages/whatsappAuthorization
Header authorization is recommended for all requests:
HTTP
Authorization: Bearer bk_live_8n6JQv3K1h9Lp0Md
Content-Type: application/jsonRequest Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
recipient | Yes | string | Destination phone number in international format without + (e.g. 254700000001). Aliases: mobile, phone. |
message | Yes | string | Plain text message body. Standard WhatsApp markdown is supported (*bold*, _italics_, ~strikethrough~, \``code```). Aliases: text`. |
Request Examples
cURL / Bash
curl -X POST "https://api.bulkitsms.com/api/v2/messages/whatsapp" \
-H "Authorization: Bearer bk_live_8n6JQv3K1h9Lp0Md" \
-H "Content-Type: application/json" \
-d '{
"recipient": "254700000001",
"message": "Hello! Your payment of KES 1,500 has been received successfully. Receipt: *#REC-8421*"
}'Success Response Example
JSON
{
"status": "success",
"message": "WhatsApp message sent successfully",
"data": {
"id": "7b8f844a-f5e2-4144-84c4-f655e88b2a1a",
"message_id": "3EB0C34B8F56D254",
"recipient": "254700000001",
"chat_jid": "254700000001@s.whatsapp.net",
"text": "Hello! Your payment of KES 1,500 has been received successfully. Receipt: *#REC-8421*",
"media_type": "text",
"media_url": "",
"file_name": "",
"file_size": 0,
"mime_type": "",
"cost": 0.03,
"currency": "KES",
"status": "sent",
"timestamp": "2026-09-19T06:30:00Z"
}
}Error Responses
WhatsApp Device Disconnected
If your WhatsApp account is not paired or disconnected in the dashboard:
JSON
{
"status": "error",
"message": "WhatsApp client is not connected. Please scan QR code in settings to reconnect."
}Insufficient Balance
JSON
{
"status": "error",
"message": "Insufficient balance"
}Missing Recipient or Message
JSON
{
"status": "error",
"message": "recipient or mobile number is required"
}