Skip to main content
The /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 body or flow for per-recipient customisation, without making one API call per person.

How batch sending works

Instead of sending a single message object to POST /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-level request_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
If any message objects fail validation (for example, a malformed phone number), they appear in 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 own message_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 independent flow. 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

If you need to reach more than 100 recipients, split your list and send multiple /messages calls. There is no rate-limit penalty for making back-to-back batch requests — just stay within your account’s per-second throughput quota.

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.