Skills 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
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/aeggerd/retarus-sms4a" ~/.claude/skills/openclaw-skills-retarus-sms4a && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/aeggerd/retarus-sms4a" ~/.openclaw/skills/openclaw-skills-retarus-sms4a && rm -rf "$T"
manifest:
skills/aeggerd/retarus-sms4a/SKILL.mdsource content
Retarus 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:
andRETARUS_SMS4A_USERNAMERETARUS_SMS4A_PASSWORD
pointing to a JSON orRETARUS_SMS4A_SECRET_FILE
-style file with.env
andusernamepassword- The default local secret file path
or~/.openclaw/secrets/retarus-sms4a.env~/.openclaw/secrets/retarus-sms4a.json - Explicit
and--username
flags only for local testing--password
- 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
as the default send endpoint unless the user explicitly wantseu
orde1
.de2 - Do not rely on the
hostname for status lookups. Theeu
endpoint is DNS-balanced acrosseu
andde1
, so a status lookup must try both datacenters.de2 - The
command defaults tostatus
, which tries--datacenter auto
first and thende2
.de1 - If the user explicitly prefers
orde1
, still try both datacenters and use the chosen one only as the first lookup target.de2
Sending Workflow
- For common one-message jobs, pass
and one or more--text
values.--recipient - For advanced jobs, pass
with a JSON body matching the OpenAPI--payload-file
schema.JobRequest - Use
first if you want to validate payload assembly without sending anything.--dry-run - Return the created
and the datacenter that accepted the job.jobId
Status Workflow
- Use
to querystatus --job-id ...
.GET /sms?jobId=... - Return the successful datacenter together with the recipient reports.
- If one datacenter returns
or404
, continue with the next datacenter.500 - 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
for operator-managed credentials on an OpenClaw host.~/.openclaw/secrets/retarus-sms4a.env - If a secret file is used, support either:
- JSON:
{"username":"...","password":"..."}
style:.env
- JSON:
RETARUS_SMS4A_USERNAME=... RETARUS_SMS4A_PASSWORD=...
Reference
- Read
for the server aliases, supported helper-script options, and the subset of the OpenAPI schema this skill uses most often.references/api.md