List verification

How to verify an email list before sending

Upload or API-verify the list before the first campaign mail. EmailPal probes catch-alls over SMTP (RCPT TO only, nothing delivered) and returns six verdicts so you are not paying for bounces with reputation.

Why this is step zero

A 4% bounce rate will undo warmup. Catch-alls look valid until they are not. Role addresses (info@, support@) waste the send and collect spam complaints. Disabled and full mailboxes become hard bounces on a mailbox you just spent two weeks warming.

List verification by EmailPal is built in. You do not need a second vendor for the first pass. Run it before the first campaign mail from a plan mailbox or a pre-warmed lease. The 15/day and 40/day caps do not protect you from a dirty list.

What the check actually does

EmailPal asks the receiving server about a mailbox that cannot exist, then asks about your real contact. If the fake address is accepted, the domain is a catch-all and we will not call your contact valid.

Nothing is delivered. RCPT TO only. One probe per domain is cached for a day so a 10,000-row CSV does not hammer the same MX 10,000 times.

The six answers:

VerdictSend?
ValidYes — the server rejected an impossible mailbox and accepted this one.
Catch-allRisky. The domain accepts anything.
UnknownThe server would not say. Treat as unverified.
RoleShared/functional address. Often filtered.
Full mailboxExists, cannot receive now. Sending creates a bounce later.
DisabledNot accepting mail.

Details: Six verification verdicts, What is a catch-all email, Catch-all detection.

How to run it

Dashboard

  1. Sign in. Open Lists.
  2. Upload a CSV or paste addresses. A header row with an email column is enough; extra columns are ignored.
  3. Wait for verdicts. Catch-alls, disabled and full mailboxes are the rows to drop first.
  4. Export or send only what you are willing to risk. Most teams send valid only. Some also accept unknown at lower volume.

The same engine can run on upload at send time where the dashboard offers it, so a list that skipped Lists still gets probed.

REST API

Authenticate with an API key. See Create an API key and the API reference.

  • POST /api/public/v1/verify — one address, answered in the same request. Use this in a signup form or CRM import.
  • Bulk list endpoints — same six verdicts, same catch-all probe, counted against the daily allowance.

MCP

The verify_list tool on @emailpal/mcp is the same verifier. An agent can clean a list as one step in a longer job. Connect the MCP server.

Daily allowances

PlanInstant checks / day
Starter500
Growth1,500
Scale4,500

Extra capacity is sold in blocks of 500 checks/day per month. Dashboard uploads and API/MCP share the pool. Pricing, plans and mailbox overages.

After you have verdicts

  1. Drop disabled and full mailbox. Those are known bounces.
  2. Decide on catch-all as a policy, not a one-off. Many teams drop them; some mail a subset that matched LinkedIn.
  3. Do not round unknown up to valid. Re-try later if the domain greylists probes.
  4. Skip most role addresses for cold email.
  5. Send valid from a mailbox that is campaign-ready or from a pre-warmed lease, inside the cap.

Then read the cold email deliverability guide before you raise volume.

FAQs

Does verification send a real email?

No. SMTP probing uses RCPT TO. Nothing is delivered. The prospect does not get a message from EmailPal.

Should I re-verify every week?

Re-verify after a few months, or any time you bought a new list. People leave, mailboxes fill, domains flip to catch-all. A CSV from last quarter is not "already clean."

Why did a real person come back catch-all?

Because we cannot distinguish them from a typo. The domain said yes to a mailbox that cannot exist. That is the honest answer. See Catch-all detection.

Instantly / Smartlead also has a verifier. Do I need both?

You can use theirs. EmailPal's is included on the plan you already pay for, and it is the one that refuses to call catch-alls valid. If you verify here and send there, that is a normal setup.

A whole domain came back unknown.

Greylisting. Open a ticket with the domain. Do not blast the list while you wait.

Need more help?

List verification by EmailPal or the cold email deliverability guide.