eSMSAfrica
Pricing Contact sales Login
eSMS Verify

Phone verification in two API calls.

eSMS Verify runs the whole OTP flow for you - generate, send, rate-limit, expire and check the code. Brand every message, pick your countries, and ship phone verification across Africa without managing a single code.

Branded sender & template 54-country coverage Rate-limited & hashed
Try it - verify a code
Acme · now
Your Acme verification code is 482913. It expires in 5 minutes.
Type the 6 digits from the message above.

Demo only - create an account to send real OTPs.

2 calls Start + check, that's it
54 African countries
< 1 min To go live
Hashed Codes never stored raw
Everything verify

A complete OTP product, not just an SMS endpoint

Managed end to end

We generate the code, send it, store it hashed, expire it and check it. You never handle code state, storage or comparison.

Your brand & template

Set the sender ID and write the message - "Your {app} code is {code}" - per Verify app. Recipients see your brand, not ours.

Country control

Allow only the countries you serve. Requests outside your list are rejected before a message ever sends.

Abuse protection built in

Per-phone rate limits and a capped number of check attempts stop code-guessing and pumping out of the box.

One id, any language

Create an app, get an app_id, pass it to the API from cURL, Node, Python, PHP, Go or Java. SDKs included.

Per-app analytics

Track starts, verified and success rate for every app - so you can see conversion at a glance and spot problems.

Live in seconds

Three steps to phone verification

1

Create a Verify app

Name it, set your sender ID, template, countries and code policy. You get an app_id like vera_ab12…

2

Start a verification

POST /verify/start with the phone number and your app_id. We send the branded OTP and return a verification_id.

3

Check the code

POST /verify/check with the code the user typed. Get "approved" or a clear reason - done.

For developers

Integrate in an afternoon

Pass your app_id to /verify/start and the app's brand, template, countries and policy apply automatically. Official SDKs for Node, Python, PHP, Go and Java, plus a signed webhook for delivery events.

curl -X POST https://sms.esmsafrica.io/api/verify/start \
  -H "Authorization: Bearer esms_live_..." \
  -H "Content-Type: application/json" \
  -d '{"to":"+254712345678","app_id":"vera_your_app"}'

# → { "verification_id": "ver_...", "status": "pending" }

curl -X POST https://sms.esmsafrica.io/api/verify/check \
  -H "Authorization: Bearer esms_live_..." \
  -d '{"verification_id":"ver_...","code":"482913"}'

# → { "status": "approved" }
Get started

Verify your first user today.

Create a Verify app, brand the message, and send a real OTP in minutes. One account for all of eSMS Africa.