Phone Number Verifier

Phone verification

by gooseworks-ai · MIT license · ★ 1,220 on GitHub · updated Sep 21

Phone verification cover

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.

---
name: phone-verification
description: 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.
source: orthogonal
---


# Phone Verification

## 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 Codenpx skills add gooseworks-ai/goose-skills --skill phone-verification -g -a claude-code
Claude 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/research-tools/capabilities/phone-verification
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/cf75f9d335de5b6d340f/phone-verification.zip" -OutFile "$env:TEMP\phone-verification.zip"; Expand-Archive "$env:TEMP\phone-verification.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md3.3 KB
  • skill.meta.json291 B
Read the files here
gooseworks-ai/615c6852 files
SKILL.md
Show the full text129 lines

Phone Verification

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!");
}
1---
2name: phone-verification
3description: 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.
4source: orthogonal
5---
6 
7 
8# Phone Verification
9 
10## Setup
11 
12Read your credentials from ~/.gooseworks/credentials.json:
13```bash
14export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
15export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
16```
17 
18If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`
19 
20All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`
21 
22 
23Verify phone numbers by sending SMS one-time verification codes via Didit.
24 
25## Quick Start
26 
27```bash
28# Send verification code via SMS
29curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
30 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
31 -H "Content-Type: application/json" \
32 -d '{"api":"didit","path":"/v3/phone/send","body":{"phone_number":"+14155551234"}}'
33 
34# Verify the code user provides
35curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
36 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
37 -H "Content-Type: application/json" \
38 -d '{"api":"didit","path":"/v3/phone/check","body":{"phone_number":"+14155551234","code":"123456"}}'
39```
40 
41## Workflow
42 
43### 1. Send Verification Code
44 
45```bash
46curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
47 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
48 -H "Content-Type: application/json" \
49 -d '{"api":"didit","path":"/v3/phone/send"}'
50 -d '{"phone_number": "+14155551234"}'
51```
52 
53**Request format:**
54- Phone must be in E.164 format (e.g., `+14155551234`)
55- Include country code with `+` prefix
56 
57**Response:**
58```json
59{
60 "success": true,
61 "message": "Verification code sent"
62}
63```
64 
65### 2. Verify Code
66 
67When the user provides the code they received:
68 
69```bash
70curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
71 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
72 -H "Content-Type: application/json" \
73 -d '{"api":"didit","path":"/v3/phone/check"}'
74 -d '{"phone_number": "+14155551234", "code": "123456"}'
75```
76 
77**Response (success):**
78```json
79{
80 "success": true,
81 "verified": true
82}
83```
84 
85## Phone Number Format
86 
87Always use E.164 format:
88- US: `+14155551234`
89- UK: `+447911123456`
90- Germany: `+4915123456789`
91 
92## Use Cases
93 
94- **User signup:** Verify phone before creating account
95- **SMS 2FA:** Add phone-based second factor authentication
96- **Account recovery:** Verify ownership via SMS
97- **Delivery confirmation:** Confirm contact number for orders
98 
99## Integration Example (TypeScript)
100 
101```typescript
102import Orthogonal from "@orth/sdk";
103 
104const orthogonal = new Orthogonal({
105 
106});
107 
108// Send verification code via SMS
109const sendResult = await orthogonal.run({
110 api: "didit",
111 path: "/v3/phone/send",
112 body: { phone_number: "+14155551234" }
113});
114 
115// Verify the code
116const verifyResult = await orthogonal.run({
117 api: "didit",
118 path: "/v3/phone/check",
119 body: {
120 phone_number: "+14155551234",
121 code: "123456"
122 }
123});
124 
125if (verifyResult.data.verified) {
126 console.log("Phone verified!");
127}
128```
129 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 1,220
Checked
Source
gooseworks-ai/goose-skills ↗
Creator
gooseworks-ai · 205 listings
View creator

Similar skills

See all →
SkillAPI Interface Designaddyosmani/agent-skills · by addyosmaniGuides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.★ 98.7k GitHub starsAgentVersion-Specific Docs Lookupupstash/context7 · by upstashPulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.★ 62.3k GitHub starsSkillAdaptyv Bio Foundry APIK-Dense-AI/scientific-agent-skills · by K-Dense-AIHow to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.★ 46k GitHub starsSkill.NET Backend Developerwshobson/agents · by wshobsonMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.★ 39.9k GitHub starsSkillGemini Agent API Guidegoogle/skills · by googleGuides the usage of Gemini Interactions API on Gemini Enterprise Agent Platform. Use when the user wants to use the stateful, server-managed Interactions API for multi-turn conversations, background execution, streaming, structured output, and function calling on the Agent Platform.★ 20.9k GitHub starsSkillGemini Notebook Automationteng-lin/notebooklm-py · by teng-linInstall, authenticate, troubleshoot, and operate Gemini Notebook through the notebooklm-py CLI or typed async Python API. Use for notebook and source management, grounded chat and research, and artifact generation or download when the user mentions Gemini Notebook, notebooklm-py, the notebooklm CLI, or its Python API. Do not use for the generic Gemini API or unrelated content creation.★ 19.6k GitHub stars

More from gooseworks-ai

SkillAd Angle Minergooseworks-ai/goose-skills · by gooseworks-aiMine the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads. Extracts actual pain language, competitor weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank with proof quotes and recommended ad formats per angle.★ 1.2k GitHub starsSkillAd Campaign Analyzergooseworks-ai/goose-skills · by gooseworks-aiAnalyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.★ 1.2k GitHub starsSkillLead Quality Analyzergooseworks-ai/goose-skills · by gooseworks-aiFor paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.★ 1.2k GitHub starsSkillMessage Match Auditorgooseworks-ai/goose-skills · by gooseworks-aiAnalyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.★ 1.2k GitHub starsSkillAI Search Visibilitygooseworks-ai/goose-skills · by gooseworks-aiCheck and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Set up tracking, run visibility analyses, audit your website for AI readability, and get actionable recommendations. Uses the npx goose-aeo@latest CLI.★ 1.2k GitHub starsSkillAmazon Product Searchgooseworks-ai/goose-skills · by gooseworks-aiSearch Amazon products - find items, compare prices, read reviews★ 1.2k GitHub stars