How do I send SMS from my website or app in Uganda?

Updated

Short answer

Use the Bulk SMS Uganda REST API: send a JSON POST with the recipient's number and your message to https://app.bulksmsug.com/api/v1/send-sms, using your API key as a bearer token. Keep the message ID it returns and check delivery with GET /api/v1/status/{id}. For sustained high volume, connect over SMPP v3.4 instead.

1. Get your API key

Create a free account — your API key appears on the API page of your dashboard and in the API documentation when you're logged in. New accounts include 5 free credits for testing.

2. Send an SMS

curl -X POST "https://app.bulksmsug.com/api/v1/send-sms" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{ "number": "0712345678", "message": "Your order #1042 has shipped." }'

The number can be in local (0712345678) or international (+256712345678) format; it's normalised to +256 format. The response tells you the credits charged and gives you a message ID:

{
  "timestamp": 1727118964,
  "calculatedCredits": 1,
  "message": "Your order #1042 has shipped.",
  "contact": "+256712345678",
  "status": "Sent",
  "id": "bsmsugId906g5153242786d4h64f9e7349d2a7fe"
}

3. Check delivery

Call GET /api/v1/status/{id} with the message ID. The status moves from Sent or Submitted to a final Success, Rejected or Failed — see delivery statuses.

Sending to many recipients

  • Call the send endpoint once per recipient, pacing requests at roughly one per second.
  • Or upload a contact list and send a campaign from the dashboard.
  • For tens of thousands of messages a day, bind over SMPP v3.4 (host smpp.bulksmsug.com, port 2775). Your SMPP password is the same as your API key.

Keep your API key safe

The key gives full send access to your credits. Call the API from your server only — never put the key in browser JavaScript or a mobile app — and keep it out of source control.

Full reference, error codes and examples in cURL, JavaScript, PHP and Python: API & SMPP documentation.

Related questions

Is there an SMS API for Uganda?

Yes. Bulk SMS Uganda provides a versioned REST API under /api/v1 with bearer API-key authentication, plus an SMPP v3.4 connection for high volume. The documentation is public at bulksmsug.com/api-docs.

How much does sending an SMS through the API cost?

The same as the dashboard: UGX 25–40 per SMS credit depending on your top-up size. The send response's calculatedCredits field shows exactly how many credits each message used.

What happens if I run out of credits?

The send is rejected with { "status": 0, "data": "Insufficient credits" } and nothing is sent until you top up.

Try it free with 5 SMS credits

Pay-as-you-go, credits never expire, and no credit card is needed to start.

Create a free account