Keywords

Shortcode opt-in and opt-out subscriptions triggered by inbound SMS.

A keyword is an inbound SMS trigger registered against a shortcode sender ID. When a subscriber texts the keyword to the shortcode (for example JOIN to opt in or STOP to opt out), an auto-response is delivered and the event can start a survey or workflow. Keywords require admin approval before they go live.

List keywords

GET/api/v1/keywords
Query params
sender_id
string

Filter by sender ID UUID

curl -X GET "https://timisha-solutions-api.salamu.co.ke/api/v1/keywords?sender_id=sid-uuid" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Request a keyword

POST/api/v1/keywords
Parameters
sender_idreq
string

Shortcode sender ID UUID

keywordreq
string

The keyword text (e.g. JOIN, STOP)

keyword_aliases
string[]

Additional aliases for the keyword

auto_response
string

SMS auto-reply sent when the keyword is received

description
string

Internal description of the keyword purpose

curl -X POST "https://timisha-solutions-api.salamu.co.ke/api/v1/keywords" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "sender_id": "sid-uuid",
  "keyword": "JOIN",
  "keyword_aliases": [
    "JIUNGE",
    "START"
  ],
  "auto_response": "You have subscribed to Acme updates. Reply STOP to unsubscribe.",
  "description": "Opt-in keyword for promotional messages"
}'

Update a keyword

PATCH/api/v1/keywords/{uuid}
Parameters
keyword_aliases
string[]

Updated aliases list

auto_response
string

Updated auto-reply message

description
string

Updated description

curl -X PATCH "https://timisha-solutions-api.salamu.co.ke/api/v1/keywords/keyword-uuid" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "auto_response": "Thanks for joining. Reply STOP to unsubscribe.",
  "description": "Updated opt-in copy"
}'

Delete a keyword

DELETE/api/v1/keywords/{uuid}
curl -X DELETE "https://timisha-solutions-api.salamu.co.ke/api/v1/keywords/keyword-uuid" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
200: OK
{
  "success": true,
  "data": {
    "uuid": "keyword-uuid",
    "keyword": "JOIN",
    "approval_status": "pending"
  }
}

Handling opt-outs

Pair a STOP keyword with your Blacklist so unsubscribed numbers are skipped on every future send.