SMS Keywords API
Reserve keywords for inbound SMS routing.
Base URL: https://api.wayscloud.services
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /v1/sms/keywords | List keywords |
POST | /v1/sms/keywords | Create 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:
[
{
"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:
curl https://api.wayscloud.services/v1/sms/keywords \
-H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET"Response:
[
{
"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:
| Field | Type | Description |
|---|---|---|
keyword | string | Required. Keyword (alphanumeric, case-insensitive) |
description | string | |
webhook_url | string | |
auto_reply_message | string |
Example:
{
"keyword": "SUPPORT",
"description": "Customer support keyword",
"webhook_url": "https://example.com/webhooks/sms",
"auto_reply_message": "Thank you for contacting support."
}Response:
| Field | Type | Description |
|---|---|---|
id | string | |
keyword | string | |
description | string | |
is_active | boolean | |
webhook_url | string | |
auto_reply_enabled | boolean | |
auto_reply_message | string | |
messages_received | integer | |
last_message_at | string | |
created_at | string |
Example:
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:
{
"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:
| Field | Type | Description |
|---|---|---|
id | string | |
keyword | string | |
description | string | |
is_active | boolean | |
webhook_url | string | |
auto_reply_enabled | boolean | |
auto_reply_message | string | |
messages_received | integer | |
last_message_at | string | |
created_at | string |
Example:
curl https://api.wayscloud.services/v1/sms/keywords/{keyword_id} \
-H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET"Response:
{
"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:
| Field | Type | Description |
|---|---|---|
description | string | |
webhook_url | string | |
auto_reply_enabled | boolean | |
auto_reply_message | string | |
is_active | boolean |
Response:
| Field | Type | Description |
|---|---|---|
id | string | |
keyword | string | |
description | string | |
is_active | boolean | |
webhook_url | string | |
auto_reply_enabled | boolean | |
auto_reply_message | string | |
messages_received | integer | |
last_message_at | string | |
created_at | string |
Example:
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:
{
"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:
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:
| Field | Type | Description |
|---|---|---|
keyword | string | |
available | boolean |
Example:
curl https://api.wayscloud.services/v1/sms/keywords/check/{keyword} \
-H "X-API-Key: wayscloud_sms_abc12_YOUR_SECRET"Response:
{
"keyword": "SUPPORT",
"available": true
}