Developers
An API that behaves the way you expect.
Predictable JSON, clear status codes and honest delivery states.
Authentication
Send your secret key as a Bearer token. Keys start with ks_test_ or ks_live_, are scoped to one workspace, and are stored only as a SHA-256 hash.
Idempotency
Pass an Idempotency-Key header. Repeating a request with the same key returns the original result instead of sending again.
Test mode
Test keys run full validation and return realistic responses without contacting any network, inbox or wallet.
Webhooks & delivery reports
We post status changes to your endpoint as supplier and network reports arrive. Verify the signature header before trusting a payload.
Request
curl https://<your-domain>/api/public/v1/messages \-H "Authorization: Bearer ks_test_••••••••" \-H "Idempotency-Key: order-10482-shipped" \-H "Content-Type: application/json" \-d '{"channel": "sms","from": "MYSHOP","to": "+233244123456","body": "Your order #10482 has shipped."}'
Response · 202
{"id": "msg_01J9Z3K8","status": "queued","segments": 1,"mode": "test"}
Webhook payload
{"type": "message.delivered","data": {"id": "msg_01J9Z3K8","status": "delivered","to": "+233244123456","occurred_at": "2026-10-26T15:14:02Z"}}