Use Case · Best Practices 2026
How to Verify Emails for Lead Generation
Lead generation databases — whether built in-house, purchased, or scraped — degrade fast. Industry data shows 25–30% of a typical B2B lead database is invalid at any given time. Email verification before CRM import prevents dirty data from propagating across your stack and wasting sales capacity on contacts that don't exist.
The Lead Generation Data Quality Problem
Dirty lead data is a silent killer of outbound performance. Sales teams waste time on invalid contacts, bounce rates erode sender reputation, and inflated database sizes lead to bloated CRM and email platform costs. The source of the problem is always the same: addresses that were never verified before import.
- !Purchased B2B lead lists average 20–30% invalid or outdated email addresses
- !Invalid emails imported into CRMs skew deliverability stats and waste SDR time on dead contacts
- !Form-captured leads include typos (gmal.com, yaho.co) that survive regex validation but never deliver
- !Duplicate and catch-all addresses inflate database size without adding any pipeline value
- !Unverified import batches trigger email provider penalties that hurt deliverability across the whole domain
How Our API Solves This
Integrate our API at every lead entry point — web forms, CSV imports, and CRM sync jobs. Real-time verification at capture blocks bad data before it enters your pipeline. Bulk verification cleans existing databases on demand with a single script. Every result includes a confidence score and categorical flags so you can segment, not just reject.
# Bulk-verify a CSV lead list before CRM import — Python
import csv, requests
def verify(email, api_key):
r = requests.post(
"https://api.emailverify.io/verify",
json={"email": email, "api_key": api_key},
timeout=5
)
return r.json()
clean, rejected = [], []
with open("leads.csv") as f:
for row in csv.DictReader(f):
result = verify(row["email"], "ev_...")
row["ev_score"] = result.get("score", 0)
row["ev_valid"] = result.get("valid", False)
if result.get("valid") and result.get("score", 0) >= 0.75:
clean.append(row)
else:
rejected.append(row)
print(f"Importable: {len(clean)} · Rejected: {len(rejected)}")
# Write clean to CRM, rejected to review queueSee the full API documentation for batch endpoints and all response fields.
Lead Generation Email Verification Best Practices
Verify at the point of capture, not just on import
A real-time API call at form submit prevents bad data from entering your CRM entirely. One verification at capture saves hours of cleanup downstream and protects your CRM data quality from day one.
Handle catch-all domains with score-based segmentation
Catch-all domains accept any SMTP address, making hard validation impossible. Use our AI risk score to segment: score > 0.85 for immediate outreach, 0.65–0.85 for nurture only, below 0.65 for manual review.
Segment by confidence score, not just valid/invalid
A binary valid/invalid decision discards borderline addresses that are often reachable. Using score thresholds instead preserves 15–20% more usable leads from a typical B2B list.
Re-verify imported data quarterly
B2B email addresses churn at roughly 30% per year due to job changes, company closures, and domain migrations. A quarterly re-verification pass keeps your database fresh and prevents bounce accumulation.
Store verification metadata in your CRM
Log the ev_score and ev_verified_at fields alongside each contact record. This enables automated re-verification triggers, better deliverability reporting, and predictive lead scoring models.