SMS API for Zambia: bulk SMS to +260 numbers
Zambia
Calling code +260
- Per SMS segment
- $0.02777
- Messages for $100
- 3,601
- Local language
- English
- Encoding
- GSM-7
What a bulk SMS send to Zambia costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.02777 | $0.05554 |
| 1,000 | $27.77 | $55.54 |
| 10,000 | $277.70 | $555.40 |
| 100,000 | $2,777.00 | $5,554.00 |
Number format in Zambia
Mobile numbers in Zambia have 9 digits after +260. Locally they are written with a leading 0 (095 5123456); in the API that 0 is dropped, so the same number goes in the to field as +260 95 5123456.
Alphabet and segments
English text stays inside the GSM-7 alphabet, so one segment to Zambia 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
Zambia keeps UTC+2 all year with no clock change, so 09:00 in Lusaka 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 Zambia with one request
The answer comes back at once with the message id, the country the number was matched to (ZM) 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": "+260955123456", "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: "+260955123456", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.02777", country: "ZM"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+260955123456", "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.02777"What developers send to Zambia
Account balances
Mobile banking apps in Lusaka send SMS alerts to users with their current account balances.
Appointment reminders
Clinics in Ndola notify patients of upcoming appointments via SMS, reducing missed visits.
Exam results
Schools in Kitwe send SMS alerts to students with their exam results, ensuring timely access.
Delivery updates
E-commerce platforms in Livingstone notify customers via SMS when their orders are dispatched.
More countries in East and Southern Africa
SMS to Zambia: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to Zambia?
How many SMS to Zambia does a $100 top-up send?
How do I write Zambia numbers for the API?
What language should SMS messages be in for Zambia?
How does SMS work for rural areas in Zambia?
Start sending to Zambia
Create an account, top up from $40 and send to Zambia at $0.02777 per segment, from the console or with one API call.