Skip to main content

Broadcast

Send Broadcast​

Send a template message to multiple phone numbers in a single API call. Messages are queued and delivered asynchronously.

POST /api/v1/public/broadcast/send

Parameters​

ParameterTypeRequiredDescription
template_namestringyesApproved WhatsApp template name
languagestringyesTemplate language code (e.g., "id", "en_US")
phone_numbersstring[]yesArray of recipient phone numbers in E.164 format
whatsapp_phone_number_idstringnoWhatsApp phone number ID to send from. If omitted, uses primary number.
componentsobjectnoTemplate body variable values as a flat object: variable number → value, e.g. { "1": "John", "2": "INV-1" }. One key per {{n}} placeholder in the template body.
warning

Important: The template must be approved by Meta before use. All recipients receive the same template with the same variable values. Note: components here is a flat object (e.g. { "1": "50%" }) — this differs from the array format used by Send Message.

Example Request​

curl -X POST "https://chat.api.co.id/api/v1/public/broadcast/send" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_name": "promo_sale",
"language": "id",
"phone_numbers": ["+628123456789", "+628987654321"],
"whatsapp_phone_number_id": "clyyy9876543210",
"components": { "1": "50%" }
}'

Response​

{
"success": true,
"data": {
"job_id": "bcast_abc123",
"template_name": "promo_sale",
"total_recipients": 2,
"status": "PENDING",
"created_at": "2026-04-03T10:00:00.000Z"
}
}
info

Use GET /api/v1/public/broadcast/jobs/:jobId to check the delivery status of your broadcast.

Broadcast Jobs​

List, view, and cancel broadcast jobs. Track the delivery status and progress of your broadcasts.

GET /api/v1/public/broadcast/jobs

GET /api/v1/public/broadcast/jobs/:id

POST /api/v1/public/broadcast/jobs/:id/cancel

Query Parameters (List)​

ParameterTypeRequiredDescription
limitnumbernoNumber of jobs to return (default 20)
offsetnumbernoNumber of jobs to skip for pagination (default 0)
statusstringnoFilter by status: "queued", "processing", "completed", "failed", "cancelled"

List Broadcast Jobs​

curl -X GET "https://chat.api.co.id/api/v1/public/broadcast/jobs?limit=20&status=completed" \
-H "Authorization: Bearer YOUR_API_KEY"

List Jobs Response​

{
"success": true,
"data": [
{
"id": "bcast_abc123",
"template_name": "promo_sale",
"total_recipients": 150,
"sent_count": 150,
"failed_count": 3,
"status": "completed",
"created_at": "2026-04-01T08:00:00.000Z",
"completed_at": "2026-04-01T08:05:30.000Z"
},
{
"id": "bcast_def456",
"template_name": "welcome_message",
"total_recipients": 50,
"sent_count": 25,
"failed_count": 0,
"status": "processing",
"created_at": "2026-04-03T10:00:00.000Z",
"completed_at": null
}
],
"pagination": {
"total": 42,
"limit": 20,
"offset": 0
}
}

Get Job Detail​

curl -X GET "https://chat.api.co.id/api/v1/public/broadcast/jobs/bcast_abc123" \
-H "Authorization: Bearer YOUR_API_KEY"

Job Detail Response​

{
"success": true,
"data": {
"id": "bcast_abc123",
"template_name": "promo_sale",
"language": "id",
"total_recipients": 150,
"sent_count": 150,
"failed_count": 3,
"status": "completed",
"whatsapp_phone_number_id": "clyyy9876543210",
"created_at": "2026-04-01T08:00:00.000Z",
"completed_at": "2026-04-01T08:05:30.000Z"
}
}

Cancel Broadcast Job​

curl -X POST "https://chat.api.co.id/api/v1/public/broadcast/jobs/bcast_def456/cancel" \
-H "Authorization: Bearer YOUR_API_KEY"

Cancel Response​

{
"success": true,
"data": {
"id": "bcast_def456",
"status": "cancelled",
"total_recipients": 50,
"sent_count": 25,
"failed_count": 0,
"cancelled_at": "2026-04-03T10:05:00.000Z"
}
}
warning

Note: Only jobs with status queued or processing can be cancelled. Messages already sent cannot be recalled.

Try it out​

tip

Press Try it and paste your API key (kc_live_...) into the API key (Bearer) field. Get the key from API Keys. Requests run against your live account, so endpoints that send, create, or delete act on real data.

  • POST/api/v1/public/broadcast/sendSend Broadcast
  • GET/api/v1/public/broadcast/jobsList Broadcast Jobs
  • GET/api/v1/public/broadcast/jobs/{id}Get Job Detail
  • POST/api/v1/public/broadcast/jobs/{id}/cancelCancel Broadcast Job
Was this page helpful?