POST /api/v1/messages/batch queues personalized recipients instead of issuing one synchronous request per contact. It requires messages:write and an Idempotency-Key. The default configured maximum is 1,000 recipients per batch; an operator can set a different limit.channel, optional template, email sender, and list_id. The messages array contains one object per recipient. One channel selection applies to the whole batch; smart may route individual phone recipients differently.to, message or template variables, email subject, WhatsApp media_url, unique reference, optional profile fields/custom fields, and genuine whatsapp_opt_in where needed.1234567{ "channel": "whatsapp", "messages": [ {"to": "+2348012345678", "message": "Hi Ada, order 1201 shipped.", "reference": "order-1201"}, {"to": "+2348098765432", "message": "Hi Tobi, order 1202 shipped.", "reference": "order-1202"} ] }
test: true option is a batch simulation contract. Use a controlled small audience when proving batch delivery.202 Accepted means queued. The response includes batch_id, queue status, counts, accepted recipients, rejected recipients, and reserved cost. Accepted entries carry their input index and reference for correlation.GET /api/v1/messages/batch/:batch_id returns counts and recipient outcomes, including references, provider IDs, status, and errors. Prefer delivery webhooks when your application otherwise polls continuously.insufficient_balance rather than silently dropped.202 response is not delivery confirmation. Track each recipient, including rejected rows, before marking an application job complete.