Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Verify 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.
.claude/skills/gooseworks-ai-phone-verification/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 72% | 0% |
Read your credentials from ~/.gooseworks/credentials.json:
bashexport 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.
bash# 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"}}'
bashcurl -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:
+14155551234)+ prefixResponse:
json{ "success": true, "message": "Verification code sent" }
When the user provides the code they received:
bashcurl -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):
json{ "success": true, "verified": true }
Always use E.164 format:
+14155551234+447911123456+4915123456789typescriptimport 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!"); }
Other measured skills in the registry, with their headline benchmark lift.