/messages endpoint lets you pack up to 10 message objects, each with up to 10 recipients, into a single API call — that’s up to 100 recipient deliveries per request. This is the most efficient way to run a campaign, send a batch of transactional notifications, or combine SMS and Viber sends in one round trip.
When to use batch sending
- Campaigns — send promotional content to a list of subscribers in as few API calls as possible.
- Group notifications — alert a team, a class, or a customer segment with a single request.
- Mixed-channel sends — send SMS to some recipients and Viber to others, all in one call.
- Personalised messages — give each message object its own
bodyorflowfor per-recipient customisation, without making one API call per person.
How batch sending works
Instead of sending a single message object toPOST /message, you send an array of message objects to POST /messages. Each element in the array is an independent message with its own body, to list, flow, tag, callback, and payload.
Request body
cURL
Response format
The response contains a top-levelrequest_id plus two arrays — accepted (messages queued for delivery) and rejected (messages that failed validation). Each accepted entry includes a key (the array index of the message object) and a message_id for tracking.
Response
rejected with a key matching their array position and an error description. Valid message objects in the same request are still accepted and queued.
Getting per-recipient message IDs
When a message object has multiple recipients, each recipient gets its ownmessage_id derived from the batch message_id using a zero-based index suffix: -0, -1, -2, and so on.
For example, if the accepted message_id is e27ff0ac-87b5-4e1d-b644-5fc6029e2a11 and the message has two recipients:
Delivery webhooks include these suffixed IDs, so you can correlate each delivery event back to a specific recipient.
Mixed channels in a batch
Each message object in the array has its own independentflow. This means you can send an SMS to one group and a Viber message (with SMS fallback) to another group in the exact same API call.
Mixed-channel batch
Limits
Full cURL example
cURL
Next steps
Webhooks
Receive delivery status for each recipient in your batch via webhooks.
Send Viber
Learn how to configure Viber flows for use in batch requests.
Send WhatsApp
Add WhatsApp template messages to your mixed-channel batches.
Send SMS
Review all SMS flow options available in batch messages.