Bulk SMS
POST
Send the same or customized SMS messages to multiple recipients in a single request. Supports up to 100 recipients per call with per-recipient message overrides.
Endpoint
POST
https://api.smsgateway.com/api/v1/sms/bulkRequest Headers
| Header | Required | Description |
|---|---|---|
| Authorization | Required | Bearer token API key. |
| Content-Type | Required | application/json |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| body | string | Required | Default message body sent to all recipients unless overridden. Max 1,600 characters. |
| recipients | array | Required | Array of 1–100 recipient objects. |
| recipients[].to | string | Required | Recipient phone in E.164 format. |
| recipients[].body | string | Optional | Per-recipient message override. If omitted, the default body is used. |
| senderId | string | Optional | Approved sender ID, max 15 characters. |
| idempotencyKey | string | Optional | Prevents duplicate bulk sends within 24 hours. |
Examples
Bulk SMS with cURL
1curl -X POST https://api.smsgateway.com/api/v1/sms/bulk \2 -H "Authorization: Bearer sg_live_xxxxxxxxxxxx" \3 -H "Content-Type: application/json" \4 -d '{5 "body": "Your appointment is tomorrow at 10:00 AM.",6 "recipients": [7 { "to": "+251911234567" },8 { "to": "+251922345678" },9 { "to": "+251933456789", "body": "Hi! Your appointment is at 11:00 AM." }10 ],11 "senderId": "ClinicApp"12 }'Response
Success (201 Created)
Success response
1{2 "success": true,3 "data": {4 "batchId": "batch_9k3j4h5g6d",5 "totalRecipients": 3,6 "totalSegments": 3,7 "totalCost": 0.06,8 "results": [9 {10 "messageId": "msg_a1b2c3d4e5",11 "to": "+251911234567",12 "status": "QUEUED",13 "segments": 1,14 "cost": 0.0215 },16 {17 "messageId": "msg_f6g7h8i9j0",18 "to": "+251922345678",19 "status": "QUEUED",20 "segments": 1,21 "cost": 0.0222 },23 {24 "messageId": "msg_k1l2m3n4o5",25 "to": "+251933456789",26 "status": "QUEUED",27 "segments": 1,28 "cost": 0.0229 }30 ]31 }32}Cost
Bulk SMS is charged per recipient, not per request. The cost per message depends on the destination country and message segments. Check the totalCost field in the response for the exact charge.
Rate Limits
10 requests per minute
Per organization. Due to the high volume of messages per request, the bulk endpoint has a lower rate limit than the single send endpoint.