Developers

One API. Every channel. Live today.

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

Quickstart
REST
JSON over HTTPS
Webhooks
Delivery & inbound
Sandbox
Free to test
Idempotent
Safe retries
Build
Build

From first request to first receipt — in minutes.

Send in two requests.

Quickstart
send.sh
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" }
webhook.json
# Delivery receipt posted to your URL
{
  "id": "msg_8f2",
  "channel": "sms",
  "to": "254114045087",
  "status": "delivered",
  "network": "safaricom",
  "ts": "2026-06-19T09:41:02Z"
}

What is in the box.

Reference
Messages

Messages API

Send across any channel by changing one field. Bulk and single sends supported.

Identity

Verify API

Start and check one-time passwords with built-in expiry and rate limiting.

Events

Webhooks

Signed callbacks for delivery receipts, inbound replies and session steps.

Interactive

USSD sessions

Stateful prompt-and-response flows driven entirely by your endpoint.

Data

Reports

Pull delivery, usage and reconciliation data via API or scheduled exports.

Ops

Status

Real-time platform status and historical uptime for every channel.

From the keyboard to the handset.

In use
Sandbox

Build your first integration.

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