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.
# 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 }
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.
Your first API call in 5 minutes
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 keysCheck your balance
Confirm you have credits before sending. If your balance is 0, top up in the dashboard.
Send your first SMS
Post to /api/v1/sms/send with a recipient, Sender ID, and message body.
Track delivery
Register a webhook URL and receive a POST callback the moment the message is delivered — or poll status by message ID.
Predictable JSON, every time
Every response returns a status field. Errors return an HTTP status code and a human-readable message.
{
"status": "queued",
"message_id": "MSG-88f2a",
"recipient": "+254712345678",
"credits_used": 1,
"balance_remaining": 498
}
{
"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.