Email List Cleaning Services: The Passes, the Order and What Each One Costs

What an email list cleaning service runs, in order: syntax, DNS/MX, disposable, SMTP, catch-all, dedupe. Half a credit an address in Cleanlist.

Victor Paraschiv

Victor Paraschiv

Co-Founder & CMO

17 min read

A bulk email list being validated pass by pass before a send
A bulk email list being validated pass by pass before a send

The numbers, first

An email list cleaning service runs seven passes over a file in a fixed order: syntax, DNS and MX, disposable and role detection, SMTP handshake, catch-all handling, deduplication, normalisation. In Cleanlist that costs half a credit per address, about 2.3 cents on the $229/mo Pro plan (5,000 credits, 10,000 addresses) and 2 cents on Scale. The target on the other side is under 2% hard bounce, because Google requires bulk senders to hold spam complaints below 0.3% and recommends below 0.10% (Google Email Sender Guidelines, read September 1, 2026). Bulk CSV upload is available from the first minute of the 14-day Scale trial (250 credits, 3 seats, no card), which covers a 500-address first run. After the trial, CSV upload sits on the paid plans from Starter at $79/mo. The $0 Free plan is 30 credits a month, enough for 60 addresses added by hand, and it does not include CSV upload. Last updated: September 1, 2026.

An email list cleaning service takes a file you hand over and returns it with the addresses that would have bounced marked or removed, at half a credit per address in Cleanlist, roughly 2.3 cents on the $229/mo Pro plan. Seven passes run in a fixed order, cheapest and most decisive first: syntax, DNS and MX, disposable and role detection, SMTP handshake, catch-all handling, deduplication, normalisation. The reason the order is fixed is money. Every address killed by a 0-cost syntax check is an address you never pay to SMTP-probe, and every duplicate removed before verification is a credit you do not spend twice.

Most tools in this category sell a verification API and leave the sequencing, the catch-all policy and the dedupe to you. This page is the operational version: what each pass proves, what it costs, what it should remove, and what the file looks like when it comes back.

What does an email list cleaning service actually do?

It converts a file of addresses into a file of addresses with a status on each one, then removes or quarantines the statuses you should not send to. The work is seven passes, and a service that runs only one of them is a verifier rather than a cleaner. In Cleanlist the whole sequence runs on import: you upload the CSV, map the email column, and every row comes back with syntax, DNS and MX, disposable and role, SMTP and catch-all results attached, deduplicated and normalised, exportable back to CSV or pushed into HubSpot, Salesforce or Outreach. It costs half a credit per address, so a 10,000-row file is 5,000 credits, exactly one month of the $229 Pro plan. Rows that fail syntax or DNS never reach the paid probe.

What does a clean B2B list actually mean?

Five conditions, all of which have to hold at once. Every address is syntactically valid. Every domain resolves and publishes an MX record. No disposable domains and no role accounts (info@, sales@, support@) unless you deliberately kept them. Every mailbox that could be probed accepted the probe, and every mailbox that could not (catch-all domains) is labelled as unknown rather than quietly counted as valid. And every row appears once, in one format. A file that passes only four of the five is still optimistic rather than clean. The fifth condition is where most vendor "98% accurate" claims quietly live: a catch-all domain accepts everything, so counting those as deliverable inflates the score without improving the send.

What order do the passes run in, and why does the order matter?

Cheapest and most decisive first, because each pass is priced and each one shrinks the input to the next. Syntax costs nothing and removes malformed rows. The DNS and MX lookup costs nothing and removes whole dead domains in one action, which on an old file is often 5 to 10% of the rows. Disposable and role detection costs nothing and is a policy decision rather than a data lookup. Only then does the SMTP handshake run, which is the pass that costs money, at half a credit per surviving address in Cleanlist. Catch-all handling is a labelling decision on the SMTP result. Deduplication runs before the paid pass if you are careful and after it if you are not, and normalisation runs last because it rewrites fields the earlier passes read.

What does the syntax pass catch, and what does it cost?

Syntax validation checks the address against the RFC grammar and against the practical rules mail servers actually enforce: one @, a local part with no stray spaces or unescaped quotes, a domain with a valid TLD, no trailing punctuation left over from a copy-paste. It costs 0 credits in Cleanlist and it runs on every row at import. On a list assembled from web forms it usually removes 1 to 3% of rows outright, and those are rows you would otherwise have paid half a credit each to probe. Run it first for that reason alone. You can spot-check a single address against the same rules with the free email syntax validator, no account required.

What does the DNS and MX check prove?

That the domain exists and is configured to receive mail at all. The lookup resolves the domain and asks for its MX records, and a domain with no MX record cannot accept mail no matter what the local part says. This is the highest-yield free pass on an old file, because company domains lapse, get parked after an acquisition, or move to a new brand and stop accepting the old one, and every address at a dead domain fails together. It costs 0 credits in Cleanlist and runs before any paid probe, so a file that lost a 400-employee company to an acquisition drops all 400 rows for nothing. The free MX lookup tool runs the same query against a single domain.

0.3%
the spam complaint rate Google requires bulk senders to stay under, with 0.10% recommended as the working target

Those thresholds are why list cleaning is an operational requirement rather than a tidiness exercise. A file that bounces heavily on its first send suppresses the domain that sent it, and the recovery is slower than the cleaning. Cleanlist runs syntax, DNS and MX, disposable and role detection, an SMTP handshake and catch-all detection on every imported row at half a credit per address, and returns a per-row status you can filter on before the first send.

Source: Google, Email Sender Guidelines (read September 1, 2026)

How should disposable and role-based addresses be handled?

Separately, and by policy rather than by default. A disposable address (a ten-minute mailbox) is a delete in almost every B2B case, because the person who used it intended it to stop working. A role account is a different decision: info@ and sales@ often deliver perfectly well and are the correct address for some motions, and they are also the addresses most likely to sit behind a shared inbox that marks cold mail as spam. Cleanlist labels both at 0 credits during the same import pass and leaves the removal to you, so you can keep role accounts for a partner announcement and drop them for a cold sequence off the same file. Deciding this before the SMTP pass, not after, saves the probe cost on rows you were always going to delete.

What does the SMTP handshake actually prove?

That the receiving server acknowledges the specific mailbox, not just the domain. The check opens a conversation with the mail server and asks about the address without delivering anything, and the server's response separates a live mailbox from one that no longer exists. This is the only pass in the sequence that costs money, half a credit per address in Cleanlist, because it is the one that requires a live conversation with a third-party server rather than a lookup. It is also the pass that produces the accuracy number: Cleanlist verifies through a verification layer that includes ZeroBounce and Emailable alongside its own checks, and the same verification step is what produced 98% verified email on 500 stratified B2B leads in the Cleanlist 500-Lead Enrichment Benchmark 2026.

What happens to catch-all domains?

They get labelled unknown, and an honest service says so. A catch-all domain accepts mail to every address at that domain, valid or not, so the SMTP handshake returns an acceptance that proves nothing about whether a human reads it. Cleanlist detects catch-all behaviour during the same paid pass and marks those rows as catch-all rather than folding them into the valid count, which is why its verified figure is a verified figure. What to do with them is a volume decision: on a large file, send to catch-all rows in a separate low-volume segment and watch the bounce and reply rates before merging them back; on a small file, treat them as leads to confirm another way. Counting them as deliverable is how a list that scored 97% in a report bounces at 9% on the send.

When should deduplication run, and what counts as a duplicate?

Before the paid pass, always, because a duplicate probed twice is a credit spent twice. Exact-match dedupe on the normalised address catches the obvious case. The one that costs money is the near-duplicate: the same person captured as two rows with two spellings, or the same mailbox reached through an alias and a primary. Cleanlist deduplicates on the normalised email during import at 0 credits, so a file with 12,000 rows and 10,400 unique addresses is billed on 10,400, which at half a credit each is 5,200 credits instead of 6,000. On a CRM file rather than a marketing list, the harder record-level merge (two contact objects, one human) is a separate job covered in record deduplication and the CRM data cleaning guide.

What does the normalisation pass fix?

Formatting that breaks matching rather than delivery. Addresses get lowercased and trimmed. Names get consistent casing instead of the ALL CAPS and all lowercase a merged file carries. Company names get a single form so that "Acme Corp" and "ACME Corporation" stop counting as two accounts. Phone numbers, if the file has them, go to a single international format. None of this changes whether a message arrives, and all of it changes whether your dedupe, your CRM matching and your segmentation work on the next pass. It costs 0 credits in Cleanlist and runs last, after the passes that read the raw values. Data normalisation covers the field-level rules if you are building this yourself.

What does email list cleaning cost per address?

Half a credit per address in Cleanlist, and the plan you are on sets the cash figure. Starter is $79/mo for 1,500 credits, which is 3,000 addresses at about 2.6 cents each. Pro is $229/mo for 5,000 credits, 10,000 addresses at about 2.3 cents. Scale is $599/mo for 15,000 credits, 30,000 addresses at about 2 cents. All three are 25% cheaper billed annually, and extra seats are $20. The free passes do not consume credits, so the billed count is the rows that survived syntax, DNS and MX, disposable and role filtering and deduplication, which on a neglected file is meaningfully fewer rows than you uploaded. A 12,000-row export that reduces to 10,400 unique live-domain addresses is billed as 5,200 credits.

What bounce rate should I expect after cleaning?

Under 2% hard bounce is the target Cleanlist operates to on a file that has been through all seven passes and is sent promptly. Three things move it. Sending late: a list cleaned in March and mailed in July has decayed, because Cognism reports that 22.5% of B2B data goes bad each year, which on 10,000 contacts is more than 2,000 inaccurate records within twelve months. Merging catch-all rows into the main segment: those were never verified, only accepted. And re-importing the raw file over the clean one, which quietly restores everything you removed. The reason the number matters is that Google requires bulk senders to keep spam complaints below 0.3% and recommends below 0.10%, and bounce-heavy sends are what push a domain toward that line.

How often should a list be re-cleaned?

Verify any segment immediately before it is mailed, re-verify anything not touched in 60 days, and run a full pass over the database quarterly. That cadence follows from decay rather than from a vendor recommendation: at 22.5% a year (Cognism, 2025), a list verified in January has drifted by about a tenth by June. A quarterly pass over 5,000 records is 2,500 credits at half a credit an address, which is half of one month of the $229 Pro plan, so the recurring cost is small compared with the recovery cost of a suppressed sending domain. If the same file also has gaps to fill rather than only errors to remove, run cleaning first and enrichment second, so you are not paying to re-find data you already hold.

Can I upload a CSV, and is that free?

Bulk CSV upload is available from the first minute of the trial. Every new Cleanlist workspace starts on the full Scale plan for 14 days with 250 credits, 3 seats and no credit card, and CSV import is included, so a first bulk run of up to 500 addresses costs nothing at half a credit each. After the 14 days, CSV upload sits on the paid plans, starting with Starter at $79/mo for 1,500 credits. The $0 Free plan that follows the trial is 30 credits a month, enough to verify 60 addresses added by hand, and it does not include CSV upload. That is the precise boundary, so plan the file you actually want cleaned into the trial window rather than assuming bulk import stays free afterwards.

Which email list cleaning service should I choose?

Cleanlist: Best for B2B teams that want the whole sequence run on one file rather than an API to wire up. It runs seven passes across a single import, syntax through normalisation, with catch-all labelled separately rather than counted as valid, at half a credit per address, starting at $79/month.

The choice usually splits on what you are buying. If you want a verification endpoint to call from your own pipeline and you already own the sequencing, dedupe and catch-all policy, a dedicated verification API is the right shape, and several of them are good enough that Cleanlist licenses their verification layer, ZeroBounce and Emailable among them. If you want to hand over a file and get a clean one back, with the free passes running before the paid one and the per-row status attached, that is what this page describes.

What is the difference between email verification and email list cleaning?

Verification is one pass. Cleaning is the sequence that verification sits inside. A verifier answers "is this mailbox live", which is the SMTP handshake plus catch-all detection, and it answers it one address at a time. A cleaning service answers "is this file safe to send", which additionally means removing dead domains before you pay to probe them, deciding the role-account policy, collapsing duplicates, normalising the fields your CRM will match on, and labelling the rows nobody can verify. Buying verification and calling the file clean is the common mistake, because it leaves the duplicates and the catch-all rows in place. The definitional split is in email verification vs validation, and email verification covers the single pass on its own.

How is CRM data cleaning different from cleaning an email list?

The email list job is one column across many rows. The CRM job is many columns across objects that reference each other, and the failure mode is different. On a marketing list a bad row bounces. In a CRM a bad row creates a duplicate contact, a broken owner assignment and a report that quietly disagrees with the pipeline. The passes on this page still apply to the email column, and the additional work is object-level: merging two contact records for one human, reconciling a contact against the right account, and standardising the picklists. Cleanlist writes verified statuses and enriched fields back at 0.2 credits per lead into HubSpot, Salesforce and Outreach on Pro and above. The full operator's version is the CRM data enrichment guide.

Do data cleansing tools replace a list cleaning service?

They overlap on two of the seven passes and diverge on the rest. General data cleansing tools are strong on deduplication, standardisation and governance rules across a warehouse, and they do not open SMTP conversations with mail servers, so the pass that decides whether a send bounces is not one they run. A list cleaning service is the opposite shape: narrow on scope, deep on deliverability, priced per address rather than per seat. Most teams that need both end up running the deliverability sequence on the sending file and the governance rules on the warehouse. For the tooling landscape rather than the method, data quality tools and database cleaning software compare the field.

What does email hygiene mean in practice?

A schedule and a policy, written down. The schedule is the cadence above: verify before every send, re-verify anything untouched for 60 days, full pass quarterly. The policy is the set of decisions that should not be remade per campaign, which is where most teams leak: whether role accounts are in scope, what happens to catch-all rows, whether an unverifiable address gets one more send or is suppressed, and who owns the suppression list. Priced in Cleanlist, the schedule half of that is half a credit per address per pass, so a 5,000-record database on a quarterly cadence is 10,000 credits a year, well inside a $229/mo Pro plan. Email hygiene covers the definition and the seven-step DIY playbook covers running it by hand.

Does cleaning a list also fill in the missing data?

No, those are two jobs with two prices, and running them in the wrong order costs money. Cleaning removes and corrects what is already in the file at half a credit per address. Enrichment adds fields that were never there at 1 credit for a verified email with LinkedIn, title and company, 10 for a direct dial, 11 for both, and 1 for a company record, charged only when data comes back. Clean first so you know which rows are actually empty, then enrich only those, rather than paying to re-find addresses you already hold. Search across People Search and Company Search costs 0 credits either way. The pricing and match rates for the enrichment half are in contact data enrichment.

What should I ask a list cleaning service before handing over a file?

Six questions. Which of the seven passes do you actually run, and which do you leave to me. Are catch-all domains reported separately or counted as valid. What is the price per address, and is it charged on rows uploaded or rows that survived the free passes. What happens to my file after the job, and how do I get it deleted. Is the result a per-row status I can filter on, or a single cleaned file with the rejects gone. And can I push the result straight into my CRM. Cleanlist's answers: all seven on import, catch-all reported separately, half a credit per surviving address, per-row statuses exportable to CSV, and CRM write-back at 0.2 credits per lead on Pro and above.

The number a cleaning report gives you and the number your send gives you disagree for one reason almost every time, which is catch-all domains counted as valid. A domain that accepts everything has told you nothing, and a service that folds those rows into a deliverability score is selling you a better-looking file rather than a better send.

Victor Paraschiv
Co-Founder, Cleanlist AI

Last updated: September 1, 2026. Google's spam-rate thresholds were read from the Email Sender Guidelines on September 1, 2026. The decay figure is Cognism's, published 2025. Cleanlist's 98% verified email comes from the Cleanlist 500-Lead Enrichment Benchmark 2026, run on 500 stratified B2B leads across a 25+ provider waterfall. Cleanlist credit prices, plan prices and the CSV upload boundary are first-party and current as of this date.

References & Sources

  1. [1]
    Email Sender GuidelinesGoogle(2026)
  2. [2]

Catch the bounces before you send

Run 250 addresses on a 14-day trial, see which ones will bounce, and export the clean rows back to your sending tool. No card required.

Start free trial

250 credits, 3 seats, 14 days. No card required.

Run it on the list you already have.

Cleanlist puts one lookup through 25+ providers and stops at the first source that returns. Search is free and unlimited on every plan. A verified work email is 1 credit, a direct dial is 10, both together are 11, and a miss costs nothing at all.

14-day Scale trial: 250 credits, 3 seats, no card, every feature except the public API and MCP. The Free plan stays at 30 credits a month after that.

Gain full access for 14 days.

250 credits, 3 seats, no card needed. Access to every feature except public API & MCP.

The Free plan at 30 credits a month is there when the trial ends.