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/bulk

Request Headers

HeaderRequiredDescription
Authorization
Required
Bearer token API key.
Content-Type
Required
application/json

Request Body

ParameterTypeRequiredDescription
bodystring
Required
Default message body sent to all recipients unless overridden. Max 1,600 characters.
recipientsarray
Required
Array of 1–100 recipient objects.
recipients[].tostring
Required
Recipient phone in E.164 format.
recipients[].bodystring
Optional
Per-recipient message override. If omitted, the default body is used.
senderIdstring
Optional
Approved sender ID, max 15 characters.
idempotencyKeystring
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.02
15 },
16 {
17 "messageId": "msg_f6g7h8i9j0",
18 "to": "+251922345678",
19 "status": "QUEUED",
20 "segments": 1,
21 "cost": 0.02
22 },
23 {
24 "messageId": "msg_k1l2m3n4o5",
25 "to": "+251933456789",
26 "status": "QUEUED",
27 "segments": 1,
28 "cost": 0.02
29 }
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.