Install
openclaw skills install send-usms-uspeedoSends international SMS (USMS) via uspeedo platform HTTP API. Use when the user needs to send international SMS, batch SMS, verification/notification/marketi...
openclaw skills install send-usms-uspeedoThis skill sends international SMS (USMS) through the uspeedo HTTP API, supporting verification codes, notifications, and marketing. After configuring environment variables, you can send in batch and fill content by template. See the uspeedo console for API docs and account management.
Configure before use (read from environment or .env):
| Variable | Required | Description |
|---|---|---|
USPEEDO_ACCESSKEY_ID | Yes | AccessKey ID (create in console) |
USPEEDO_ACCESSKEY_SECRET | Yes | AccessKey Secret (create in console) |
USPEEDO_ACCOUNT_ID | No | Account ID (optional), see docs |
USPEEDO_TEMPLATE_ID_VERIFICATION | As needed | Verification template ID |
USPEEDO_TEMPLATE_ID_NOTIFICATION | As needed | Notification template ID |
USPEEDO_TEMPLATE_ID_MARKETING | As needed | Marketing template ID |
USPEEDO_SENDER_ID | No | Sender ID; use empty string if none |
Configure the template ID for each SMS type you use. All template IDs in this skill are full-variable templates; TemplateParams is the actual full SMS body (usually a single-element array, e.g. ["Your verification code is 123456, valid for 5 minutes."]).
Before sending, check environment variables. When not configured, guide the user as follows:
1. When USPEEDO_ACCESSKEY_ID or USPEEDO_ACCESSKEY_SECRET is not set, or there is no .env / no environment variables
Tell the user to follow these steps directly. After giving this guidance, stop—do not perform sending or any further steps:
{1}, submit and wait for approval.USPEEDO_TEMPLATE_ID_VERIFICATION, USPEEDO_TEMPLATE_ID_NOTIFICATION, USPEEDO_TEMPLATE_ID_MARKETING accordingly..env or environment variables, then retry sending.2. When AccessKey is set but the template ID for the SMS type being sent is not configured
(e.g. sending verification SMS but USPEEDO_TEMPLATE_ID_VERIFICATION is not set)
Tell the user: You are sending [verification/notification/marketing] SMS but the corresponding template ID is not configured. Go to SMS template management, create a full-variable template for that type (template content {1}), and after approval set the template ID in USPEEDO_TEMPLATE_ID_VERIFICATION / USPEEDO_TEMPLATE_ID_NOTIFICATION / USPEEDO_TEMPLATE_ID_MARKETING.
POST https://api.uspeedo.com/api/v1/usms/SendBatchUSMSMessageapplication/jsonAuthorization: Basic base64(ACCESSKEY_ID:ACCESSKEY_SECRET). Base64-encode USPEEDO_ACCESSKEY_ID:USPEEDO_ACCESSKEY_SECRET and set the header to Basic <encoded_result>.Send only the TaskContent array. Each item has:
""13800138000 or international format (852)55311111["Your verification code is 123456, valid for 5 minutes."])Request body (single verification):
{
"TaskContent": [
{
"TemplateId": "template_id_1",
"SenderId": "USpeedo",
"Target": [
{
"Phone": "13800138000",
"TemplateParams": ["Your verification code is 123456"]
}
]
}
]
}
curl:
curl -X POST "https://api.uspeedo.com/api/v1/usms/SendBatchUSMSMessage" \
-H "Content-Type: application/json" \
-H "Authorization: Basic $(echo -n 'YOUR_ACCESSKEY_ID:YOUR_ACCESSKEY_SECRET' | base64)" \
-d '{
"TaskContent": [
{
"TemplateId": "template_id_1",
"SenderId": "USpeedo",
"Target": [
{
"Phone": "13800138000",
"TemplateParams": ["Your verification code is 123456"]
}
]
}
]
}'
USPEEDO_ACCESSKEY_ID or USPEEDO_ACCESSKEY_SECRET is not set, or there is no .env / no environment variables, follow “Pre-checks and User Guidance” item 1 and stop. If the user is sending a type that has no template ID configured (e.g. verification but USPEEDO_TEMPLATE_ID_VERIFICATION not set), follow item 2.USPEEDO_ACCESSKEY_ID, USPEEDO_ACCESSKEY_SECRET, the chosen template ID, and optional USPEEDO_SENDER_ID from env. Set header Authorization: Basic base64(ACCESSKEY_ID:ACCESSKEY_SECRET) and POST to https://api.uspeedo.com/api/v1/usms/SendBatchUSMSMessage.TemplateParams (for full-variable template, the full SMS content). Format phone in international form (with country/region code) if needed.RetCode and Message, and report success or failure. On error codes, see “Common errors” below.{"Message":"Failed to parse token","RetCode":215398}(852)55311111.""; do not omit the field or the API may error.