API documentation

REST JSON API for sending SMS, checking delivery, and managing your account programmatically.

Base URL

All API requests use HTTPS. The current production base path is:

https://your-domain.com/api/v1/

Authentication

Every request must include your secret API key in the header (create keys from the dashboard after you sign in):

X-API-Key: sk_live_...

Keys can be rotated or revoked at any time from Dashboard → API keys.

Send a single SMS

POST /api/v1/sms/send with JSON body:

  • to — E.164 phone number (e.g. +233201234567)
  • from — Approved sender ID or short code
  • message — Message body (GSM-7 or Unicode as supported)

Bulk send

POST /api/v1/sms/bulk accepts an array of recipients with the same payload rules as single send. Large batches are queued and processed asynchronously.

Delivery status

GET /api/v1/sms/{id} returns the latest delivery state, timestamps, and any carrier error codes we received.

Webhooks

Configure a callback URL in the dashboard to receive delivery receipts (DLRs) and low-balance alerts as JSON POST payloads. Retry policy and signing headers are documented on the developer hub.

Rate limits & errors

Standard HTTP status codes apply. 429 indicates throttling; back off and retry with exponential delay. Error bodies include a machine-readable code and human-readable message.