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.
62
73%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/research-tools/capabilities/phone-verification/SKILL.mdRead 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.
# 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"}}'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:
+14155551234)+ prefixResponse:
{
"success": true,
"message": "Verification code sent"
}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
}Always use E.164 format:
+14155551234+447911123456+4915123456789import 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!");
}8866b2a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.