SMS API for Malawi: bulk SMS to +265 numbers
Malawi
Calling code +265
- Per SMS segment
- $0.04477
- Messages for $100
- 2,233
- Local language
- English
- Encoding
- GSM-7
What a bulk SMS send to Malawi costs
| Messages | 1 segment | 2 segments |
|---|---|---|
| 1 | $0.04477 | $0.08954 |
| 1,000 | $44.77 | $89.54 |
| 10,000 | $447.70 | $895.40 |
| 100,000 | $4,477.00 | $8,954.00 |
Number format in Malawi
Mobile numbers in Malawi have 9 digits after +265. Locally they are written with a leading 0 (0991 23 45 67); in the API that 0 is dropped, so the same number goes in the to field as +265 991 23 45 67.
Alphabet and segments
English text stays inside the GSM-7 alphabet, so one segment to Malawi 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
Malawi keeps UTC+2 all year with no clock change, so 09:00 in Blantyre 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 Malawi with one request
The answer comes back at once with the message id, the country the number was matched to (MW) 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": "+265991234567", "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: "+265991234567", text: "Your Northwind code is 482913. It expires in 10 minutes." }),
});
console.log(await res.json()); // price: "0.04477", country: "MW"import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/messages",
data=json.dumps({"to": "+265991234567", "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.04477"What developers send to Malawi
Payment confirmations
A Lilongwe bank sends SMS confirmations for transactions, keeping customers in Blantyre and Mzuzu informed.
Crop updates
Agricultural services in Zomba send SMS alerts about market prices or weather forecasts to farmers in rural areas.
Appointment reminders
Clinics in Blantyre send SMS reminders for medical appointments to patients across Malawi.
Utility alerts
Utility companies in Lilongwe notify customers via SMS about service interruptions or billing updates.
More countries in East and Southern Africa
SMS to Malawi: questions
More answers on accounts, payments and the API are in the FAQ.
How much does it cost to send bulk SMS to Malawi?
How many SMS to Malawi does a $100 top-up send?
How do I write Malawi numbers for the API?
What language should SMS messages use?
How do I reach rural areas?
Start sending to Malawi
Create an account, top up from $40 and send to Malawi at $0.04477 per segment, from the console or with one API call.