Email Verification, at 50 ms.

Format, DNS, disposable / role / free / spam-trap flags, did-you-mean for common typos, and a single 0–10 deliverability score per email. Bundled with Acuris address validation — no separate SKU, no double billing.

Try it right now

Paste any email below — we'll show the full validation response in <1 second. No signup, no card, public widget endpoint.

Demo is IP rate-limited. For production, grab a 100-credit dev key and call /email-validate with header X-Acuris-Key.

What each result means

Every field the check above returns, and what it tells you about the email address you entered.

deliverable
Our overall verdict. deliverable — the mailbox exists and accepts mail, safe to send. risky — we couldn't fully confirm it (a catch-all domain, a role or free address), so send with caution or review. undeliverable — it will bounce (bad domain, no such mailbox, or a spam-trap), don't send. unknown — a temporary DNS/SMTP failure stopped us, retry later.
score
A 0–10 confidence score for deliverability. 10 = a live mailbox was confirmed; ~5 = the server accepts mail but won't reveal whether this exact mailbox exists (catch-all / free provider); 0 = invalid or undeliverable. Lets your code branch simply, e.g. if score < 8: review.
format_valid
Whether your address is a syntactically valid name@domain.tld (RFC-tight, 254-char cap). false means it's malformed or a typo — nothing else is worth checking.
domain_has_mx
Whether the domain publishes MX (mail-exchange) DNS records — i.e. it is actually set up to receive email. false means the domain can't receive mail at all.
mx_record
The mail server that handles email for the domain — the host we then probe.
is_disposable
The domain is a throwaway / temporary-mail provider (mailinator, yopmail, …). Commonly used to dodge signups — treat as risky.
is_role
A role / group address (info@, sales@, admin@, support@) rather than a person. Deliverable, but worth flagging on signup forms — no individual owner.
is_free
A free webmail provider (gmail, yahoo, outlook, icloud, …). Perfectly valid — useful to know for B2B vs B2C routing.
is_spam_trap
The address matches a known spam-trap / honeypot. Mailing it can damage your sender reputation and get you blocklisted — never send.
did_you_mean
A suggested correction for a likely typo (e.g. user@gmial.comuser@gmail.com). Offer it back to the user at the point of entry.
smtp_checked
true means we ran a live RCPT-TO probe — we actually asked the mail server whether the mailbox exists, not just checked DNS. Real mailbox verification.
smtp_classification
What the live probe concluded: deliverable, catch_all, undeliverable, or unknown.
smtp_code
The raw SMTP response from the mail server (e.g. 250 = accepted, 550 = no such user) — the evidence behind the verdict.
is_catch_all
The domain accepts mail to every address, so we can't confirm this specific mailbox exists. We cap the verdict at risky / score 5 and tell you honestly rather than guess.
reasons
Machine-readable codes behind the verdict (e.g. possible_typo, disposable_domain, accept_all) — for your code to act on programmatically.

Provider coverage — honest verification, not theater

We perform a live SMTP RCPT TO probe against the domain's mail server, then run a second probe with a random non‑existent local‑part to detect catch‑all behavior (where the server says "yes" to every address it's asked about). Below: what that lookup actually returns for the major consumer providers, live-tested today.

ProviderDomainsVerificationScore (real)Score (fake)
Google gmail.com · googlemail.com · Workspace ✅ Honest 10 1
Microsoft outlook.com · hotmail.* · live.* · msn.com · M365 ✅ Honest 10 1
Apple icloud.com · me.com · mac.com ✅ Honest 10 1
Proton protonmail.com · proton.me ✅ Honest 10 1
Yahoo yahoo.com · yahoo.de · yahoo.fr · yahoo.co.uk · … ⚠️ Catch-all 5 5
AOL aol.com · aim.com (now on Yahoo's infra) ⚠️ Catch-all 5 5
Custom domains your-company.com · self-hosted MX · most B2B ✅ Usually honest 10 1

Why score 5, not 10, for Yahoo/AOL? Their servers answer 250 OK to every address — real and fake alike — as anti-probe policy. No verification service in the world (ZeroBounce, NeverBounce, Kickbox, Hunter, …) can break that. We honestly report is_catch_all: true, deliverable: risky and a capped score of 5 so your list-cleaning code can if score < 8: review rather than receive a misleading "deliverable" verdict that bounces in production.

Coverage in practice: Gmail + Microsoft alone are >80% of consumer accounts globally. Add Apple, Proton and every self-hosted business MX and the catch-all blind spot collapses to a small Yahoo/AOL tail — mostly long-tenured US accounts, market share trending down each year.

Every check, every email, every time

✉️

RFC-tight format

Rejects malformed addresses immediately. 254-char cap. No false positives on edge cases like "weird"@dom.

🌐

DNS MX + A fallback

Resolves the domain's mail server. Falls back to A record per RFC 5321 §5. 2-second timeout.

🗑️

Disposable detection

5,488 known temp-mail domains (mailinator / yopmail / guerrillamail / 10minutemail / …). Auto-refreshed weekly.

👤

Role-account flag

info@ / admin@ / sales@ / postmaster@ — deliverable but worth flagging for signup-form UX.

📨

Free-provider classification

gmail / yahoo / outlook / icloud / etc. — route B2B vs B2C lead intake differently.

🪤

Spam-trap detection

Known honeypot domains return deliverable: undeliverable immediately. Protects your sender reputation.

💡

Did-you-mean

179 explicit common typos (gmial → gmail) + Levenshtein-1 fuzzy fallback against known providers.

📊

0–10 score

Single numeric score per email so list-cleaning code can if score < 5: drop. Sortable, comparable.

Three lines, any language

First-tier official Node and Python SDKs — none of our competitors ships a maintained Python SDK.

curl -X POST 'https://api.acuris-geo.com/email-validate' \
  -H 'X-Acuris-Key: YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"email": "user@gmial.com"}'

# → {
#     "email": "user@gmial.com",
#     "deliverable": "risky",
#     "score": 2,
#     "did_you_mean": "user@gmail.com",
#     "reasons": ["possible_typo"]
#   }
// npm install @acuris-geo/av-sdk
import { AcurisClient, emailValidate } from "@acuris-geo/av-sdk";

const cli = new AcurisClient({ apiKey: process.env.ACURIS_API_KEY });
const r = await emailValidate(cli, "user@gmial.com");

console.log(r.deliverable, r.score, r.did_you_mean);
// → "risky" 2 "user@gmail.com"
# pip install acuris-geo
from acuris_geo import AcurisClient

cli = AcurisClient()  # reads ACURIS_API_KEY env
r = cli.email_validate("user@gmial.com")

print(r["deliverable"], r["score"], r["did_you_mean"])
# → risky 2 user@gmail.com

Bundled into every Acuris plan

Email verification shares the same credit pool as your address validation — buy one plan, get both. 1,000 free on the Dev trial. 25,000–100,000/mo on Growth and Pro. Standalone bulk cleanse packs for one-off list hygiene.