SMS
Send SMS messages via Africa's Talking using the direct endpoint or job queue.
SMS is powered by Africa's Talking. Configure AT_API_KEY and AT_USERNAME in your environment.
Send SMS (Direct)
POST /sms/send
Authorization: Bearer <token>
Content-Type: application/jsonRequest body
{
"to": "+254712345678",
"message": "Hello from Savannah Cloud",
"from": "SavCloud"
}| Field | Required | Description |
|---|---|---|
to | Yes | Recipient phone in E.164 format e.g. +254712345678 |
message | Yes | SMS text content |
from | No | Sender ID (alphanumeric, registered with Africa's Talking) |
Response 200
{
"status": "sent",
"message_id": "ATXid_abc123",
"recipients": 1
}Send SMS via Job Queue
Queues an SMS as a background job — useful for bulk sends or retry logic.
POST /jobs
X-API-Key: sc_your_key
Content-Type: application/json{
"type": "send_sms",
"payload": {
"to": "+254712345678",
"message": "Your OTP is 123456",
"from": "SavCloud"
},
"max_retries": 3
}Dashboard
The /sms page in the React dashboard provides:
- Compose form with recipient, message, and optional sender ID
- Delivery history with status per recipient
- Africa's Talking delivery report integration
Quick Reference
# Send SMS directly
curl -X POST https://api.savannahcloud.com/sms/send \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"to":"+254712345678","message":"Hello from Savannah","from":"SavCloud"}'
# Queue SMS as job
curl -X POST https://api.savannahcloud.com/jobs \
-H "X-API-Key: sc_your_key" \
-H "Content-Type: application/json" \
-d '{"type":"send_sms","payload":{"to":"+254712345678","message":"Hello"}}'