New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Verify if an email address is valid and deliverable

Email Verification

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

Email Verification cover

Verify if an email address is valid and deliverable

---
name: verify-email
description: Verify if an email address is valid and deliverable
source: orthogonal
---


# Email 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 verify-email -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/lead-generation/capabilities/verify-email
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/fb430daed33072185841/verify-email.zip" -OutFile "$env:TEMP\verify-email.zip"; Expand-Archive "$env:TEMP\verify-email.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.md5.0 KB
  • skill.meta.json280 B
Read the files here
gooseworks-ai/615c6852 files
SKILL.md
Show the full text135 lines

Email 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"

Check if an email address is valid, exists, and can receive mail. Prevent bounces before sending.

When to Use

  • User wants to verify an email before sending
  • User asks "is this email address real?"
  • Cleaning an email list
  • Before cold outreach to avoid bounces
  • Validating user-provided email addresses

How It Works

Uses Hunter or Tomba APIs to verify email deliverability through multiple checks including syntax, domain, and mailbox verification.

Usage

Verify with Hunter
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'
Verify with Tomba
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"tomba","path":"/v1/email-verifier","query":{"email":"[email protected]"}}'

Parameters

  • email (required) - The email address to verify

Response

Hunter Response

Returns data object:

  • status (string) - valid, invalid, accept_all, or unknown
  • score (integer) - Confidence score 0-100
  • result (string) - deliverable, undeliverable, or risky (deprecated — use status)
  • regexp (boolean) - Syntax is valid
  • gibberish (boolean) - Address looks random
  • disposable (boolean) - Temporary email service
  • webmail (boolean) - Free webmail provider (Gmail, Yahoo, etc.)
  • mx_records (boolean) - Domain has MX records
  • smtp_server (boolean) - SMTP server responds
  • smtp_check (boolean) - Mailbox exists on server
  • accept_all (boolean) - Server accepts all addresses
  • block (boolean) - Email is blocked
  • sources (array) - Web pages where this email was found
Tomba Response

Returns data.email object:

  • status (string) - valid, invalid, or accept_all
  • result (string) - deliverable, undeliverable, or risky
  • score (integer) - Confidence score 0-100
  • smtp_provider (string) - Email provider name (e.g., "Google Workspace")
  • mx (object) - records array of MX hostnames
  • mx_check, smtp_server, smtp_check (boolean) - Verification checks
  • accept_all, greylisted, block (boolean) - Server behavior flags
  • gibberish, disposable, webmail, regex (boolean) - Address quality checks
  • whois (object) - Domain registration: registrar_name, referral_url, created_date

Also returns data.sources array with uri, website_url, extracted_on, last_seen_on, still_on_page.

Result Types

Status Meaning Action
valid Mailbox exists and accepts mail Safe to send
invalid Mailbox doesn't exist or domain has no MX Don't send
accept_all Server accepts any address — can't confirm mailbox Send with caution
unknown Couldn't verify (timeout, greylisting) Verify manually

Examples

User: "Check if [email protected] is a real email"

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'

User: "Verify [email protected] before I send my pitch"

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"tomba","path":"/v1/email-verifier","query":{"email":"[email protected]"}}'

Error Handling

  • 400 - Missing or malformed email parameter
  • 401 - Invalid API key — check orth auth
  • 429 - Rate limit exceeded — wait and retry
  • If both APIs return unknown, the mail server is likely blocking verification — try later
  • Tomba may return greylisted: true — means the server deferred; retry after a few minutes

Tips

  • Always verify emails before bulk sending to protect sender reputation
  • "Valid" doesn't guarantee delivery - content still matters
  • Role-based emails (info@, sales@) may be valid but less effective for outreach
  • Disposable emails (tempmail, etc.) are detected and flagged
  • Some corporate domains block verification - "unknown" doesn't mean invalid
1---
2name: verify-email
3description: Verify if an email address is valid and deliverable
4source: orthogonal
5---
6 
7 
8# Email 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 
23Check if an email address is valid, exists, and can receive mail. Prevent bounces before sending.
24 
25## When to Use
26 
27- User wants to verify an email before sending
28- User asks "is this email address real?"
29- Cleaning an email list
30- Before cold outreach to avoid bounces
31- Validating user-provided email addresses
32 
33## How It Works
34 
35Uses Hunter or Tomba APIs to verify email deliverability through multiple checks including syntax, domain, and mailbox verification.
36 
37## Usage
38 
39### Verify with Hunter
40 
41```bash
42curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
43 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
44 -H "Content-Type: application/json" \
45 -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'
46```
47 
48### Verify with Tomba
49 
50```bash
51curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
52 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
53 -H "Content-Type: application/json" \
54 -d '{"api":"tomba","path":"/v1/email-verifier","query":{"email":"[email protected]"}}'
55```
56 
57## Parameters
58 
59- **email** (required) - The email address to verify
60 
61## Response
62 
63### Hunter Response
64Returns `data` object:
65- **status** (string) - `valid`, `invalid`, `accept_all`, or `unknown`
66- **score** (integer) - Confidence score 0-100
67- **result** (string) - `deliverable`, `undeliverable`, or `risky` *(deprecated — use `status`)*
68- **regexp** (boolean) - Syntax is valid
69- **gibberish** (boolean) - Address looks random
70- **disposable** (boolean) - Temporary email service
71- **webmail** (boolean) - Free webmail provider (Gmail, Yahoo, etc.)
72- **mx_records** (boolean) - Domain has MX records
73- **smtp_server** (boolean) - SMTP server responds
74- **smtp_check** (boolean) - Mailbox exists on server
75- **accept_all** (boolean) - Server accepts all addresses
76- **block** (boolean) - Email is blocked
77- **sources** (array) - Web pages where this email was found
78 
79### Tomba Response
80Returns `data.email` object:
81- **status** (string) - `valid`, `invalid`, or `accept_all`
82- **result** (string) - `deliverable`, `undeliverable`, or `risky`
83- **score** (integer) - Confidence score 0-100
84- **smtp_provider** (string) - Email provider name (e.g., "Google Workspace")
85- **mx** (object) - `records` array of MX hostnames
86- **mx_check**, **smtp_server**, **smtp_check** (boolean) - Verification checks
87- **accept_all**, **greylisted**, **block** (boolean) - Server behavior flags
88- **gibberish**, **disposable**, **webmail**, **regex** (boolean) - Address quality checks
89- **whois** (object) - Domain registration: `registrar_name`, `referral_url`, `created_date`
90 
91Also returns `data.sources` array with `uri`, `website_url`, `extracted_on`, `last_seen_on`, `still_on_page`.
92 
93## Result Types
94 
95| Status | Meaning | Action |
96|--------|---------|--------|
97| **valid** | Mailbox exists and accepts mail | Safe to send |
98| **invalid** | Mailbox doesn't exist or domain has no MX | Don't send |
99| **accept_all** | Server accepts any address — can't confirm mailbox | Send with caution |
100| **unknown** | Couldn't verify (timeout, greylisting) | Verify manually |
101 
102## Examples
103 
104**User:** "Check if [email protected] is a real email"
105```bash
106curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
107 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
108 -H "Content-Type: application/json" \
109 -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'
110```
111 
112**User:** "Verify [email protected] before I send my pitch"
113```bash
114curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
115 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
116 -H "Content-Type: application/json" \
117 -d '{"api":"tomba","path":"/v1/email-verifier","query":{"email":"[email protected]"}}'
118```
119 
120## Error Handling
121 
122- **400** - Missing or malformed `email` parameter
123- **401** - Invalid API key — check `orth auth`
124- **429** - Rate limit exceeded — wait and retry
125- If both APIs return `unknown`, the mail server is likely blocking verification — try later
126- Tomba may return `greylisted: true` — means the server deferred; retry after a few minutes
127 
128## Tips
129 
130- Always verify emails before bulk sending to protect sender reputation
131- "Valid" doesn't guarantee delivery - content still matters
132- Role-based emails (info@, sales@) may be valid but less effective for outreach
133- Disposable emails (tempmail, etc.) are detected and flagged
134- Some corporate domains block verification - "unknown" doesn't mean invalid
135 
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 · 206 listings
View creator

Made with verify-email

Email Verification — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)
Email Verification — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)

by gooseworks-ai

Similar skills

See all →
SkillAct as the company research engine for /sales research <urlCompany Research & Firmographic Analysiszubair-trabzada/ai-sales-team-claude · by zubair-trabzadaYou are the company research engine for /sales research <url>. You produce deep, structured intelligence on a prospect company covering 8…★ 1.4k GitHub starsSkillEthical people-finding and identity verificationPrivateinvestigatordanielmiessler/LifeOS · by danielmiesslerEthical people-finding and identity verification via parallel research agents across people-search sites, social media, public records, and reverse phone/email/image/username lookups, with confidence-scored results requiring 3+ matching identifiers. USE WHEN find person, locate person, reconnect, lost contact, old friend, reverse phone lookup, who owns this email, reverse image search, find by username, verify identity, people search, public-data background check, who is this caller. NOT FOR structured due-diligence or company/entity intelligence investigations, or general web research synthesis (use Research).★ 19.3k GitHub starsSkillFree People Search to discover ICP-matching leadsApollo lead findergooseworks-ai/goose-skills · by gooseworks-aiTwo-phase Apollo.io prospecting: free People Search to discover ICP-matching leads, then selective enrichment to reveal emails/phones (credits per contact). Creates Apollo lists. Deduplicates against existing contacts by LinkedIn URL.★ 1.2k GitHub starsSkillFind decision-makers at a specific company using ApolloCompany contact findergooseworks-ai/goose-skills · by gooseworks-aiFind decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP. Given a company name and target titles, returns a list of contacts with name, title, LinkedIn URL, and location.★ 1.2k GitHub starsSkillFind company funding history, investorsCompany funding searchgooseworks-ai/goose-skills · by gooseworks-aiFind company funding history, investors, and investment details★ 1.2k GitHub starsSkillFull company intelligence reportCompany Intelligence - Comprehensive Company Reportsgooseworks-ai/goose-skills · by gooseworks-aiFull company intelligence report - overview, team, funding, products, news★ 1.2k GitHub stars

More from gooseworks-ai

SkillMine the highest-converting ad angles from customer reviewsAd 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 starsSkillAnalyze ad campaign performance data to identify what'sAd 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 starsSkillFor paid lead-gen and participant-recruitment adsAd lead 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 starsSkillAnalyze the message match between your ads and landing pagesAd to landing page 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 starsSkillCheck and improve your brand's visibility across AI searchAeogooseworks-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 starsSkillSearch Amazon products - find items, compare pricesAmazon Product Searchgooseworks-ai/goose-skills · by gooseworks-aiSearch Amazon products - find items, compare prices, read reviews★ 1.2k GitHub stars