You can send bulk SMS to 13 East African and Indian Ocean markets from one eSMS Africa account today: Kenya, Uganda, Tanzania, Rwanda, Burundi, Ethiopia, Somalia, South Sudan, Djibouti, Eritrea, Madagascar, Mauritius and Comoros. The work that differs from country to country is sender ID registration, local rules on consent and sending hours, and the script your customers read, so this page puts all three side by side with live prices and a link to each country's own guide.

Last reviewed: 28 October 2026. Network rules change without notice; this is general guidance, not legal advice.

Seychelles is not live yet. If you need it, tell us through the contact page and we will let you know when it opens.

East Africa at a glance

CountryDial codeMain networksSender IDLanguage noteFrom (basic tier)Guides
Kenya+254Safaricom, Airtel, TelkomRegister per network; Safaricom splits promotional and transactionalEnglish, Swahili (GSM-7)KES 1.08 ($0.0083)bulk SMS, sender ID
Uganda+256MTN, Airtel, Lycamobile, Uganda TelecomRegister with MTN and Airtel separatelyEnglish, Luganda (GSM-7)UGX 35 ($0.0083)bulk SMS, sender ID
Tanzania+255Vodacom, Airtel, Yas, Halotel, ZantelRegister before launch; unregistered IDs reported blockedSwahili, English (GSM-7)TZS 18.2819 ($0.0069)bulk SMS, sender ID
Rwanda+250MTN, AirtelRegister with MTN and Airtel; generic names rejectedKinyarwanda, English, FrenchRWF 21 ($0.0142)bulk SMS, sender ID
Burundi+257Lumitel, Econet, OnatelRegister through us before campaignsKirundi, FrenchBIF 41.9963 ($0.014)bulk SMS, sender ID
Ethiopia+251Ethio Telecom, SafaricomRegister through us before campaignsAmharic needs UnicodeETB 5.7959 ($0.0356)bulk SMS, sender ID
Somalia+252Hormuud, Somtel, Telesom, GolisRegister through us before campaignsSomali (Latin, GSM-7), Arabic UnicodeSOS 228.8539 ($0.4)bulk SMS, sender ID
South Sudan+211MTN, Zain, DigitelRegister through us before campaignsEnglish (GSM-7)USD 0.189 ($0.189)bulk SMS, sender ID
Djibouti+253Djibouti TelecomSingle network; register through usFrench, Arabic UnicodeDJF 30 ($0.1685)bulk SMS, sender ID
Eritrea+291EriTelSingle network; register through usTigrinya needs UnicodeERN 2.5 ($0.1667)bulk SMS, sender ID
Madagascar+261Telma, Orange, AirtelRegister through us before campaignsMalagasy, FrenchMGA 311.11 ($0.0688)bulk SMS, sender ID
Mauritius+230my.t, Emtel, ChiliRegister through us before campaignsEnglish, French, CreoleMUR 3.4162 ($0.0725)bulk SMS, sender ID
Comoros+269Huri, TelmaRegister through us before campaignsFrench, Arabic UnicodeKMF 128.0566 ($0.2908)bulk SMS, sender ID
Seychelles+248Airtel, Cable & WirelessNot live yetEnglish, French, CreoleComing soonregister interest

Prices in the table are the live basic-tier rate per SMS segment, in local currency and in US dollars, and update automatically when our rate card changes. Business and enterprise tiers are cheaper per message; the full matrix is on SMS pricing and the plans are explained on pricing. Every country on our network is listed on the coverage page.

How the region splits for a sender

It helps to think of East Africa as three groups rather than thirteen separate problems.

1. The regulated core: Kenya, Uganda, Tanzania, Rwanda

These four markets have the most detailed written rules and the largest A2P volumes, and they are where most of our customers start. Each has its own regulator and its own sender ID habits:

  • Kenya. Safaricom separates promotional and transactional sender IDs. A notice circulated by KICTANet in 2020 said promotional IDs may only send between 08:00 and 18:00 and must carry opt-out instructions; transactional IDs (OTPs, bank alerts, reminders) have no time window. Decide the category before you apply. See SMS in Kenya and the Kenya use cases.
  • Uganda. The Uganda Communications (Text and Multimedia Messaging) Regulations, 2019 require prior consent for commercial SMS (with an existing-customer exception), a working STOP opt-out honoured within 24 hours, and no commercial messages timed for delivery between 19:00 and 06:00 unless the recipient agreed. See SMS in Uganda.
  • Tanzania. Each network approves your sender ID separately, and networks typically block or replace unregistered sender IDs, so register before your first campaign. TCRA also issues bulk SMS guidelines, for example during election periods. Register before you plan a launch date. See SMS in Tanzania.
  • Rwanda. RURA's regulation on unsolicited commercial communications requires consent and an opt-out for marketing messages. MTN and Airtel each approve sender IDs and reject generic names. See SMS in Rwanda.

These four, plus Zambia, are also the markets where you can top up your eSMS balance with mobile money as well as card or crypto.

2. The Horn and the north-east: Ethiopia, Somalia, Djibouti, Eritrea, South Sudan

Fewer networks per country, and in Djibouti and Eritrea a single operator, which makes routing simpler but leaves you with no fallback network if a message is filtered. Script matters more here than anywhere else in the region. Amharic (Ethiopia) and Tigrinya (Eritrea) are written in the Ge'ez script, and Arabic is widely read in Somalia and Djibouti; none of these characters are in the GSM-7 alphabet, so messages switch to Unicode (UCS-2) and fit 70 characters per SMS instead of 160. Somali written in Latin script stays in GSM-7. Ethiopia also has two networks since Safaricom Ethiopia launched, so register your sender ID with both.

3. The islands: Madagascar, Mauritius, Comoros

The Indian Ocean markets are French-influenced. Malagasy and Mauritian Creole are written in Latin script and usually stay in GSM-7, but French accents can push a message into Unicode (more on that below). Comoros sends mostly in French and Arabic. Madagascar is also one of the markets where two-way short codes can be arranged, alongside Kenya, Uganda and Ethiopia.

Numbers, formats and encoding

Always send in E.164 format: a plus sign, the country code, then the subscriber number without its leading zero. A Kenyan number written locally as 0712 345 678 becomes +254712345678; a Ugandan 0772 123 456 becomes +256772123456. Our API rejects numbers it cannot parse, and cleaning your list before upload is the cheapest deliverability fix there is. Our guide to phone number formats covers the common mistakes.

On encoding, the rule from the GSM standard is simple: a message made only of GSM-7 characters fits 160 characters in one SMS, or 153 per part when it is split. One character outside that alphabet, such as an Amharic letter, an emoji or a curly quote pasted from a word processor, switches the whole message to UCS-2, which fits 70 characters, or 67 per part. You pay per part, so a 150-character Amharic message costs three SMS where the same length in Swahili costs one. The composer in the dashboard shows the encoding and part count as you type.

A sample regional campaign

Here is a realistic payment reminder for a pan-East African subscription service, kept to one GSM-7 segment:

HabariPay: Hi Amina, your plan renews on 03 Nov. Pay KES 1,200 via M-Pesa paybill 123456, acc 8841. Help: 0800 720 000

For a multi-country list, send through the bulk endpoint with merge fields, so each recipient gets their own name, currency and amount in one API call:

curl -X POST https://sms.esmsafrica.io/api/messages/send-bulk \
  -H "Authorization: Bearer esms_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "sender_id": "HABARIPAY",
    "text": "HabariPay: Hi {{name}}, your plan renews on 03 Nov. Amount due: {{amount}}.",
    "recipients": [
      {"to": "+254712345678", "name": "Amina", "vars": {"amount": "KES 1,200"}},
      {"to": "+256772123456", "name": "Joseph", "vars": {"amount": "UGX 35,000"}},
      {"to": "+250788123456", "name": "Aline", "vars": {"amount": "RWF 12,000"}}
    ]
  }'

Use an esms_test_... key first: test keys simulate the send and the delivery report without charging you. Full parameters are in the HTTP API docs, and the SMS API page has SDKs for Node.js, Python, PHP and Go.

Planning a launch across East Africa

  1. Pick your sender ID and register it everywhere you send. We handle the network paperwork; fees and steps are on each sender ID country page. While registration is pending you can test on the eSMS default sender.
  2. Split transactional and promotional traffic. Kenya enforces the split at network level, and keeping OTPs on their own ID everywhere means pausing a promotion never touches your login codes.
  3. Schedule in local time. East Africa spans UTC+3 (Kenya, Uganda, Tanzania, Ethiopia, Somalia, Djibouti, Eritrea, Madagascar, Comoros) and UTC+2 (Rwanda, Burundi, South Sudan), with Mauritius on UTC+4. A promotion scheduled for 18:30 Nairobi time misses Safaricom's promotional window.
  4. Collect consent and keep the record. Uganda and Rwanda write it into regulation; elsewhere it is good practice and what networks expect when they investigate a complaint.
  5. Watch delivery reports per network. A problem with one operator shows up as a cluster of failures on that network. See receiving delivery reports.

Our older country pages go deeper on single markets, for example bulk SMS in Kenya, and the Africa overview covers the rest of the continent.

Frequently asked questions

Can one account send to all East African countries?

Yes. One eSMS Africa account and one API key reach all 13 live markets in the table. You are billed per segment at each country's rate, from a single USD balance.

Is Seychelles supported?

Not yet. Seychelles is on our coming-soon list, so we do not accept live traffic for it today. Use the contact page to register interest.

Why do my Amharic messages cost more?

Amharic is written in the Ge'ez script, which is not in the GSM-7 alphabet, so messages are sent as Unicode with 70 characters per SMS (67 per part when split) instead of 160. Longer messages are billed as several parts.

Can I pay with M-Pesa or MTN Mobile Money?

Mobile money top-ups are available in Uganda, Kenya, Tanzania, Rwanda and Zambia. Card payments in USD and crypto work everywhere, with pay as you go from USD 20 and no monthly minimum.

Do I need a separate sender ID for each country?

You can use the same name, but it has to be registered in each country, and in most countries with each network. We submit the requests for you.

Sources

Ready to reach East Africa? Browse the use cases by industry, check live rates on SMS pricing, and create a free account to send your first test message today.