Skip to content
mailchecker

Email list validation

Stop sending to emails that don’t exist

Upload your list or call the API and find out, before your next campaign, which addresses are valid, invalid, catch-all, disposable or risky. Fewer bounces, a sender reputation that stays intact, and a bill that only counts conclusive results.

  • Unknowns and duplicates are free
  • ZeroBounce-compatible API
  • 100 free credits every month
  • Results deleted after 30 days

Check an email now

Syntax, domain, mail server and mailbox. No sign-up.

10 of 10 free checks left today.

  • emma.jones@gmail.comvalid
  • info@examplestore.comdo_not_mail
  • john@hotmial.cominvalid
  • sales@catchall-company.comcatch-all
  • olivia@yahoo.comunknown

How it works

From messy list to clean list in three steps

Nothing to install. Nothing is ever sent to your contacts.

  1. 01

    Upload a list or call the API

    A CSV or XLSX file with up to 1 million rows: just pick the email column. Or validate at sign-up, in real time, through the API.

  2. 02

    We check every address

    Syntax, typos, DNS, disposable and role-based lists, and a conversation with the recipient’s mail server, without sending a thing.

  3. 03

    Download the results

    A report by status, plus downloads of everything, only the valid addresses, or everything except the invalid ones. Duplicates are removed first and cost nothing.

What you get

A clear status for every address

The same statuses and sub-statuses as ZeroBounce, so if you already use it there’s nothing new to learn.

  • Valid

    valid

    The mailbox exists and the server accepted the recipient. Safe to send.

  • Invalid

    invalid

    The address can’t receive mail: no such mailbox, no mail server for the domain, a typo or bad syntax. Remove it: this is what causes bounces.

    mailbox_not_foundno_dns_entriespossible_typofailed_syntax_check
  • Catch-all

    catch-all

    The domain accepts every address, so the mailbox can’t be confirmed. Send with care, ideally in smaller batches.

  • Unknown

    unknown

    The server didn’t give a conclusive answer (greylisting, anti-spam, timeout). You’re not charged: try again later.

    No credit charged

    greylistedantispam_systemtimeout_exceeded
  • Do not mail

    do_not_mail

    The address exists, but sending is risky: disposable, role-based (info@, sales@), toxic or on a suppression list.

    disposablerole_basedtoxicglobal_suppression
  • Spam trap

    spamtrap

    Likely a spam trap: a single send can get your domain blocklisted.

    possible_trap
  • Abuse

    abuse

    An address known for marking mail as spam and reporting senders.

API

Validate at sign-up, before a bad address gets into your database

One REST call returns the verdict as JSON. Batches of up to 100 addresses per request, and file uploads through the same API.

  • Key in the Authorization header or in ?api_key=, just like ZeroBounce
  • Suggested fixes for typos (did_you_mean)
  • Mailbox provider, MX and domain age in every response
request
# One address, in real time
curl "https://api.mailchecker.dev/v1/validate?email=emma@company.com" \
  -H "Authorization: Bearer mc_live_…"
response · 200
{
  "address": "emma.jones@gmail.com",
  "status": "valid",
  "sub_status": "",
  "account": "emma.jones",
  "domain": "gmail.com",
  "did_you_mean": null,
  "free_email": true,
  "role_based": false,
  "disposable": false,
  "mx_found": true,
  "mx_record": "gmail-smtp-in.l.google.com",
  "smtp_provider": "google",
  "domain_age_days": 11318,
  "processed_at": "2026-11-07T12:34:56Z",
  "domain_score": 100,
  "domain_reasons": ["dmarc_none", "free_email"]
}

Pricing

Pay only for conclusive results

1 credit per address. unknown results and duplicates are never charged.

Free

R$0

100 credits every month

  • Dashboard, list uploads and API
  • Resets monthly (doesn’t roll over)
  • No credit card required
Sign up

Monthly subscription

up to 18% less

per credit, compared with packs

  • Credits added every month
  • Unused credits roll over while active
  • Cancel anytime
See subscriptions

Prices in Brazilian reais (for customers in Brazil). Show in US dollars.

FAQ

Before you ask

How do you know an email exists without sending anything?

We check the syntax, look for typos in the domain, query DNS for the MX record and talk to the recipient’s mail server just far enough for it to say whether it accepts that address. No message is ever sent. We also check lists of disposable, role-based and suppressed addresses.

What happens with “unknown” results?

They’re free. Some servers (Yahoo, AOL, some corporate anti-spam systems) won’t confirm recipients; when there’s no conclusive answer we return unknown and you keep the credit.

Do duplicate addresses count?

No. Duplicates within the same list or batch are removed before checking and never use a credit.

How much does it cost?

Every team gets 100 free credits a month. Beyond that, credit packs start at $19, as a one-off purchase or a monthly subscription. One credit = one verified address.

I already use ZeroBounce. Can I switch?

Yes. We use the same status and sub-status names and accept the key in the api_key parameter, just like ZeroBounce. For most integrations, switching means changing the base URL and the key.

What do you do with my lists?

Only check them for you. Verification results are kept for 30 days and then deleted. The team owner can export or delete the team’s data at any time.

Which files can I upload?

CSV or XLSX files with up to 1 million rows. Pick the email column, then download the full results, only the valid addresses or everything except the invalid ones.

Clean your next list for free

Sign up in a minute and get 100 credits every month, no card required. Need more? Buy credits only when you need them.