AI outreach
Catch dead addresses before they burn tokens, sequences, and sender reputation.
Infrastructure built for humans breaks at agent scale
No free API keys: start with Starter for $5/month or run the limited browser demo. No dashboard needed. Instant JSON. VerifyMail gives agents a single endpoint to run format validation, MX checks, SMTP mailbox probes, and catch-all detection before they send, enrich, score, or store bad data.
No free API keys. Starter is $5/month and includes production credits.
Used by AI agents doing outreach, lead scraping, and email automation.
Pricing
Starter launch plan starts at $5/month this week.
Interface
No dashboard, no CSV upload, no human review loop.
Checks
Format, MX, SMTP, and catch-all signals surfaced in instant JSON.
Agent-native surface
One request in. Decision out.
Request
POST /api/verify
{
"email": "test@example.com"
}Response
{
"email": "test@example.com",
"status": "valid",
"reason": "Mailbox confirmed via SMTP",
"catch_all": false,
"confidence": "high",
"checks": {
"format": true,
"mx": true,
"smtp": true,
"catch_all": false
}
}Vs. ZeroBounce / NeverBounce
VerifyMail is built for agents that need a clean decision surface: per-call pricing, API-first usage, and SMTP-level verification without dashboard bloat in the path.
Who uses it
Outreach, lead scraping, and email automation all break when bad addresses get through. Verify first. Then act on the result.
AI outreach
Catch dead addresses before they burn tokens, sequences, and sender reputation.
Lead scraping
Verify scraped contacts inline instead of dumping them into a separate cleanup workflow.
Email automation
Gate sends, enrichments, and handoffs with a verification check that returns fast enough to stay synchronous.
Live demo
Use the real VerifyMail flow in the browser before buying. Production API keys are paid, and Starter is $5/month. The live check uses the same format, MX, SMTP, and catch-all logic as the API.
Live demo
Try it — enter any email address.
Uses the real VerifyMail API in a limited browser demo.
Starter: $5/month →Result
$ waiting for email…
Enter an email to see the live API response.
How it works
VerifyMail normalizes the address and rejects malformed syntax before the workflow wastes time on a bad input.
The API confirms the domain publishes mail servers that can actually receive inbound email.
VerifyMail probes mailbox existence with a lightweight SMTP check. No message body is sent.
If the mailbox accepts mail, VerifyMail also tests whether the domain accepts every address so you can downgrade risky catch-all results.
API docs
What the API does today: format validation, MX lookup, SMTP mailbox probing, and catch-all detection, returned as structured JSON your agent can act on immediately.
Bash
curl -X POST https://verifymail.nanocorp.app/api/verify \
-H "Authorization: Bearer vm_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"email": "test@example.com"
}'JSON
{
"email": "test@example.com",
"status": "valid",
"reason": "Mailbox confirmed via SMTP",
"catch_all": false,
"confidence": "high",
"checks": {
"format": true,
"mx": true,
"smtp": true,
"catch_all": false
}
}Request spec
Endpoint
POST /api/verify
Auth
Authorization: Bearer vm_live_your_api_key
Headers
Content-Type: application/json
Request body
{ "email": "test@example.com" }
Response fields
Normalized email address returned by the API.
status
"valid" | "invalid" | "risky"
reason
Human-readable explanation for your agent logs or routing rules.
catch_all
Whether the domain appears to accept mail for random fake recipients.
confidence
"high" | "medium" | "low" based on how conclusive the verification path was.
checks
Per-layer booleans for format, MX, SMTP, and catch-all detection.
Status meanings
valid
Format, MX, and SMTP checks succeeded and catch-all was not detected.
invalid
Format failed, MX is missing, or the mailbox was hard-rejected during SMTP probing.
risky
Catch-all domain, role inbox, or an inconclusive SMTP / DNS outcome where caution is safer.
Under the hood
Format validation and normalization
DNS MX lookup for the target domain
SMTP mailbox probe with no email body sent
Catch-all detection on accepting domains
What you see here matches the current API behavior: format, MX, SMTP, and catch-all checks with confidence scoring in the response.
MCP / tool integration
Agents can call VerifyMail directly from an MCP server, a custom runtime, or any workflow runner that can make HTTP requests.
Workflow
Tool output
tool: verify_email
input:
email: "lead@company.com"
output:
status: "valid"
reason: "Mailbox confirmed via SMTP"
catch_all: false
confidence: "high"Minimal surface area means less wrapper code, fewer retries, and less agent confusion.
Pricing
Starter is $5/month at launch and includes 200+ verifications.
Starter Pack
$5
100 verifications
For prompt tests, first outreach runs, and small agent pipelines.
Growth Pack
$20
1,000 verifications
For active outbound systems and recurring production jobs.
Scale Pack
$99
10,000 verifications
For continuous lead scoring, enrichment, and higher-volume automation.
Why VerifyMail
Accuracy upgrade
Infrastructure built for humans assumes someone logs in, uploads a list, and waits. Agents do not.
Burst usage should not force a monthly contract. Buy credits once and consume them when the workflow needs them.
VerifyMail is shaped for inline checks so the agent can branch immediately instead of waiting for a later batch result.
FAQ
The limited browser demo, what risky means, how credits work, and what happens if the API is unavailable.
The homepage has a limited browser demo, but production API keys are paid. Starter is $5/month during launch and unlocks 200+ verifications.
VerifyMail uses format validation, MX lookup, and where available, a lightweight SMTP mailbox probe, followed by catch-all detection on accepting domains. No email is sent during the SMTP check. The API also returns confidence scoring so your workflow can separate SMTP-confirmed inboxes from catch-all or inconclusive results.
Risky means the address should not be treated as a clean personal inbox yet. That includes catch-all domains, role accounts like sales@, and cases where SMTP or DNS checks were inconclusive and a retry is the safer next step.
Purchased credits do not expire within 12 months of purchase. After 12 months of account inactivity, unused credits may be forfeited under the current terms.
Check the status page first. Requests that fail with an HTTP error do not consume a credit, and you can retry once the service is healthy again.