Email activity
Email verification
Find the addresses that don't exist before you send, without sending anything.
What this is
Email verification tells you which addresses have a real mailbox behind them. Nothing is sent to anyone. We ask each address's mail server whether the mailbox exists, the way a sending server would, and stop before any message goes out.
Use it before you import a list you bought, collected at an event or haven't mailed in a while. Mail to addresses that don't exist can never arrive. Too many of them and we pause your sending, and providers start to treat you as a spammer.
How it works
What it costs. Each address we answer uses one check.
- Couldn't confirm costs nothing. The check is given back.
- Duplicates are removed first, so
Ada@example.comandada@example.comcount once. - Checks come from your Marketing plan's checks for this month first (one for every contact your plan covers, at least 1,000 on Starter, 5,000 on Growth, 25,000 on Premium), then checks you bought, then send credits bought or given before checks launched, at 10 credits a check, then extra checks added to your next bill. See Bounce protection.
- If you don't have enough checks for a list, nothing starts and nothing is used. The page offers checks to buy.
- If an address can't be answered within a day, its check is given back.
What is free. Paste 10 or more addresses and we tell you, free, about how many look bad. Finding out which ones uses checks.
What the results mean.
- Deliverable — the mailbox exists. Send to it.
- Doesn't exist — no mailbox, a dead domain or a misspelt domain. Remove it. Mail to it is refused before it is sent.
- Risky — it may work, but we can't be sure. The domain accepts every address, it's a throwaway or shared address like
info@, or the inbox is full. - Couldn't confirm — the provider didn't give a clear answer. You can mail it.
- Checking… — still being checked. Some providers answer slowly, so large lists can take a while.
Each result also has a reason, such as No mailbox by that name or The domain looks misspelt. We say what was found, never how. An address known not to exist reads the same however we learned it.
Set it up
- Open Data → Email verification.
- The top of the page says how many of your contacts are safe to send to. If some aren't checked yet, choose Check them. It shows how many checks it uses first.
- To check other addresses, use Check addresses. Type one address for an instant answer. Or paste a list, or drop a CSV or text file. Addresses are found wherever they sit in each row, so a spreadsheet export works as it is.
- For a list, check the count and the checks it uses, then choose Check.
- Past checks lists every check, including contact imports and new contacts. Open one to see the report. From there you can add the deliverable addresses to a list, remove the ones that don't exist from your contacts, or download them.
Up to 50,000 addresses per check, and up to 3 running at once.
The same checks are in the API, under Verification in the API reference. An API key needs the verification:write scope to start a check and verification:read to read results.
POST /api/v1/verificationschecks a list. Each address uses one check.POST /api/v1/verifications/checkchecks one address, for example at sign-up. It uses one check for a clear answer. Couldn't confirm and Checking… are free. See Check an address at signup.POST /api/v1/verifications/contactschecks your contacts that haven't been checked yet. Each address uses one check.
Send an Idempotency-Key header so a retried request is never charged twice. It must look like <app>-<ULID>, for example crm-01JBT8XQ2M9WYC3K4F6R7S8T9V.
When something is wrong
It will not start. The list is over 50,000 addresses, three checks are already running, or you don't have enough checks. Split the list, wait for a check to finish, or buy checks in Billing.
It has been checking for hours. Some providers answer slowly on purpose. Addresses still unanswered after a day have their checks given back.
The free count doesn't show. It needs at least 10 addresses, and there is a daily limit on free counts. You can still check the list.
An address you know exists reads Doesn't exist. The result is what that address's mail server said at that moment. Send yourself a test to it; if it arrives, open a ticket with the address.
Many addresses read Risky. Usually a company domain that accepts every address, so nothing can be confirmed. Mail them, and watch the bounces in Deliverability. A full inbox reads Risky too. If that person is one of your contacts, we hold marketing to them for 7 days, then check again.