API Documentation

Developer documentation v3 · 2026

Start here

MobiWave Innovations API

The API uses a versioned base URL and JSON responses. All requests should use HTTPS and include your bearer token in the Authorization header.

Base URL

https://sms.mobiwave.co.ke/api/v3
Developer portal

Security

Authentication

MobiWave uses bearer tokens. Generate a token in the Developer section of the SMS Platform and keep it on your server. Never commit tokens to source control or expose them in browser code.

Bearer token

Send your token with every request.

JSON headers

Use application/json for request and response handling.

Protect secrets

Store tokens in environment variables or a secret manager.

cURL
curl https://sms.mobiwave.co.ke/api/v3/balance \
  -H "Authorization: Bearer {api_token}" \
  -H "Accept: application/json"

Conventions

Responses

Successful and failed requests return a consistent JSON envelope.

cURL
{
  "status": "success",
  "data": { "uid": "resource_uid" }
}
cURL
{
  "status": "error",
  "message": "A human-readable description of the error."
}

Contact management

Contacts API

Programmatically create, read, update, delete, and list contacts.

POST/contacts/{group_id}/store

Store a contact

Creates a contact in a contact group.

ParameterTypeRequiredDescription
group_idstringYesContact group UID
phonestringYesPhone number in international format
first_namestringNoContact first name
last_namestringNoContact last name
cURL
curl -X POST https://sms.mobiwave.co.ke/api/v3/contacts/{group_id}/store \
  -H "Authorization: Bearer {api_token}" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"phone":"254700000000","first_name":"Amina"}'
POST/contacts/{group_id}/search/{uid}

View a contact

Retrieves an existing contact by its UID and group UID.

PATCH/contacts/{group_id}/update/{uid}

Update a contact

Updates an existing contact.

ParameterTypeRequiredDescription
group_idstringYesContact group UID
uidstringYesContact UID
phonestringYesUpdated phone number
first_namestringNoUpdated first name
last_namestringNoUpdated last name
DELETE/contacts/{group_id}/delete/{uid}

Delete a contact

Removes an existing contact from a group.

POST/contacts/{group_id}/all

List contacts in a group

Returns paginated contacts belonging to a group.

Contact management

Contact groups API

Organize contacts into reusable groups for targeted campaigns.

POST/contacts

Create a contact group

Creates a new group for organizing contacts.

ParameterTypeRequiredDescription
namestringYesName of the group
cURL
curl -X POST https://sms.mobiwave.co.ke/api/v3/contacts \
  -H "Authorization: Bearer {api_token}" \
  -H "Content-Type: application/json" \
  -d '{"name":"Customers"}'
POST/contacts/{group_id}/show

View a group

Retrieves a group by its UID.

PATCH/contacts/{group_id}

Update a group

Updates an existing group name.

ParameterTypeRequiredDescription
group_idstringYesContact group UID
namestringYesNew group name
DELETE/contacts/{group_id}

Delete a group

Deletes an existing contact group.

GET/contacts

List contact groups

Returns paginated contact groups for the account.

Messaging

SMS API

Send outbound SMS, schedule messages, run campaigns, and retrieve delivery reports.

POST/sms/send

Send an outbound SMS

Sends a message to one or more recipients. Separate multiple recipients with commas.

ParameterTypeRequiredDescription
recipientstringYesOne or more phone numbers
sender_idstringYesNumber or alphanumeric sender ID, max 11 characters
typestringYesUse plain for text SMS
messagestringYesMessage body
schedule_timedatetimeNoScheduled send time
dlt_template_idstringNoRegistered content template ID
cURL
curl -X POST https://sms.mobiwave.co.ke/api/v3/sms/send \
  -H "Authorization: Bearer {api_token}" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"recipient":"254700000000","sender_id":"MobiWave","type":"plain","message":"Your code is 123456"}'
POST/sms/campaign

Send a campaign

Sends a message to one or more contact lists.

ParameterTypeRequiredDescription
contact_list_idstringYesOne or more contact list UIDs
sender_idstringYesNumber or alphanumeric sender ID
typestringYesUse plain for text SMS
messagestringYesMessage body
schedule_timedatetimeNoScheduled send time
GET/sms/{uid}

View a message

Retrieves an inbound or outbound message by UID.

GET/sms

List messages

Returns paginated SMS reports for the account.

Messaging

WhatsApp API

Send WhatsApp messages through the messaging endpoint using the whatsapp message type.

POST/sms/send

Send a WhatsApp message

Uses the messaging endpoint with type set to whatsapp.

ParameterTypeRequiredDescription
recipientstringYesWhatsApp recipient number
sender_idstringYesApproved WhatsApp sender
typestringYesUse whatsapp
messagestringYesMessage body
cURL
curl -X POST https://sms.mobiwave.co.ke/api/v3/sms/send \
  -H "Authorization: Bearer {api_token}" \
  -H "Content-Type: application/json" \
  -d '{"recipient":"254700000000","sender_id":"MobiWave","type":"whatsapp","message":"Hello from MobiWave"}'
GET/sms/{uid}

View a WhatsApp message

Retrieves a WhatsApp message report by UID.

GET/sms

List WhatsApp messages

Returns paginated messaging reports.

Account

Profile API

Retrieve authenticated profile information and available SMS units.

GET/me

View profile

Retrieves the authenticated account profile.

GET/balance

View SMS balance

Retrieves available SMS units.

Need help integrating?

Talk to the MobiWave team.

Get implementation guidance for SMS campaigns, WhatsApp messaging, contact migration, and production onboarding.

Contact support