Phone Verification
SkillCommunicationVerify phone numbers using SMS one-time codes via the Didit API. Use when you need to confirm a user owns a phone number, implement SMS-based 2FA, or validate phone during signup/onboarding flows.
Use Phone Verification in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Phone Verification and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Phone Verification skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by gooseworks-ai/goose-skills in skills/research-tools/capabilities/phone-verification/SKILL.md and read by Ahel’s review.
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"
Verify phone numbers by sending SMS one-time verification codes via Didit.
Quick Start
# Send verification code via SMS
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"didit","path":"/v3/phone/send","body":{"phone_number":"+14155551234"}}'
# Verify the code user provides
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"didit","path":"/v3/phone/check","body":{"phone_number":"+14155551234","code":"123456"}}'
Workflow
1. Send Verification Code
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"didit","path":"/v3/phone/send"}'
-d '{"phone_number": "+14155551234"}'
Request format:
- Phone must be in E.164 format (e.g.,
+14155551234) - Include country code with
+prefix
Response:
{
"success": true,
"message": "Verification code sent"
}
2. Verify Code
When the user provides the code they received:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"didit","path":"/v3/phone/check"}'
-d '{"phone_number": "+14155551234", "code": "123456"}'
Response (success):
{
"success": true,
"verified": true
}
Phone Number Format
Always use E.164 format:
- US:
+14155551234 - UK:
+447911123456 - Germany:
+4915123456789
Use Cases
- User signup: Verify phone before creating account
- SMS 2FA: Add phone-based second factor authentication
- Account recovery: Verify ownership via SMS
- Delivery confirmation: Confirm contact number for orders
Integration Example (TypeScript)
import Orthogonal from "@orth/sdk";
const orthogonal = new Orthogonal({
});
// Send verification code via SMS
const sendResult = await orthogonal.run({
api: "didit",
path: "/v3/phone/send",
body: { phone_number: "+14155551234" }
});
// Verify the code
const verifyResult = await orthogonal.run({
api: "didit",
path: "/v3/phone/check",
body: {
phone_number: "+14155551234",
code: "123456"
}
});
if (verifyResult.data.verified) {
console.log("Phone verified!");
}
Signals
- GitHub stars
- 1k
- Forks
- 211
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
phone-verification- Source
- github.com/gooseworks-ai/goose-skills
github.com/gooseworks-ai/goose-skills
Related picks
Skill · mattpocock
The pick for TypeScripttypescript-pro
Skill · jeffallan
The pick for TypeScriptslack-gif-creator
Skill · anthropics
More in Communicationerror-handling
Skill · affaan-m
More in Communicationemails
Skill · coreyhaines31
More in Communicationwait-what
Skill · mattpocock
More in Communication