Skip to content

Bulk WhatsApp Messaging

POST /v1/whatsapp/send-bulk

Send a message to multiple recipients in a single API call. Bulk sends are processed asynchronously via a queue and return a batch_id for tracking.

Authentication

HeaderTypeRequiredDescription
AuthorizationstringYesBearer sk_live_YOUR_API_KEY

Request Body

ParameterTypeRequiredDescription
session_idstringYesThe session to send messages from.
recipientsarrayYesArray of E.164 phone number strings (e.g., ["+447700900000", "+14155552671"]).
typestringYesMessage type: text, image, document, template.
textobjectNo*Required if type is text. Contains body string.
templateobjectNo*Required if type is template.
delay_msintegerNoPer-message delay in milliseconds (default: 1500, min: 500).
bash
curl -X POST https://sendapi.co/v1/whatsapp/send-bulk \
  -H "Authorization: Bearer sk_live_123456789" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "sess_01H8BKF...Z2T",
    "recipients": ["+447700900000", "+14155552671", "+250788000000"],
    "type": "text",
    "text": { "body": "Your order has shipped! Track it at sendapi.co/track" }
  }'
javascript
const batch = await client.whatsapp.sendBulk({
  session_id: 'sess_01H8BKF...Z2T',
  recipients: ['+447700900000', '+14155552671', '+250788000000'],
  type: 'text',
  text: { body: 'Your order has shipped! Track it at sendapi.co/track' }
});

console.log(batch.batch_id); // Use this to track progress
python
batch = client.whatsapp.send_bulk(
    session_id="sess_01H8BKF...Z2T",
    recipients=["+447700900000", "+14155552671", "+250788000000"],
    type="text",
    text={"body": "Your order has shipped!"}
)

Response

json
{
  "batch_id": "batch_01H9...XQ",
  "status": "queued",
  "total": 3,
  "queued_at": "2026-03-09T14:30:00Z"
}

Tracking Batch Progress

Use the batch_id to monitor delivery progress by checking your webhook events. Each message in the batch fires individual message.sent, message.delivered, and message.failed webhook events.

Rate Limits

Bulk sends enforce anti-ban protection: messages are sent with a minimum delay between recipients. The API automatically respects session-level rate limits of 30 messages/minute.

Anti-Spam Limits

PlanMax recipients per batchMax batches per day
Starter1005
Growth1,00025
Business10,000Unlimited

Released under the MIT License.