retarus-sms4a
Send SMS jobs and check SMS delivery status through the Retarus SMS for Applications REST API. Use when Codex or OpenClaw needs to create SMS jobs, inspect per-recipient delivery results for a Retarus job ID, work from the SMS4A OpenAPI schema, or route requests across the `eu`, `de1`, and `de2` datacenters with the required `eu` status fallback to both German datacenters.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/aeggerd/retarus-sms4aRetarus SMS4A
Overview
Use this skill for operational work with the Retarus SMS for Applications API: prepare or validate SMS job payloads, send jobs, and fetch per-recipient status for a jobId.
Prefer the helper script in scripts/sms4a_api.py instead of hand-writing HTTP calls. It already handles Basic Auth, simple payload construction, full-payload file input, datacenter selection, and the eu status fallback across de2 and de1.
Quick Start
- Resolve credentials from the secret store into one of these supported inputs:
RETARUS_SMS4A_USERNAMEandRETARUS_SMS4A_PASSWORDRETARUS_SMS4A_SECRET_FILEpointing to a JSON or.env-style file withusernameandpassword- The default local secret file path
~/.openclaw/secrets/retarus-sms4a.envor~/.openclaw/secrets/retarus-sms4a.json - Explicit
--usernameand--passwordflags only for local testing
- Send a simple SMS job:
python3 scripts/sms4a_api.py send \
--datacenter eu \
--text "Your access code is 123456" \
--recipient +4917600000000 \
--status-requested
- Check recipient status for a job:
python3 scripts/sms4a_api.py status --job-id J.20221116-102407.583-0lajfsfmoXIZJO93PQ
Datacenter Rules
- Use
euas the default send endpoint unless the user explicitly wantsde1orde2. - Do not rely on the
euhostname for status lookups. Theeuendpoint is DNS-balanced acrossde1andde2, so a status lookup must try both datacenters. - The
statuscommand defaults to--datacenter auto, which triesde2first and thende1. - If the user explicitly prefers
de1orde2, still try both datacenters and use the chosen one only as the first lookup target.
Sending Workflow
- For common one-message jobs, pass
--textand one or more--recipientvalues. - For advanced jobs, pass
--payload-filewith a JSON body matching the OpenAPIJobRequestschema. - Use
--dry-runfirst if you want to validate payload assembly without sending anything. - Return the created
jobIdand the datacenter that accepted the job.
Status Workflow
- Use
status --job-id ...to queryGET /sms?jobId=.... - Return the successful datacenter together with the recipient reports.
- If one datacenter returns
404or500, continue with the next datacenter. - If both datacenters fail, report both attempts and their response codes.
Credential Handling
- Never hardcode credentials into the skill files.
- Prefer secret-store backed environment injection.
- Prefer the standard local secret path
~/.openclaw/secrets/retarus-sms4a.envfor operator-managed credentials on an OpenClaw host. - If a secret file is used, support either:
- JSON:
{"username":"...","password":"..."} .envstyle:
- JSON:
RETARUS_SMS4A_USERNAME=...
RETARUS_SMS4A_PASSWORD=...
Reference
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-aeggerd-retarus-sms4a": {
"enabled": true,
"auto_update": true
}
}
}