FREE TOOL

Email address checker

Enter an address and see whether it is structurally valid, whether its domain can receive mail, whether the domain is one of 61,733 known disposable providers, whether the mailbox name is a shared role like info@, and whether the domain is a typo of a major webmail provider. It does not check that the specific mailbox exists — no message is sent and no mail server is contacted — so clean means "nothing wrong with the address or its domain", not "someone will read the mail".

INPUT
try
200 OK13 ms (api)
BLOCK
Domain "mailinator.com" is a known disposable/throwaway email provider
6 checks run
This address looks disposable
  • Valid syntax
  • Has MX records
  • Not disposable
    Domain "mailinator.com" is a known disposable/throwaway email provider
  • Not a typo of a known domain
  • Not a role account
code
email.disposable_domain
severity
high
The full /v1/emails gate also checks
Address normalisationdisposable_infrastructureprovider_typeyoung_domainasnCloud hosting IPPrivate IP rangeTor exit nodevpn_provider
Also available through the API.

Live call to the same /v1 endpoint customers use. Rules only on this page; nothing you type is stored.

What it checks

  • email.syntax — a practical subset of RFC 5321/5322: one @, no whitespace, local part 1–64 characters, domain labels valid, 254 characters overall. Quoted local parts and IP-literal domains fail on purpose; they are legal and almost never legitimate.
  • email.mx — one DNS-over-HTTPS MX query for the domain. Three outcomes short of clean: no MX records, a null MX (RFC 7505, the domain's own statement that it takes no mail), or NXDOMAIN.
  • email.disposable — the domain against 61,733 disposable providers (two open lists, generated 2026-09-27). A list has edges: a service created yesterday is not on it.
  • email.role_account — the mailbox name, +tag stripped, against a fixed list: admin, support, info, sales, contact, billing, noreply, postmaster and about twenty more.
  • email.typo_domain — edit distance to about two dozen webmail domains (gmail.com, outlook.com, yahoo.com, icloud.com and similar). Two edits at most.
  • email.alias_normalisation — emits nothing; returns data.normalised for Gmail and Outlook-family addresses (dots and +tags removed) so you can spot the same person signing up twice. A +tag address is a normal address, not a finding.

What the result means

clean — the address is well-formed, the domain publishes MX records, and none of the lists matched. suspect — a medium finding: a role account or a typo domain. block — a high finding: bad syntax, no way to route mail, or a disposable domain.

FindingSeverityFires when
email.invalid_syntaxhighNot structurally an address.
email.no_mxhighThe domain exists but publishes no MX records.
email.null_mxhighThe domain declares it accepts no mail (RFC 7505).
email.domain_not_foundhighThe domain does not exist in DNS.
email.disposable_domainhighThe domain is a known throwaway provider.
email.role_accountmediuminfo@, support@ and similar.
email.typo_domainmediumgmial.com, hotnail.com and similar.

If you sent an IP, three more can appear: ip.not_public (low), ip.hosting_provider (medium), ip.tor_exit (medium).

Why it matters

Most bad signups are not clever: a typo the user will never notice, a throwaway inbox that will be dead in ten minutes, a shared mailbox that is nobody's. All of those are visible from the address alone, before you send a verification mail or create a record. The typo case is the one users thank you for — gmial.com is a real domain, so a "send verification email" flow fails silently and the user blames you.

QUESTIONS

Email addresses,
answered.

From your own code

curl -s -X POST https://api.stormdoor.dev/v1/emails \
  -H "Authorization: Bearer sk_live_..." \
  -H "content-type: application/json" \
  -d '{"email":"sam@mailinator.com","ip":"203.0.113.7"}'

ip is optional; leave it out and the three ip.* checks appear in checks_skipped with reason: "input". The API needs an account — signups open with paid plans, a one-time trial included, no card. Join the waitlist and you will hear first.

Read more

/v1/emails docs · email.invalid_syntax · email.no_mx · email.null_mx · email.domain_not_found · email.disposable_domain · email.role_account · email.typo_domain · /v1/signups docs (email, domain and IP checks in one call)
Sibling tools: disposable email checker, domain age checker.

Guides about this

All guides