# 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.

Source: https://emailpal.io/help/how-to-verify-an-email-list-before-sending

## 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](/help/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](/help/pre-warmed-inboxes-by-emailpal). 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:

| Verdict | Send? |
| --- | --- |
| Valid | Yes — the server rejected an impossible mailbox and accepted this one. |
| Catch-all | Risky. The domain accepts anything. |
| Unknown | The server would not say. Treat as unverified. |
| Role | Shared/functional address. Often filtered. |
| Full mailbox | Exists, cannot receive now. Sending creates a bounce later. |
| Disabled | Not accepting mail. |

Details: [Six verification verdicts](/help/six-verification-verdicts), [What is a catch-all email](/help/what-is-a-catch-all-email), [Catch-all detection](/help/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](/help/create-an-api-key) and the [API reference](/docs).

- `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](/help/connect-the-mcp-server).

## Daily allowances

| Plan | Instant checks / day |
| --- | --- |
| Starter | 500 |
| Growth | 1,500 |
| Scale | 4,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](/help/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](/help/when-is-a-mailbox-ready-to-send) or from a pre-warmed lease, inside the cap.

Then read the [cold email deliverability guide](/help/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](/help/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](/support/new) with the domain. Do not blast the list while you wait.

## Need more help?

[List verification by EmailPal](/help/list-verification-by-emailpal) or the [cold email deliverability guide](/help/cold-email-deliverability-guide).
