https://ugatext.com/api/v1 and need your API credentials.
Send a single SMS
POST /sms/send sends one message.
The response contains a
message_id (format msg_<13-digit-unix-ms>_<8-hex-chars>) and the initial status queued. Add an Idempotency-Key header to retry safely. See Idempotency.
Phone number formats
UgaText delivers to Uganda (+256), Kenya (+254), and DR Congo (+243). Each of these formats is accepted:
Invalid numbers return
422 INVALID_PHONE_NUMBER. To test for free, send to +256700000000, +254700000000, or +243810000000. See Sandbox.
Costs and currency
Volume discounts apply. See ugatext.com/pricing for current rates.
Send and status responses report cost in several currencies:
Send bulk SMS
POST /sms/bulk sends one message to up to 5,000 recipients per request.
recipientsalso accepts the aliasesphones,to, andmessages.- Items can be objects with their own
to,message, andsender_id, so each recipient can get a different message.
batch_id, totals (total_recipients, dispatched_count, failed_count, total_segments, total_cost_ugx), and a results array with one entry per recipient. See Bulk results.
Schedule a message
POST /sms/schedule queues a message for a future time. Send to one number or pass an array for a scheduled bulk broadcast.
Response (200 OK)
Cancel or reschedule
You can change a scheduled message until its send time.Cancel response
404 NOT_FOUND.
Track delivery
Messages move fromqueued to sent to delivered, or end as failed.
- Poll:
GET /sms/status/{id}returns the status, timestamps (sent_at,delivered_at,failed_at),failure_reason,network, andprovider_reference. - Push: register a webhook to receive
sms.sent,sms.delivered, andsms.failedevents. - History:
GET /sms/historylists your recent sent and queued messages.
Segments and encoding
Long messages are split into segments, and you’re billed per segment.
Unicode supports Luganda, Swahili, and other regional character sets. Each response includes
segments and encoding so you can confirm the cost. To check a message before sending, use the compliance pre-check.
Check your balance
GET /sms/balance returns your wallet balance in UGX, the price per SMS, and the remaining SMS units.
402 INSUFFICIENT_BALANCE. Top up with MTN Mobile Money, Airtel Money, or M-Pesa from the dashboard.
