The Hidden Cost of a Dirty Email List
You built a list of 50,000 subscribers. You pay your ESP $0.00758 per email sent. You send 4 campaigns per month. Your monthly email spend: $379.
But here's what most marketers miss: email addresses decay at roughly 22-30% per year (industry benchmarks vary by list source). On a 50,000-person list, that could mean thousands of dead emails. You're paying your ESP to send to addresses that bounce.
Worse, those bounces damage your sender reputation. Gmail starts throttling senders with bounce rates above 2%. Above 5%, you're headed to the spam folder. Rebuilding reputation takes weeks of low-volume, high-engagement sending — time you don't have.
Bulk email verification is cheap insurance. At MailValid's Scale-tier rate of $0.0006-$0.00075 per email, cleaning a 50,000-person list costs $30-$38. It protects the deliverability of your entire sending program.
This guide compares MailValid's real pricing tiers against published competitor rates and shows you how to calculate the true ROI of list cleaning.
MailValid Pricing Tiers
MailValid uses credit-based pricing that never expires. Here's what the real published plans look like:
| Plan | Monthly Price | Credits/Month | Per-Email Cost | Free Tier |
|---|---|---|---|---|
| Free | $0 | 100 (one-time) | — | 100 credits, no card |
| Starter | $15/mo ($12/mo billed annually) | 10,000 | $0.0015 | — |
| Growth | $50/mo ($40/mo billed annually) | 50,000 | $0.001 | — |
| Scale | $75/mo ($60/mo billed annually) | 100,000+ | $0.00075 (annual: $0.0006) | — |
As of July 2026, MailValid's published comparison against competitors: $75 per 100,000 emails versus $390 at ZeroBounce and $800 at NeverBounce on their published pay-as-you-go rates. Same accuracy claim (95%+), and MailValid credits never expire.
Always check current pricing at mailvalid.io/pricing and each competitor's own site — published rates change.
Hidden Fees That Inflate Your Real Cost
Headline price isn't the full story. These hidden fees can double or triple your effective cost with some providers:
1. Credit Expiration
MailValid credits never expire. Several competitors (including ZeroBounce and NeverBounce, per their published terms) expire purchased credits after a fixed window, commonly 12 months. Check each vendor's current terms before buying, since policies change.
2. API Rate Limits
Rate limits scale with your MailValid plan: 10 requests/min on the Free tier, 50/min on Starter, 100/min on Growth, and 200/min on Scale. Check competitor documentation directly for their current limits before committing to a plan.
3. Re-Verification Charges
Some services charge again to re-verify the same address after a window of time. MailValid does not charge again for a cached, recent result — cached repeats use 0 credits.
4. Data Export Restrictions
Check whether your provider restricts CSV exports on lower tiers before committing to a plan.
How Bulk Verification Actually Works
Understanding the process helps you evaluate results correctly.
Step 1: Syntax Validation (RFC 5322)
Checks formatting: local part, @ symbol, domain, allowed characters, length limits. Catches typos and malformed addresses instantly with no network overhead.
Step 2: MX Record Lookup
Queries DNS for Mail Exchange records. No MX records means no mail can ever be delivered.
Step 3: SMTP Mailbox Verification
Connects to the recipient's mail server and simulates the start of an email delivery without sending a message. The server's response reveals whether the mailbox exists.
Step 4: Catch-All Detection
Some domains accept all incoming mail regardless of the specific address. MailValid flags these as is_catch_all: true rather than false-labeling them valid or invalid.
Step 5: Disposable Email Detection
Flags temporary/throwaway domains (Mailinator, Guerrilla Mail, Temp Mail, and similar services) via is_disposable: true.
Step 6: Role-Based Detection
Flags shared mailboxes via is_role_based: true: info@, support@, admin@, sales@. These have lower engagement on average.
Integration Example: Bulk Verify with Python
import requests
import time
API_KEY = "your_mailvalid_api_key"
# Step 1: Submit batch (up to 10,000 emails per request)
response = requests.post(
"https://mailvalid.io/api/v1/verify/bulk",
headers={"X-API-Key": API_KEY, "Content-Type": "application/json"},
json={
"emails": ["user1@example.com", "user2@test.com"], # up to 10,000
"webhook_url": "https://yourapp.com/webhooks/verification"
}
)
job = response.json()
print(f"Submitted: {job['job_id']}")
# Step 2: Poll for completion
while True:
status = requests.get(
f"https://mailvalid.io/api/v1/verify/bulk/{job['job_id']}",
headers={"X-API-Key": API_KEY}
).json()
if status["status"] == "completed":
results = status["results"]
valid = [r for r in results if r["status"] == "valid"]
invalid = [r for r in results if r["status"] == "invalid"]
catch_all = [r for r in results if r["status"] == "catch_all"]
print(f"Valid: {len(valid)}, Invalid: {len(invalid)}, Catch-all: {len(catch_all)}")
# Export clean list
with open("clean_list.csv", "w") as f:
for r in valid:
f.write(f"{r['email']}\n")
break
time.sleep(5)
Cost at the Growth tier: 10,000 emails × $0.001 = $10.
5 Mistakes That Waste Your Verification Budget
Mistake 1: Verifying Once and Never Again
Email lists decay continuously. People change jobs, abandon accounts, and switch providers. Re-verify unengaged subscribers every 90 days.
Mistake 2: Deleting Everything That's Not "Valid"
MailValid returns granular results: valid, invalid, catch_all, unknown, do_not_mail. Catch-all addresses are often deliverable. Role-based addresses are fine for transactional email. Review each category before bulk-deleting.
Mistake 3: Not Using a Suppression List
Invalid addresses should go into your ESP's suppression list, not just be deleted from your CRM. Otherwise they re-enter through future imports and form submissions.
Mistake 4: Ignoring Engagement Data
A technically valid email from someone who hasn't opened in 2 years is still a liability. Combine verification with engagement scoring for true list health.
Mistake 5: Choosing the Cheapest Provider Without Testing Accuracy
Always run a test batch of known addresses against any provider before committing to a full list migration.
Start Cleaning Your List Today
Bulk email verification costs less than a coffee and saves more than your monthly ESP bill. Here's how to start:
Step 1: Sign up for a free MailValid account — no credit card required.
Step 2: Verify 100 emails free, or buy credits starting at $15/month for 10,000 credits.
Step 3: Upload your CSV or call the bulk API. Results process asynchronously — poll or use a webhook.
Step 4: Download your clean list, update your ESP suppression list, and watch your open rates climb.
curl -X POST https://mailvalid.io/api/v1/verify/single \
-H "X-API-Key: your_free_key" \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com"}'
FAQ
Q: Do credits expire? A: MailValid credits never expire. Check each competitor's current terms — several expire purchased credits after 12 months.
Q: Can I verify the same email multiple times? A: Yes. MailValid does not charge again for a cached, recent repeat result — those use 0 credits.
Q: What file formats does bulk verification support? A: CSV, TXT (one email per line), and JSON via the API.
Q: How accurate is MailValid? A: MailValid publishes a 95%+ accuracy rate across syntax, MX, disposable, and SMTP-level checks.
Last Updated - 21 September 2026
MailValid Team
Email verification experts
Join teams that verify before they send
Stop letting bad emails hurt your deliverability
100 free credits. From $0.0008/email after. Credits never expire. No credit card required.