SMS, WhatsApp, USSD and Verify behind one endpoint. Same auth, same payload, same receipts. Send your first message before your coffee is cold.

curl https://api.easysms.co.ke/v1/messages \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "254114045087", "channel": "sms", "text": "Your code is 4821" }' # → { id: "msg_8f2", status: "queued" }
# Delivery receipt posted to your URL { "id": "msg_8f2", "channel": "sms", "to": "254114045087", "status": "delivered", "network": "safaricom", "ts": "2026-06-19T09:41:02Z" }
Send across any channel by changing one field. Bulk and single sends supported.
Start and check one-time passwords with built-in expiry and rate limiting.
Signed callbacks for delivery receipts, inbound replies and session steps.
Stateful prompt-and-response flows driven entirely by your endpoint.
Pull delivery, usage and reconciliation data via API or scheduled exports.
Real-time platform status and historical uptime for every channel.






Grab a sandbox key and send a test message in minutes.