Developer API
The CloudMetis API lets your own systems send SMS to Safaricom, Airtel and Telkom numbers — one message or up to 10,000 at a time — and receive delivery reports on your server.
Base URL: https://api.cloudmetis.com/v1
What you can do
| You want to… | Use |
|---|---|
| Send an OTP, receipt or alert | POST /v1/sms/send with one number |
| Send a promotion to a list | POST /v1/sms/send with up to 10,000 numbers |
| Know when a message was delivered | A webhook on your server, or GET /v1/sms/status/{message_id} |
| Track a large send | GET /v1/sms/batches/{batch_id} |
| Check you have enough SMS units | GET /v1/sms/balance |
How it works
- An admin in your organisation creates an API key in the CloudMetis app under Management → Developer API. See Authentication.
- Your code sends JSON requests with the key in the
Authorizationheader. - Each SMS part uses one SMS unit from your organisation's wallet. See SMS units.
- Delivery reports are pushed to your webhook URL as statuses change.
Test keys (cm_test_…) use a free sandbox: nothing is sent and no units are used, so you can build your whole integration before going live.
Start here
- Quickstart — send your first message in the sandbox in five minutes.
- Errors, Rate limits and Idempotency — make your integration robust.
- Webhooks — receive and verify delivery reports.
Conventions
- Requests and responses are JSON (
Content-Type: application/json). - Phone numbers are returned in E.164 format (
+254712345678). You can send Kenyan numbers as0712345678,712345678,254712345678or+254712345678. - Times are ISO 8601 in East Africa Time (
+03:00). - Message IDs look like
msg_183, batch IDs likebat_103.