Bulk Email Verification: How to Clean Large Lists Fast
Practical guide to cleaning email lists at scale: CSV workflow, 73K-email case study, processing speeds, and provider cost comparisons.
Jesse Ouellette
February 11, 2026
Three weeks ago, a RevOps lead at a 200-person SaaS company sent me their outreach numbers. They'd been running cold email campaigns to a 73,000-contact database they'd built over 18 months — a mix of event signups, webinar attendees, purchased lists, and manually prospected leads. Their bounce rate was 11.4%. Their domain reputation was tanking. Replies had dropped 40% in three months, and they couldn't figure out why.
We ran their full list through LeadMagic's email verification. Of those 73,000 emails:
- 52,100 (71.4%) came back as verified valid
- 12,800 (17.5%) were invalid — hard bounces waiting to happen
- 5,400 (7.4%) were catch-all, which we resolved: 3,600 valid, 1,800 invalid
- 1,900 (2.6%) were disposable or role addresses
- 800 (1.1%) were unknown (servers unreachable at verification time)
After cleaning, they had 55,700 sendable addresses. They restarted their campaigns. Bounce rate dropped to 0.8%. Open rates recovered to 34% within two weeks. The few hundred dollars they spent on verification probably saved them months of domain reputation recovery.
That's the ROI story for bulk verification. Now let me show you how to actually do it.
When You Need Bulk Verification
Not every situation calls for verifying an entire list. But these five scenarios almost always do:
Before Importing Into a Sequencer
If you're loading contacts into Instantly, Smartlead, Outreach, or Salesloft, verify first. These platforms will send to whatever you import. If 10% of your list bounces, you'll burn through your sending domains in days. I've seen teams kill three domains in a single week because they imported an unverified purchased list. Verify before you import — every time.
Quarterly CRM Hygiene
B2B email data decays at about 2-3% per month. People change jobs, companies get acquired, domains expire. A database that was 95% accurate six months ago is now 82-85% accurate. Schedule quarterly verification runs to catch the decay before it hits your campaign performance.
After Events and Webinars
Event and webinar signups have some of the highest disposable email rates I've seen — 8-15% depending on the event. People sign up with throwaway addresses to access content they don't want to pay for. Before adding these contacts to your nurture sequences, verify the list and strip out the disposable addresses.
When Inheriting a Database
New marketing hire? Acquired a company? Merged with another team's CRM? Any time you inherit someone else's data, assume it hasn't been cleaned recently. I've audited inherited databases where 30%+ of the emails were invalid. Verify the entire thing before touching it.
Before Re-Engagement Campaigns
Dormant contacts are the riskiest segment in your database. If someone hasn't opened an email in 6 months, there's a meaningful chance they've changed jobs or abandoned that address. Re-verify before re-engaging — a high bounce rate on a re-engagement campaign can tank your sender reputation worse than a cold campaign because ISPs interpret it as "this sender doesn't maintain their lists."
Bulk Verification Methods
There are three ways to verify email lists at scale, each suited to different team profiles and volumes.
Method 1: CSV Upload (No Code Required)
The simplest approach. Upload a CSV file, map the email column, and download verified results. This is how most marketing and RevOps teams handle bulk verification because it requires zero technical skills.
Step-by-step with LeadMagic:
-
Prepare your CSV. You need a column with email addresses. Other columns (name, company, title) are preserved in the output but aren't required for verification.
-
Upload to LeadMagic. Go to the CSV enrichment tool, drag and drop your file, and select "Email Verification" as the enrichment type.
-
Map your columns. Tell the tool which column contains the email addresses. If your column is named "email" or "Email" it's usually auto-detected.
-
Start verification. Hit "Run" and wait. You'll see a progress indicator showing how many emails have been processed and the running results breakdown.
-
Download results. When it's done, download the enriched CSV. Each row now includes verification status, catch-all flag, disposable flag, role flag, and confidence score alongside your original data.
-
Segment and act. Filter the results in Excel or Google Sheets. Create segments for valid, invalid, and borderline addresses. Import only the verified valid segment into your outreach tools.
Processing speeds for CSV upload:
| List Size | Approximate Time |
|---|---|
| 1,000 | 1-2 minutes |
| 10,000 | 8-12 minutes |
| 50,000 | 40-60 minutes |
| 100,000 | 1.5-2 hours |
| 500,000 | 8-10 hours |
For lists above 100,000, I'd recommend splitting into batches of 100K and running them sequentially. This makes it easier to monitor progress and catch any issues early.
Method 2: API Batch Processing
For engineering teams that want to automate verification as part of a pipeline. You write code that reads emails from your database, sends them to the API in parallel, and writes results back. This is covered in detail in our email verification API guide.
The API approach is faster (50-100 verifications/second with concurrent requests) and integrates directly with your existing infrastructure. No file downloads, no manual steps. But it requires a developer to build and maintain the integration.
Method 3: Integrated Tools (Clay, n8n, Make)
If you're already using Clay, n8n, or Make for your enrichment workflows, you can add LeadMagic verification as a step in your existing flow. No separate upload, no API code — just add a verification column or node.
Clay: Add a "LeadMagic Email Verification" enrichment step. Map the email column, and each row gets verified inline. Results flow into your table alongside your other enrichment data. This is especially powerful in waterfall workflows where you find the email with one provider and verify it with LeadMagic before loading into your sequencer.
n8n / Make: Add an HTTP Request node that calls the LeadMagic verification endpoint. Process results in a loop and route verified vs. unverified contacts to different destinations. Connect the output directly to your CRM or outreach tool.
Understanding Your Results
Bulk verification returns more than just "valid" or "invalid." Here's what each status means and what to do with it.
Valid
The mailbox exists, the server confirmed it, and the email will be delivered. Action: Safe to send. Add to your outreach sequences.
Invalid
The mailbox doesn't exist. An email sent here will hard bounce. Action: Remove immediately. Never send to these addresses. Hard bounces directly damage your sender reputation — ISPs track bounce rates per sender, and exceeding 2% is a red flag.
Risky
The address exists but has characteristics that suggest higher-than-normal bounce risk. This might be a mailbox that's near its storage limit, a server that's intermittently rejecting connections, or a catch-all domain with lower confidence. Action: Segment separately. Send in small batches (100-200 at a time) and monitor bounce rates. If bounces exceed 3%, stop and remove the remaining risky addresses.
Catch-All (Resolved)
The domain accepts all emails, but LeadMagic's catch-all validation has analyzed this specific address and determined its likely validity. You'll see a confidence score — above 80% is generally safe to send, 60-80% warrants small-batch testing, below 60% should be treated like risky. Action: Segment by confidence and handle accordingly.
Disposable
The address belongs to a temporary email service (Guerrilla Mail, 10MinuteMail, Mailinator, etc.). The address may exist right now but will self-destruct within hours or days. Action: Remove. These aren't real contacts.
Unknown
The verification couldn't reach a definitive result — usually because the mail server was unreachable, timed out, or is temporarily down. Action: Don't delete. Re-verify in 24-48 hours. Most unknowns resolve on retry.
Real Before/After: The 73K-Email Cleanup
Let me walk through the full numbers from that RevOps team's cleanup, because the impact was bigger than just bounce rate reduction.
Before verification:
- 73,000 total contacts in outreach database
- 11.4% hard bounce rate across campaigns
- 18% average open rate (declining monthly)
- Google Postmaster showing "Low" sender reputation
- 3 sending domains burned in the prior quarter
After removing invalid/disposable and segmenting catch-all:
- 55,700 verified sendable contacts (23.7% reduction in list size)
- 0.8% hard bounce rate
- 34% average open rate (recovered within 2 weeks)
- Google Postmaster reputation climbing back to "Medium" within 30 days
- Zero domains burned in the following quarter
The math: They lost 17,300 "contacts" — but those contacts were never going to convert. They were ghosts inflating the database and destroying deliverability. The 55,700 remaining contacts were actually reachable, which meant more emails landing in primary inboxes, more opens, and more replies.
Cost: Under $500 for the full verification run at LeadMagic's rates. The three burned domains they would have avoided? Each one cost them $50-100 in new domain purchase, DNS setup, and 4+ weeks of warming time. The math isn't close.
Cost Comparison: Bulk Verification Providers
Pricing varies significantly across providers, and the per-email cost often changes based on volume. Here's a realistic comparison for a 50,000-email verification run:
| Provider | Price for 50K Verifications | Per-Email Cost | Catch-All Resolution | Accuracy Claim |
|---|---|---|---|---|
| LeadMagic | ~$100-$300 | $0.002-0.006 | Yes (valid/invalid) | 99.5% |
| ZeroBounce | ~$690 | $0.0138 | No (flagged only) | 99.6% claimed |
| NeverBounce | ~$400 | $0.008 | No (flagged only) | ~97% |
| MillionVerifier | ~$195 | $0.0039 | Detected (not charged) | 99%+ claimed |
| Bouncer | ~$250-$300 | $0.005-0.006 | Google/Microsoft deep | ~99% |
A few things to note:
MillionVerifier is the cheapest option with decent accuracy. They claim 99%+ accuracy with a money-back guarantee if bounces exceed 4%, and they don't charge for catch-all or unknown results — a genuinely useful differentiator. At ~$0.004/email for 10K, the math works for budget-conscious teams. The trade-off: no catch-all resolution (they detect but don't resolve), and their 17+ integrations are mostly ESPs rather than sales tools.
ZeroBounce and NeverBounce are solid but don't resolve catch-alls. They'll tell you an address is "catch-all" and leave the decision to you. For lists where 30-40% of emails are catch-all domains (common in enterprise B2B), that means a huge chunk of your list comes back as "we don't know." LeadMagic resolves those to valid or invalid, which typically recovers 15-25% more sendable addresses.
None of these prices include the email finding step. If you need to find emails first and then verify them, LeadMagic's combined email finder + verification pipeline handles both in a single workflow. Most competitors require separate tools — and separate bills — for finding and verifying.
Best Practices for Bulk Verification
After processing millions of bulk verifications, these are the patterns that consistently produce the best results.
Segment Before You Send
Don't dump your entire verified list into a single campaign. Create at least three segments:
- High confidence (95%+): Your primary outreach list. Send at full volume.
- Medium confidence (70-94%): Send in smaller batches (200-500 at a time) with monitoring. If bounce rates stay under 2%, gradually increase volume.
- Low confidence (below 70%) and unknowns: Test with tiny batches (50-100). These are your highest-risk contacts. Many teams skip this segment entirely, and that's a valid choice.
Set a Re-Verification Schedule
- Active outreach lists: Re-verify every 30 days
- CRM marketing database: Re-verify quarterly
- Dormant/inactive contacts: Re-verify before any campaign
- Event/webinar signups: Verify immediately after the event, before adding to nurture sequences
Handle Catch-All Results Strategically
Don't delete catch-all addresses. Don't blindly send to all of them either. Use LeadMagic's confidence scores to segment them. Addresses with 85%+ confidence are almost certainly real — we've resolved them beyond the catch-all ambiguity. Addresses below 65% confidence should be treated with caution.
If you're using a tool that doesn't resolve catch-alls, you have two options: skip them (safe but you lose 30-40% of your reachable market) or send to them in very small batches with aggressive bounce monitoring. Neither option is great, which is why we built catch-all validation into our verification pipeline.
Monitor Post-Send Metrics
Verification isn't a guarantee — it's a probability. Even a 99.5% accurate tool will produce some bounces on a large enough list. Track your bounce rate per campaign and per segment. If any segment exceeds 3% hard bounces, pause it, re-verify the remaining contacts, and investigate why.
Set up alerts in your outreach tool:
- Hard bounce rate > 2%: Warning — review list quality
- Hard bounce rate > 5%: Critical — pause campaign immediately
- Soft bounce rate > 10%: Investigate — likely a content or frequency issue, not a data issue
Don't Verify and Wait
Verification results start degrading the moment you run them. An email that was valid today might be invalid in two weeks if the person changes jobs. Run verification as close to your send date as possible — ideally within 48 hours. If you verified a list three months ago, verify it again before your next campaign.
Bulk verification isn't glamorous work, but it's the difference between campaigns that land in inboxes and campaigns that burn your domains. Every list has dead weight — invalid addresses, disposable signups, catch-all ambiguity. The question is whether you find that dead weight before you hit send or after your bounce rates tell you the hard way.
If you're sitting on a list that hasn't been cleaned in the last 90 days, it's costing you deliverability right now. Upload it to LeadMagic's CSV enrichment tool, run the verification, and see how much of your list is actually reachable. No annual contracts — pay-per-result pricing starting at $59.99/mo.
Related Posts
I ran 10,000 real B2B emails through 10 verification tools and measured accuracy, speed, catch-all handling, and cost. Here's what actually works.
40% of enterprise domains are catch-all. Most verifiers label them 'risky.' Here's how we resolve them for real outbound decisions.
Disposable emails hurt signup quality and invite abuse. Learn detection methods, where blocklists fail, and how to reduce false positives.