Send bulk messages
Fan out an approved template to many recipients with queueing, delivery tracking, and retry-safe execution.
Endpoints
/internal/broadcastsDashboard Onlyowner / admin / developerSend an immediate broadcast. Choose audience='all' for every opted-in contact or supply explicit phones.
Requires an authenticated dashboard session — your wac_live_ API key cannot call this endpoint. Use it from inside the dashboard, or wrap it behind your own server.
/internal/broadcasts/:idDashboard Onlyowner / admin / developerRemove the dashboard record for a broadcast (does not unsend messages already delivered to Meta).
Requires an authenticated dashboard session — your wac_live_ API key cannot call this endpoint. Use it from inside the dashboard, or wrap it behind your own server.
Broadcast to all opted-in contacts
POST /internal/broadcasts
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"name": "Spring Promo",
"template": "woo_discount_offer",
"language": "en_US",
"audienceAll": true,
"variableValues": { "1": "20% OFF" }
}Broadcast to specific phones
Phones must be in +<digits> form and must match the phoneE164 of an existing contact in your workspace. Unknown / opted-out phones are skipped.
POST /internal/broadcasts
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"name": "VIP heads-up",
"template": "early_access",
"language": "en_US",
"audienceAll": false,
"recipientPhones": ["+254700000000", "+254700112233"]
}Status lifecycle
- SENDING — broadcast accepted; messages are being fanned out.
- SENT — all recipients have been queued with Meta. Final delivery state comes through webhooks.
- SKIPPED — no eligible recipients (everyone opted-out, missing phones, or no contact match).
- FAILED — the broadcast couldn't start (missing template, plan cap, no WABA configured).