SMS Text Sender
Send Text Message

Send SMS text messages to phone numbers. Use when the user asks to send a text, send an SMS, text someone, message a phone number, or send a notification via text message.
---
name: send-sms-textbelt
description: Send SMS text messages to phone numbers. Use when the user asks to send a text, send an SMS, text someone, message a phone number, or send a notification via text message.
source: orthogonal
---
# Send Text Message
## Setup
Read your credentials from ~/.gooseworks/credentials.json:
```bash
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
```
If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`Overview
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
Manual install (npx, ZIP)
Claude Code
npx skills add gooseworks-ai/goose-skills --skill send-sms-textbelt -g -a claude-codeClaude Code (manual)
mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/outreach/capabilities/send-sms-textbeltWindows (PowerShell)
New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/79d8a8a86d2218824333/send-sms-textbelt.zip" -OutFile "$env:TEMP\send-sms-textbelt.zip"; Expand-Archive "$env:TEMP\send-sms-textbelt.zip" -DestinationPath "$HOME\.claude\skills" -ForceClaude.ai / desktop
Codex, Cursor, other agents
Connects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md2.9 KBskill.meta.json283 B
Read the files here
gooseworks-ai/
SKILL.md
Show the full text89 lines
Send Text Message
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Send SMS messages via the Textbelt API on Orthogonal.
Workflow
Step 1: Gather Info
Ask the user for:
- Phone number (required) - US/Canada: 10-digit with area code. International: E.164 format (e.g., +44...)
- Message (required) - Max 800 characters. No URLs allowed.
Step 2: Send the Message
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"textbelt","path":"/text"}'
"phone": "<phone_number>",
"message": "<message_text>"
}'
Step 3: Confirm Delivery
The response includes a textId. Use it to check delivery status:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"textbelt","path":"/status/{textId}"}'
This endpoint is free.
Response
Send Response (/text)
- success (boolean) -
trueif message was queued - textId (string) - Message ID for delivery tracking (only on success)
- quotaRemaining (integer) - Remaining SMS credits
- error (string) - Error message (only on failure)
Status Response (/status/{textId})
- status (string) -
DELIVERED,SENDING,FAILED, orUNKNOWN
Constraints
- Max 800 characters per message
- No URLs in message text
- Sender name is optional and not visible to the recipient in most countries
Optional Parameters
When sending, you can also include:
sender(string) - Business/org name for regulatory purposesreplyWebhookUrl(string) - US only: URL to receive reply webhookswebhookData(string) - Extra data passed to webhook (max 100 chars)
Error Handling
- success: false with
errorfield describes the issue (e.g., invalid phone number, insufficient credits) - US/Canada numbers only work from US/Canada IP region
- International numbers require E.164 format (e.g.,
+44...) - Messages containing URLs are rejected — use descriptions instead
- Max 800 characters — longer messages are rejected, not truncated
| 1 | |
| 2 | name send-sms-textbelt |
| 3 | description Send SMS text messages to phone numbers. Use when the user asks to send a text, send an SMS, text someone, message a phone number, or send a notification via text message. |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # Send Text Message |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Send SMS messages via the Textbelt API on Orthogonal. |
| 24 | |
| 25 | ## Workflow |
| 26 | |
| 27 | ### Step 1: Gather Info |
| 28 | |
| 29 | Ask the user for: |
| 30 | **Phone number** (required) - US/Canada: 10-digit with area code. International: E.164 format (e.g., +44...) |
| 31 | **Message** (required) - Max 800 characters. No URLs allowed. |
| 32 | |
| 33 | ### Step 2: Send the Message |
| 34 | |
| 35 | |
| 36 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 37 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 38 | -H "Content-Type: application/json" \ |
| 39 | -d '{"api":"textbelt","path":"/text"}' |
| 40 | "phone": "<phone_number>", |
| 41 | "message": "<message_text>" |
| 42 | }' |
| 43 | |
| 44 | |
| 45 | ### Step 3: Confirm Delivery |
| 46 | |
| 47 | The response includes a `textId`. Use it to check delivery status: |
| 48 | |
| 49 | |
| 50 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 51 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 52 | -H "Content-Type: application/json" \ |
| 53 | -d '{"api":"textbelt","path":"/status/{textId}"}' |
| 54 | |
| 55 | |
| 56 | This endpoint is free. |
| 57 | |
| 58 | ## Response |
| 59 | |
| 60 | ### Send Response (`/text`) |
| 61 | **success** (boolean) - `true` if message was queued |
| 62 | **textId** (string) - Message ID for delivery tracking (only on success) |
| 63 | **quotaRemaining** (integer) - Remaining SMS credits |
| 64 | **error** (string) - Error message (only on failure) |
| 65 | |
| 66 | ### Status Response (`/status/{textId}`) |
| 67 | **status** (string) - `DELIVERED`, `SENDING`, `FAILED`, or `UNKNOWN` |
| 68 | |
| 69 | ## Constraints |
| 70 | |
| 71 | Max 800 characters per message |
| 72 | No URLs in message text |
| 73 | Sender name is optional and not visible to the recipient in most countries |
| 74 | |
| 75 | ## Optional Parameters |
| 76 | |
| 77 | When sending, you can also include: |
| 78 | `sender` (string) - Business/org name for regulatory purposes |
| 79 | `replyWebhookUrl` (string) - US only: URL to receive reply webhooks |
| 80 | `webhookData` (string) - Extra data passed to webhook (max 100 chars) |
| 81 | |
| 82 | ## Error Handling |
| 83 | |
| 84 | **success: false** with `error` field describes the issue (e.g., invalid phone number, insufficient credits) |
| 85 | US/Canada numbers only work from US/Canada IP region |
| 86 | International numbers require E.164 format (e.g., `+44...`) |
| 87 | Messages containing URLs are rejected — use descriptions instead |
| 88 | Max 800 characters — longer messages are rejected, not truncated |
| 89 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 205 listings
Similar skills
See all →
SkillAPI Interface Design
AgentVersion-Specific Docs Lookup
SkillAdaptyv Bio Foundry API
Skill.NET Backend Developer
SkillGemini Agent API Guide
SkillGemini Notebook AutomationMore from gooseworks-ai
SkillAd Angle Miner
SkillAd Campaign Analyzer
SkillLead Quality Analyzer
SkillMessage Match Auditor
SkillAI Search Visibility
SkillAmazon Product Search