API ReferenceSMS API
Coverage
GET /api/countries - Per-country networks, pricing, sender-ID policy and compliance rules.
Endpoint
GET https://sms.esmsafrica.io/api/countriesReturns all 54 African markets with their mobile networks, sender-ID policy, compliance rules and - where we route - the live price per segment. Use it to check whether a country is supported, what sender-ID registration it requires, and whether two-way SMS or OTP is available before you send.
For just the machine-usable route codes and prices, see Routes & countries and Pricing.
Authentication
Authorization: Bearer esms_live_your_api_keyResponse
{
"total": 54,
"supported": 27,
"countries": [
{
"country_code": "KE",
"country_name": "Kenya",
"networks": ["Safaricom", "Airtel", "Telkom"],
"currency": "KES",
"supported": true,
"route_code": "ESMS_KE",
"price_per_segment": 1.2,
"price_currency": "KES",
"sender_id_registration": true,
"sender_id_free": false,
"regulator": "CA",
"promo_note": "Promotional SMS restricted 8pm-8am",
"rules": ["Alphanumeric sender IDs must be pre-registered"],
"otp_available": true,
"two_way": true
}
]
}| Field | Description |
|---|---|
supported | true when there is an active route for this country today. |
route_code / price_per_segment | Public route code and live per-segment price (only when supported). |
networks | Mobile networks operating in the country. |
sender_id_registration | Whether an alphanumeric sender ID must be pre-registered. |
sender_id_free | Whether custom sender IDs are allowed without registration. |
regulator / promo_note / rules | Regulator and country-specific delivery/compliance notes. |
otp_available | Whether Verify/OTP can route here. |
two_way | Whether inbound/two-way SMS is supported. |
The top-level total is all African markets; supported is how many you can
send to right now.
Example
curl https://sms.esmsafrica.io/api/countries \
-H "Authorization: Bearer esms_live_your_api_key"