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 eight 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. Disabled and full mailboxes become hard bounces on a mailbox you just spent two weeks warming.

This applies to every list, including leads you find in Prospects: those emails are third-party data and can be out of date. 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. A low daily volume does 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 safe.

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 eight answers (the API calls Safe safe, and the others catch_all, role_account, disposable, inbox_full, disabled, invalid and unknown):

VerdictSend?
SafeYes — the server rejected an impossible mailbox and accepted this one.
Catch-allRisky. The domain accepts anything.
RoleYes. A confirmed shared inbox (info@, sales@); List check counts it with Safe.
DisposableThrowaway-mail domain. No.
Inbox fullExists, cannot receive now. Sending creates a bounce later.
DisabledNot accepting mail.
InvalidRejected, malformed, or no mail server. Bounces.
UnknownThe server would not say. EmailPal campaigns skip these by default.

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

How to run it

Dashboard

  1. Sign in. Open List check.
  2. Upload a CSV or paste addresses. A header row with an email column is enough. Only the address and its result are kept, for 90 days; to keep your other columns, attach the file again when you use the results. For leads from Prospects, use Export CSV on the list and upload that file.
  3. Wait for verdicts. Catch-alls, invalid, disabled and full mailboxes are the rows to drop first.
  4. Press Use results on the list to download the results, save them as a contact list or add them to a campaign. The recommended choice is Safe + role; a selection estimated to bounce 8% or more can be downloaded but not saved. Use your list check results
  5. Send only what you are willing to risk. EmailPal campaigns skip unknown unless you turn on Email unknown addresses for that campaign, because most Unknown addresses turn out to be bad.

The same engine can run on upload at send time where the dashboard offers it, so a list that skipped List check 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 verdicts, same catch-all probe, one credit per address from the same 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 invalid, disabled, disposable and inbox_full. Those are known bounces or throwaways.
  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 safe. There is no recheck button for Unknown yet, and an address keeps that status until it is checked again, so open a ticket to retry a batch from a domain that greylists probes.
  4. Role addresses (info@, sales@) are confirmed inboxes, so List check counts them with Safe. They reach a shared inbox rather than a person; write to them accordingly.
  5. Send safe from a mailbox whose warming shows campaign-ready or from a pre-warmed lease, inside the cap. Campaign-ready is a signal, not a requirement, but a verified list on a warmed mailbox is the combination that holds up.

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.

Do I need to verify leads that came from Prospects?

Yes. Prospects is unlimited intent leads, but the emails come from a third-party provider and are not verified by EmailPal. Export the list and run it through List check before you launch. Lead data accuracy and verifying before you send

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. In EmailPal's own sequencer you can tick Verify emails after import instead. Importing leads and verification.

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.