API Docs
Send SMS and check your wallet balance from your own systems. Generate a personal API key from your dashboard under SMS Api, then integrate directly against the endpoints below — no SDK to install.
Send SMS
POST Endpoint
/api/v1/sms/send
Headers
Authorization: Bearer sms_live_... Content-Type: application/json
Request body
{
"senderId": "YourBrand",
"to": ["+233244000000", "+233201234567"],
"message": "Hello from the API",
"unicode": false
}Response (200)
{
"sent": 2,
"failed": 0,
"unitsCharged": 2,
"walletBalance": 148,
"recipients": [
{ "to": "+233244000000", "status": "sent" },
{ "to": "+233201234567", "status": "sent" }
]
}Every send debits the caller's own wallet and requires an approved Sender ID on their account, exactly like sending from the dashboard. Errors return a non-2xx status with { "error": "..." }.
Check balance
GET Endpoint
/api/v1/sms/balance
Headers
Authorization: Bearer sms_live_...
Response (200)
{
"balance": 148,
"currency": "units"
}Legacy URL-based endpoints
For systems that can't send custom headers, the API key can go in the query string instead — mirrors the old system's own API shape, for drop-in migration. Prefer the header-based endpoints above where possible: a key in a URL can end up in server logs or browser history.
Endpoints
GET /api/v1/sms/api?action=send-sms&api_key=...&to=...&from=...&sms=... GET /api/v1/sms/api?action=check-balance&api_key=... GET /api/v1/contacts/api?action=subscribe-us&api_key=...&phone_number=...
On this page