Free tier · no credit card

Stop sending email to addresses that bounce.

A low-latency email verification API: syntax, MX lookup, disposable & temporary address detection, role-account flagging, and typo correction — in one call.

邮箱可达性验证 API:语法校验 + MX 查询 + 一次性邮箱识别 + 角色地址标注 + 拼写纠错,一次请求全返回。免费档无需信用卡。

Try it free Read the docs

Free email checker

Runs entirely in your browser. No signup, no logging.


  

What you get per request

Every response includes a 0–100 deliverability score and a machine-readable reason code.

CheckWhat it doesWhy it matters
syntaxRFC 5322 practical subset validationCatches typos and malformed input before you spend money sending
mxMX record lookup with provider fingerprintingNo MX = the domain cannot receive mail at all
disposable1,400+ temporary email domains (yopmail, mailinator, guerrillamail…)Removes burners that inflate your list and tank engagement
roleFlags info@, support@, noreply@ and similarDepartmental addresses convert poorly and complain more
freeDetects Gmail, QQ, 163, Outlook and other consumer domainsEssential signal for B2B lead scoring
suggestionzhang@gmail.cozhang@gmail.comRecovers signups that would otherwise be lost
smtp (self-hosted only)Mailbox-level probe with catch-all detectionHighest confidence tier. The hosted Workers endpoint cannot do this (no raw TCP); it is in the Node build

Quick start

curl "https://mailprobe.kevin-c0319.workers.dev/v1/verify?email=test@gmail.com"

# → {
#   "email":"test@gmail.com","valid":true,"deliverable":true,"reason":"ok","score":90,
#   "checks":{"syntax":true,"disposable":false,"free":true,"role":false,
#             "mx":{"ok":true,"source":"dns","records":[{"exchange":"gmail-smtp-in.l.google.com","priority":5}]}},
#   "provider":"google-workspace","duration_ms":18
# }
// JavaScript
const r = await fetch('https://mailprobe.kevin-c0319.workers.dev/v1/verify?email=' + encodeURIComponent(email), {
  headers: { 'x-api-key': process.env.MAILPROBE_KEY }
});
const { valid, reason, score } = await r.json();
# Python
import httpx
r = httpx.get("https://mailprobe.kevin-c0319.workers.dev/v1/verify",
              params={"email": email}, headers={"x-api-key": KEY}).json()
if r["valid"] and r["score"] >= 70:
    send(email)

Get a free API key

1,000 verifications a month, no credit card. Enter your email and the key is issued immediately.


  

Pricing

Free to start, no credit card. When you outgrow it, pay once. Nothing recurring.

Free

$0
  • 1,000 verifications every month
  • Syntax + MX + disposable + role
  • Typo suggestions
  • Issued instantly below, no signup call
Get key

100k credits

$19 one-time
  • 100,000 verifications
  • Batch endpoint (20 per call)
  • Provider fingerprinting
  • Email support
Buy on Gumroad

API reference

EndpointMethodAuthNotes
/v1/verify?email=GEToptionalAnonymous: 60 req/hour by IP
/v1/verifyPOSToptionalBody: {"email":"…","smtp":true}
/v1/verify/batchPOSTrequiredUp to 20 emails per call (paid plans)
/v1/signupPOSTIssues a free key, 1,000/month. Body: {"email":"you@company.com"}
/healthGETUptime monitoring

Reason codes: ok · invalid_format · illegal_chars · too_long · no_mx · mx_timeout · disposable · typo_suspect · mailbox_not_found

FAQ

Is this really free?

Yes. The free tier gives 1,000 verifications per month with no credit card. Anonymous requests are also accepted at 60/hour per IP so you can test before signing up.

Do you store the email addresses I verify?

No. Verification is stateless — addresses are processed in memory and not persisted. Only an aggregate request count is kept for quota accounting.

How accurate is verification without SMTP probing?

MX + disposable + syntax catches the large majority of invalid addresses and needs no extra infrastructure. Mailbox-level SMTP probing is not available on the hosted endpoint, because Cloudflare Workers cannot open raw TCP connections. It ships in the self-hosted Node build, and even there it is unreliable: many providers block port 25. MailProbe treats a failed probe as inconclusive rather than invalid, so a network error never marks a good address as dead.

Can I self-host it?

Yes. The Node build runs anywhere with node src/server.js, and the same source also builds a single-file Cloudflare Worker, so it can run on a free Workers account. That self-hosted Node build is also the only one that can do SMTP mailbox probing.

Which countries' mail providers are covered?

MX lookup is global. Provider fingerprinting covers Google Workspace, Microsoft 365, Tencent Exmail (QQ / Foxmail), NetEase (163 / 126 / yeah), Aliyun, Feishu, Zoho, Yandex, ProtonMail and secure gateways.