Skip to content

SMS Keywords API

Reserve keywords for inbound SMS routing.

Base URL: https://api.wayscloud.services

Endpoints

MethodPathDescription
GET/v1/sms/keywordsList keywords
POST/v1/sms/keywordsCreate keyword
GET/v1/sms/keywords/{keyword_id}Get keyword
PATCH/v1/sms/keywords/{keyword_id}Update keyword
DELETE/v1/sms/keywords/{keyword_id}Delete keyword
GET/v1/sms/keywords/check/{keyword}Check keyword availability

GET /v1/sms/keywords

List keywords

List your reserved keywords for inbound SMS routing.

Response example:

json
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "keyword": "SUPPORT",
    "description": "Customer support keyword",
    "is_active": true,
    "webhook_url": "https://example.com/webhooks/sms",
    "auto_reply_enabled": true,
    "auto_reply_message": "Thank you for contacting support. We will respond shortly.",
    "messages_received": 42,
    "created_at": "2025-01-15T10:00:00Z"
  }
]

Example:

bash
curl https://api.wayscloud.services/v1/sms/keywords \
  -H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET"

Response:

json
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "keyword": "SUPPORT",
    "description": "Customer support keyword",
    "is_active": true,
    "webhook_url": "https://example.com/webhooks/sms",
    "auto_reply_enabled": true,
    "auto_reply_message": "Thank you for contacting support. We will respond shortly.",
    "messages_received": 42,
    "created_at": "2025-01-15T10:00:00Z"
  }
]

POST /v1/sms/keywords

Create keyword

Reserve a keyword for inbound SMS routing.

When someone sends an SMS starting with your keyword to a shared number, the message is routed to your webhook.

Example: Reserve "SUPPORT" → User texts "SUPPORT help me" → Your webhook receives the message.

Request Body:

FieldTypeDescription
keywordstringRequired. Keyword (alphanumeric, case-insensitive)
descriptionstring
webhook_urlstring
auto_reply_messagestring

Example:

json
{
  "keyword": "SUPPORT",
  "description": "Customer support keyword",
  "webhook_url": "https://example.com/webhooks/sms",
  "auto_reply_message": "Thank you for contacting support."
}

Response:

FieldTypeDescription
idstring
keywordstring
descriptionstring
is_activeboolean
webhook_urlstring
auto_reply_enabledboolean
auto_reply_messagestring
messages_receivedinteger
last_message_atstring
created_atstring

Example:

bash
curl -X POST https://api.wayscloud.services/v1/sms/keywords \
  -H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "keyword": "SUPPORT",
  "description": "Customer support keyword",
  "webhook_url": "https://example.com/webhooks/sms",
  "auto_reply_message": "Thank you for contacting support."
}'

Response:

json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "keyword": "SUPPORT",
  "description": "Customer support keyword",
  "is_active": true,
  "webhook_url": "https://example.com/webhooks/sms",
  "auto_reply_enabled": true,
  "auto_reply_message": "Thank you for contacting support. We will respond shortly.",
  "messages_received": 42,
  "created_at": "2025-01-15T10:00:00Z"
}

GET /v1/sms/keywords/

Get keyword

Get details for a specific keyword.

Response:

FieldTypeDescription
idstring
keywordstring
descriptionstring
is_activeboolean
webhook_urlstring
auto_reply_enabledboolean
auto_reply_messagestring
messages_receivedinteger
last_message_atstring
created_atstring

Example:

bash
curl https://api.wayscloud.services/v1/sms/keywords/{keyword_id} \
  -H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET"

Response:

json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "keyword": "SUPPORT",
  "description": "Customer support keyword",
  "is_active": true,
  "webhook_url": "https://example.com/webhooks/sms",
  "auto_reply_enabled": true,
  "auto_reply_message": "Thank you for contacting support. We will respond shortly.",
  "messages_received": 42,
  "created_at": "2025-01-15T10:00:00Z"
}

PATCH /v1/sms/keywords/

Update keyword

Update keyword settings (webhook URL, auto-reply, etc.).

Request Body:

FieldTypeDescription
descriptionstring
webhook_urlstring
auto_reply_enabledboolean
auto_reply_messagestring
is_activeboolean

Response:

FieldTypeDescription
idstring
keywordstring
descriptionstring
is_activeboolean
webhook_urlstring
auto_reply_enabledboolean
auto_reply_messagestring
messages_receivedinteger
last_message_atstring
created_atstring

Example:

bash
curl -X PATCH https://api.wayscloud.services/v1/sms/keywords/{keyword_id} \
  -H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "description": "Customer support keyword",
  "webhook_url": "https://example.com/webhooks/sms",
  "auto_reply_enabled": true,
  "auto_reply_message": "Thank you for contacting support. We will respond shortly."
}'

Response:

json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "keyword": "SUPPORT",
  "description": "Customer support keyword",
  "is_active": true,
  "webhook_url": "https://example.com/webhooks/sms",
  "auto_reply_enabled": true,
  "auto_reply_message": "Thank you for contacting support. We will respond shortly.",
  "messages_received": 42,
  "created_at": "2025-01-15T10:00:00Z"
}

DELETE /v1/sms/keywords/

Delete keyword

Release a keyword reservation.

Example:

bash
curl -X DELETE https://api.wayscloud.services/v1/sms/keywords/{keyword_id} \
  -H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET"

GET /v1/sms/keywords/check/

Check keyword availability

Check if a keyword is available for reservation.

Response:

FieldTypeDescription
keywordstring
availableboolean

Example:

bash
curl https://api.wayscloud.services/v1/sms/keywords/check/{keyword} \
  -H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET"

Response:

json
{
  "keyword": "SUPPORT",
  "available": true
}

WAYSCloud AS