Bulk SMS
POST /v1/sms/send-bulk
Send an SMS to multiple recipients in a single request. Bulk sends are queued and processed asynchronously. A batch_id is returned for tracking.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
recipients | array | Yes | Array of E.164 phone numbers. Max 10,000 per request. |
content | string | Yes | Message text. Max 918 characters (6 segments). |
sender_id | string | No | Alphanumeric sender ID (e.g., SendAPI). Support varies by country. |
bash
curl -X POST https://sendapi.co/v1/sms/send-bulk \
-H "Authorization: Bearer sk_live_123456789" \
-H "Content-Type: application/json" \
-d '{
"recipients": ["+447700900000", "+14155552671", "+250788000000"],
"content": "Flash sale! 20% off all plans today only. Use code FLASH20 at sendapi.co/pricing"
}'javascript
const batch = await client.sms.sendBulk({
recipients: ['+447700900000', '+14155552671', '+250788000000'],
content: 'Flash sale! 20% off all plans today only.'
});
console.log(batch.batch_id);python
batch = client.sms.send_bulk(
recipients=["+447700900000", "+14155552671"],
content="Flash sale! 20% off all plans today only."
)Response
json
{
"batch_id": "batch_01H9...XQ",
"status": "queued",
"total": 3,
"estimated_cost_usd": 0.18,
"queued_at": "2026-03-09T14:30:00Z"
}Cost Estimation
The estimated_cost_usd is calculated at queue time based on current routing prices. Final charges may vary slightly due to carrier routing changes.