SMS API for South Africa: bulk SMS to +27 numbers
South Africa
Calling code +27
- Per SMS segment
- $0.00727
- Messages for $100
- 13,755
- Local language
- English, Afrikaans
- Encoding
- GSM-7
What a bulk SMS send to South Africa costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.00727 | $0.01454 |
| 1,000 | $7.27 | $14.54 |
| 10,000 | $72.70 | $145.40 |
| 100,000 | $727.00 | $1,454.00 |
Number format in South Africa
Mobile numbers in South Africa have 9 digits after +27. Locally they are written with a leading 0 (071 123 4567); in the API that 0 is dropped, so the same number goes in the to field as +27 71 123 4567.
Alphabet and segments
English, Afrikaans, Zulu and other official languages text stays inside the GSM-7 alphabet, so one segment to South Africa holds 160 characters and each part of a longer text 153. Watch for curly quotes and emoji copied from other tools: one of them moves the whole text to Unicode at 70 characters per segment, and POST /v1/estimates shows the encoding before you send.
Time zone and timing
South Africa keeps UTC+2 all year with no clock change, so 09:00 in Johannesburg is always 07:00 UTC. send_at takes UTC or any ISO 8601 offset, and the console scheduler converts from your own time zone.
Send to South Africa with one request
The answer comes back at once with the message id, the country the number was matched to (ZA) and the price. A delivered or failed event follows on your webhook, and a failed message is refunded.
For a list, send the same text to up to 10,000 numbers with POST /v1/batches, or a personal text per number in messages.
curl https://bulksmsapi.cc/v1/messages \
-H "Authorization: Bearer $BULKSMSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "+27711234567", "text": "Your Northwind code is 482913. It expires in 10 minutes."}'const res = await fetch("https://bulksmsapi.cc/v1/messages", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.BULKSMSAPI_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ to: "+27711234567", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.00727", country: "ZA"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+27711234567", "text": "Your Northwind code is 482913. It expires in 10 minutes."}).encode(),
headers={"Authorization": "Bearer " + os.environ["BULKSMSAPI_KEY"], "Content-Type": "application/json", "User-Agent": "northwind-app/1.0"},
method="POST",
)
with urllib.request.urlopen(req) as res:
print(json.load(res)["price"]) # "0.00727"What developers send to South Africa
Payment confirmations
Banks in Johannesburg send SMS receipts to customers after transactions, providing instant payment proof.
Delivery updates
Logistics companies in Cape Town notify customers via SMS when their parcels are out for delivery.
Appointment reminders
Clinics in Durban send SMS alerts to patients about upcoming appointments, reducing missed visits.
Event notifications
Event organizers in Pretoria send SMS updates to attendees about schedule changes or venue details.
More countries in East and Southern Africa
SMS to South Africa: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to South Africa?
How many SMS to South Africa does a $100 top-up send?
How do I write South Africa numbers for the API?
What language should SMS messages be in for South Africa?
How does SMS work for tourists in South Africa?
Start sending to South Africa
Create an account, top up from $40 and send to South Africa at $0.00727 per segment, from the console or with one API call.