Selanim Bulk SMS API
A REST API for sending SMS across every Tanzanian network, with delivery evidence you can hand to finance.
The API speaks JSON over HTTPS. Every request carries a bearer API key, every response includes a request id, and every message you send is reconcilable against your wallet.
v1 is stable. It will gain optional fields and new endpoints; it will not rename or remove one. Anything that would break a working integration goes to v2 instead — see the changelog for what counts as breaking.
Base URL https://bulksmsapi.selanim.com/v1
Auth Authorization: Bearer <SBS_API_KEY>
Format application/json; charset=utf-8Two ways to send
Start on a test key
sbs_test_ runs the entire path — validation, the sender ID check, the message log, your delivery webhooks — without reaching an operator or costing anything. Every example in these docs works against one.Start here
Conventions
Phone numbers are accepted as 255XXXXXXXXX, +255XXXXXXXXX or 0XXXXXXXXX and are normalised to E.164 before dispatch. Timestamps are ISO 8601 in UTC. Money is expressed in the minor-unit-free integer form of the account currency (TZS has no minor unit).
Message length follows the GSM-7 standard: 160 characters for a single part, 153 per part once a message splits. Any character outside the GSM alphabet switches the whole message to UCS-2 (70 / 67 characters). The API returns the computed part count on every send so billing is never a surprise.
Lists are paged with page and pageSize and answer with a meta block. Request and response bodies are camelCase throughout. Unknown fields in a request body are refused rather than ignored, so a misspelled senderId is reported to you instead of quietly sending under the wrong name.

