Verify if an email address is valid and deliverable
65
78%
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/lead-generation/capabilities/verify-email/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"
Check if an email address is valid, exists, and can receive mail. Prevent bounces before sending.
Uses Hunter or Tomba APIs to verify email deliverability through multiple checks including syntax, domain, and mailbox verification.
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":"john@example.com"}}'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":"jane@company.com"}}'Returns data object:
valid, invalid, accept_all, or unknowndeliverable, undeliverable, or risky (deprecated — use status)Returns data.email object:
valid, invalid, or accept_alldeliverable, undeliverable, or riskyrecords array of MX hostnamesregistrar_name, referral_url, created_dateAlso returns data.sources array with uri, website_url, extracted_on, last_seen_on, still_on_page.
| 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 |
User: "Check if hello@acme.com 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":"hello@acme.com"}}'User: "Verify sarah.jones@startup.io 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":"sarah.jones@startup.io"}}'email parameterorth authunknown, the mail server is likely blocking verification — try latergreylisted: true — means the server deferred; retry after a few minutes8866b2a
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.