Savannah Cloud

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/json

Request body

{
  "to": "+254712345678",
  "message": "Hello from Savannah Cloud",
  "from": "SavCloud"
}
FieldRequiredDescription
toYesRecipient phone in E.164 format e.g. +254712345678
messageYesSMS text content
fromNoSender 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"}}'

On this page