Broadcasts
Launch a template broadcast to a list of recipients.
POST
/api/v1/broadcastsscope: broadcasts:sendThe broadcast and its recipient rows are persisted immediately and the sends fan out in the background, so the call returns fast — poll GET /api/v1/broadcasts/{id} for progress.
Launch
curl -X POST https://app.vyaparping.com/api/v1/broadcasts \
-H "Authorization: Bearer vp_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "July promo",
"template_name": "promo_july",
"template_language": "en_US",
"recipients": [
{ "to": "+14155550123", "params": ["Jane"] },
{ "to": "+14155550124" }
]
}'Recipients are capped at 1,000 per request — split larger sends across multiple calls. Invalid phone numbers are dropped and counted as
rejected.202 Accepted
{
"data": {
"broadcast_id": "…",
"status": "sending",
"total_recipients": 2,
"accepted": 2,
"rejected": 0
}
}Checking status
GET
/api/v1/broadcasts/{id}scope: broadcasts:sendstatus moves sending → sent; the delivered/read counts keep climbing as WhatsApp delivery receipts arrive. Returns 404 for another account's broadcast.