New — catch-all confidence scoring is live. Try it free →
Verification · Finder · Bulk cleaning

Stop guessing.
Verify before you send.

MailCheck opens a real SMTP conversation with the mail server to confirm a mailbox exists — then scores catch-all domains, flags disposables and finds missing addresses. Cut hard bounces and protect your sender reputation.

No credit card 30+ signals per check Self-hostable
mailcheck · verify live
Runs a real SMTP probe — 5 free live checks a day, no signup. Unlimited inside the app.
30+
signals per check
<1s
cached lookups
1M
emails per bulk job
12+
rotating sending IPs
Capabilities

One engine, the whole verdict

Syntax, DNS, reputation and the live mailbox — with the exact reason an address is good, risky or bad.

📡

Real-time SMTP verification

We open a real SMTP conversation and confirm the mailbox accepts mail — without ever sending an email.

MAIL FROM:<probe@mx-ip>
250 OK
RCPT TO:<jane.doe@company.com>
250 2.1.5 Recipient OK # mailbox exists
🪤

Catch-all confidence

Accept-all domains get a 0–100 score, not a shrug — so you can keep the ones worth sending to.

confidence 78 / 100
🗑️

Disposable & trap shield

Block throwaway providers and known spam-trap patterns before they tank deliverability.

mailinator.com
10minutemail.com
guerrillamail.com
🔎

Email Finder

Turn a name + company domain into a verified address using the most common corporate patterns.

first.last ✓f.lastflastfirstfirst_last
📦

Bulk verification

Upload up to a million emails per job with concurrency control and per-domain throttling.

84,120 / 100,000 processed
⚙️

Developer API

One REST call returns clean JSON. Keys, rate limits, caching and a usage dashboard included.

# one call, clean JSON
POST /api/v1/verify
{ "status": "valid", "score": 95 }
How it works

Five checks, one verdict

Every address runs the full pipeline and returns a status plus a 0–100 confidence score.

1

Syntax

RFC-grade format and normalization — before any network call.

2

MX / DNS

Resolve mail servers, with implicit-MX fallback to A records.

3

Reputation

Disposable, role and free-provider checks, plus typo suggestions.

4

SMTP probe

Connect to the MX, confirm the mailbox at RCPT, detect catch-all.

5

Score

Classify valid, invalid, catch-all, unknown or disposable.

Clear results

No guesswork in the output

Every result maps to one status, with sub-status detail and a score you can threshold on.

StatusMeaningTypical action
validMailbox exists and accepts mail.Safe to send.
invalidBad syntax, no MX, or the server rejected the mailbox.Remove.
catch-allDomain accepts every address — scored by confidence.Send by threshold.
unknownGreylisted, timed out, or temporarily deferred.Re-check later.
disposableTemporary / throwaway mailbox provider.Remove.
Email Finder

From a name to a verified inbox

Have a prospect's name and company domain but no email? MailCheck generates the most-used corporate patterns, probes the mail server, and returns the address that actually exists.

  • Tries the highest-hit patterns first and stops at the first match
  • Detects catch-all domains and returns the best guess
  • One API call: first_name, last_name, domain
  • Built for enriching scraped or partial lists at scale
See the Finder API →
# Find the verified email for a person curl -X POST https://your-host/api/v1/find \ -H "X-API-Key: YOUR_KEY" \ -d '{"first_name":"Jane","last_name":"Doe","domain":"company.com"}' # → { "found": true, "email": "jane.doe@company.com", "status": "valid", "score": 95 }
# Verify a single address curl -X POST https://your-host/api/v1/verify \ -H "X-API-Key: YOUR_KEY" \ -d '{"email":"name@company.com"}' # → { "status": "valid", "score": 95, "free_email": false, "role": false, "disposable": false, "accept_all": false, "mx_record": "aspmx.l.google.com" }
Developer-first

Integrate in minutes

A clean REST API with predictable JSON, API keys you manage yourself, per-key rate limits, and built-in result caching so repeat checks are instant and free.

  • Single, batch (≤100 sync) and async bulk job endpoints
  • CSV or JSON exports for every bulk job
  • Usage tracking and multiple keys per account
  • Self-hostable on your own VPS and sending IPs
Full API reference →
Why MailCheck

Built like infrastructure, not a credit meter

How MailCheck compares to a typical hosted verifier.

CapabilityMailCheckTypical verifier
Real-time SMTP mailbox probe
Catch-all confidence score (0–100)partial
Multi-IP rotation with matched rDNS
Email finder included (not an add-on)
Self-hosted / on-prem option
Re-check pool for greylisted addresses
No per-credit lock-in

“Typical verifier” reflects common behaviour of popular hosted services. Capabilities vary by plan.

Pricing

Start free, scale when you do

Create an account and verify right away. Upgrade for higher volume and dedicated sending infrastructure.

Starter

Free
For trying it out and low-volume verification.
  • Single & bulk verification
  • Email Finder
  • Full REST API & dashboard
  • Result caching
  • Community support
Get started

Enterprise

Custom
For high volume, dedicated IPs and self-hosting.
  • Everything in Growth
  • Dedicated sending IPs with rDNS
  • Self-hosted / on-prem option
  • SLA & priority support
  • Onboarding assistance
Talk to us
FAQ

Questions, answered

Do you actually send emails to verify them?
No. Verification stops at the SMTP RCPT TO stage — the same handshake a real mail server uses to decide if a mailbox exists. We never send a message, so the recipient sees nothing.
What is a catch-all domain?
Some domains accept mail for every address and sort it out later. We can't prove a single mailbox exists, so we label the result catch-all and return a confidence score plus our best-guess pattern.
Why are some Gmail / Outlook addresses 'unknown' or 'catch-all'?
Large providers accept all addresses at the RCPT stage and validate after delivery, so SMTP alone can't confirm them — this is true for every verification service. Corporate domains, where most B2B email lives, verify cleanly.
How accurate is it?
Accuracy depends on the sending IP's reputation and rDNS. On properly configured infrastructure, MailCheck reliably separates valid, invalid and risky addresses, and surfaces temporary failures as 'unknown' rather than guessing.
Can I verify large lists?
Yes. Submit up to a million emails per bulk job. They're processed with concurrency control and per-domain throttling, with live progress and CSV/JSON export.
Can I self-host it?
Yes. MailCheck runs as a single service with your own sending IPs and rDNS, which is the recommended setup for maximum deliverability and control.

Ready to clean your list?

Create a free account and verify your first emails in under a minute.

Get started free Read the docs