Live · Available now

The SMS API for builders.

Send messages, check balance, manage Sender IDs, and receive delivery webhooks — all from one REST API. Standard JSON in, standard JSON out.

HTTPS only
Bearer auth
99.9% uptime
Free with any plan
POST /api/v1/sms/send
# Request
curl -X POST https://sms.webfam.co.ke/api/v1/sms/send \
  -H "Authorization: Bearer WFK-0001_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+254712345678",
    "sender": "GRACE CHURCH",
    "message": "Sunday service at 9 AM."
  }'

# Response
{
  "status": "queued",
  "message_id": "MSG-88f2a",
  "credits_used": 1
}
REST
Standard HTTP + JSON
Bearer
Single API key auth
HTTPS
Encrypted end to end
Webhooks
Real-time delivery events

Everything you can do with the API

The same operations you use in the dashboard, available programmatically.

Send SMS

Single messages or bulk lists. Schedule for later. Track status per message.

Check balance

Query your remaining SMS credits before sending. Prevent failed batches.

Manage contacts

Create, update, and organise contact lists. Group them for targeted sends.

Sender IDs

List your approved Sender IDs. Request new ones. Check approval status.

Delivery reports

Query delivery status per message. Pull aggregated stats per campaign.

Webhooks

Receive real-time POST callbacks for deliveries, replies, and account events.

The core endpoints

Full parameter reference and edge cases are in the full documentation.

POST /api/v1/sms/send
Send a single message or a bulk batch.
GET /api/v1/sms/status/{id}
Check delivery status of a message by ID.
GET /api/v1/account/balance
Current SMS credit balance.
GET /api/v1/sender-ids
List approved Sender IDs on your account.
GET /api/v1/contacts
List contact groups and their members.
POST /api/v1/webhooks
Register a callback URL for delivery and reply events.

Your first API call in 5 minutes

01

Get your API key

Log in to your WebFamSMS dashboard → Developer → API keys. Generate a key and copy it. It looks like WFK-0001_xxxxxxxxxxxxxxxxxxxxxxxx.

Open API keys
02

Check your balance

Confirm you have credits before sending. If your balance is 0, top up in the dashboard.

# Check balance curl https://sms.webfam.co.ke/api/v1/account/balance \ -H "Authorization: Bearer WFK-0001_xxx"
03

Send your first SMS

Post to /api/v1/sms/send with a recipient, Sender ID, and message body.

# Send a message curl -X POST https://sms.webfam.co.ke/api/v1/sms/send \ -H "Authorization: Bearer WFK-0001_xxx" \ -H "Content-Type: application/json" \ -d '{ "to": "+254712345678", "sender": "GRACE CHURCH", "message": "Sunday service at 9 AM." }'
04

Track delivery

Register a webhook URL and receive a POST callback the moment the message is delivered — or poll status by message ID.

# Poll status curl https://sms.webfam.co.ke/api/v1/sms/status/MSG-88f2a \ -H "Authorization: Bearer WFK-0001_xxx"

Predictable JSON, every time

Every response returns a status field. Errors return an HTTP status code and a human-readable message.

200 · success
{
  "status": "queued",
  "message_id": "MSG-88f2a",
  "recipient": "+254712345678",
  "credits_used": 1,
  "balance_remaining": 498
}
400 · error
{
  "status": "error",
  "code": "INSUFFICIENT_CREDITS",
  "message": "Account balance is 0. Top up to send."
}

Start building with WebFamSMS

Get an API key from your dashboard and send your first message in minutes.

API questions: api@webfam.co.ke  ·  Support: support@webfam.co.ke