Send Bulk WhatsApp Broadcast

Send personalized WhatsApp broadcast campaigns to multiple mobile numbers simultaneously.

Last updated · Markdown version

Endpoint

HTTP
POST /api/v2/messages/whatsapp/bulk

Authorization

HTTP
Authorization: Bearer bk_live_8n6JQv3K1h9Lp0Md
Content-Type: application/json

Request Parameters

ParameterRequiredTypeDescription
mobilesYesarray of stringsList of recipient phone numbers in international format (e.g. ["254700000001", "254711111111"]).
messageYesstringBroadcast message content. You can include placeholders in {tag} syntax (e.g. {first_name}, {account}, {amount}).
custom_dataNoarray of objectsOptional per-recipient data matching the order of the mobiles array. Each key replaces {key} in the message.

Request Examples

1. Simple Broadcast (Identical Message)

cURL / Bash
curl -X POST "https://api.bulkitsms.com/api/v2/messages/whatsapp/bulk" \
  -H "Authorization: Bearer bk_live_8n6JQv3K1h9Lp0Md" \
  -H "Content-Type: application/json" \
  -d '{
    "mobiles": ["254700000001", "254711111111", "254722222222"],
    "message": "Dear customer, our offices will be closed on Monday for the public holiday."
  }'

2. Personalized Broadcast with Custom Data

cURL / Bash
curl -X POST "https://api.bulkitsms.com/api/v2/messages/whatsapp/bulk" \
  -H "Authorization: Bearer bk_live_8n6JQv3K1h9Lp0Md" \
  -H "Content-Type: application/json" \
  -d '{
    "mobiles": [
      "254700000001",
      "254711111111"
    ],
    "message": "Hello {first_name}, your policy #{policy_no} renewal of KES {amount} is due on {due_date}.",
    "custom_data": [
      {
        "first_name": "Alice",
        "policy_no": "POL-9921",
        "amount": "3,500",
        "due_date": "25th Sep"
      },
      {
        "first_name": "Bob",
        "policy_no": "POL-4410",
        "amount": "5,200",
        "due_date": "28th Sep"
      }
    ]
  }'

Success Response Example

JSON
{
  "status": "success",
  "message": "Bulk WhatsApp messages queued for delivery",
  "data": {
    "total_recipients": 2,
    "cost_per_message": 0.03,
    "total_cost": 0.06,
    "currency": "KES"
  }
}

How Delivery Works

  1. Bulkit calculates the total required credits and checks your wallet balance.
  2. The broadcast job queues asynchronously in the background.
  3. Bulkit renders each personalized message dynamically and dispatches them through your paired WhatsApp session.
  4. As messages are delivered and read by recipients, delivery receipts are forwarded to your configured DLR Webhook URL.