Introduction
Send SMS and transactional email from your app with one HTTP call, and know exactly what happened to every message.
The SoftLinkSMS API sends SMS to any Kenyan mobile number and transactional email to any inbox, charged from a prepaid wallet in KES. It's a plain JSON-over-HTTPS API: no SDK required, every language works.
Quickstart
Get an API key and send your first SMS in five minutes.
Send an OTP
Transactional SMS from your own sender ID, retried safely.
Webhooks
Signed, retried delivery events pushed to your server.
API reference
Every endpoint, field and error, with a live console.
How it works
You send. POST /api/v1/sms with up to 1,000 recipients. We validate every number, price the send and take the cost from your wallet in one step. You get back the send's batch_id, its total price and one message per recipient, immediately.
We deliver. The send is queued and handed to the mobile network, usually within a second. One-time codes and other transactional messages are sent ahead of bulk traffic.
You find out. The network reports delivery to the handset. We update the message to delivered or failed and, if you've set up webhooks, POST a signed event to your server.
What makes it dependable
Safe retries
Send with an Idempotency-Key and a retried request can never send, or charge, twice.
Errors you can branch on
Every error has a stable code, a human message and structured details.
Delivery you can see
Handset delivery confirmation, with the network's own description of the outcome.
Docs your AI can read
Every page is also served as Markdown, plus an llms.txt index for Cursor, Claude and friends.
Base URL
All endpoints live under one host, over HTTPS only:
https://api.softlinksms.co.ke/api/v1Requests and responses are JSON (Content-Type: application/json), timestamps are ISO 8601 in UTC, and money is a decimal string in the wallet's currency.