Newsletter List Cleaner - Validate & Score Subscribers avatar

Newsletter List Cleaner - Validate & Score Subscribers

Pricing

from $5.99 / 1,000 email validateds

Go to Apify Store
Newsletter List Cleaner - Validate & Score Subscribers

Newsletter List Cleaner - Validate & Score Subscribers

Clean and validate your newsletter subscriber list. Upload exports from Mailchimp, Beehiiv, Substack, ConvertKit, Ghost, ActiveCampaign, MailerLite, or Buttondown. Get quality scores, keep/re-engage/remove recommendations, and a full list health report.

Pricing

from $5.99 / 1,000 email validateds

Rating

0.0

(0)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Newsletter List Cleaner — Validate & Score Subscriber Lists (2026)

RELATED ACTORS

Email Tools ➤Email Finder API

Changelog

March 2026
NEW 7-Layer Column Detection — auto-finds email columns in 12 languages, LLM fallback for edge cases
NEW 8 Platform Fingerprints — recognizes exports from Mailchimp, Beehiiv, Substack, ConvertKit, Ghost, ActiveCampaign, MailerLite, Buttondown
NEW Health Report — quality scoring, domain analysis, keep/re-engage/remove recommendations
File support — CSV, XLSX, TXT, ZIP (Mailchimp), Google Sheets URLs

Upload any subscriber export. Get a cleaned list back with quality scores and a health report.

Drop your CSV, XLSX, ZIP, or Google Sheets URL. The actor detects your newsletter platform, finds the email column, validates every address, and sorts subscribers into three buckets: keep, re-engage, or remove. No configuration needed for 95%+ of files.

Output Example

The Problem with Newsletter Lists

Subscriber lists decay. People abandon email addresses, fill inboxes, sign up with disposable emails, or get flagged as spamtraps. Sending to a dirty list tanks your deliverability score, lands you in spam folders, and wastes money on every send.

This actor cleans your list automatically.

Upload your export from any newsletter platform. Every subscriber gets validated at the mail server level and scored 0-100. You get three lists back: who to keep, who to try re-engaging, and who to remove immediately.

What You Get Per Subscriber

Every validated email returns:

  • Quality Score (0-100) with keep / re-engage / remove action
  • Deliverability Status — safe, risky, invalid, disposable, catch-all, unknown
  • Risk Flags — spamtrap, role account, disabled mailbox, inbox full, catch-all, disposable
  • Domain Info — MX records, free vs business email detection
  • Tags — human-readable labels for quick filtering

List Health Report

Every run generates a health report at the end:

MetricDescription
List Health Score0-100 grade for your entire subscriber list
Action SummaryHow many to keep, re-engage, and remove
Risk BreakdownSafe, risky, invalid, disposable, catch-all, spamtrap counts
Domain AnalysisTop 10 domains, free vs business split, unique domain count
Quality DistributionExcellent / good / moderate / poor breakdown
RecommendationsSpecific tips based on your list's problems
Ready ListsClean list, re-engage list, and remove list as email arrays

Supported Platforms

Upload your subscriber export and the platform is detected automatically:

PlatformAuto-detectedExport format
MailchimpYesCSV or ZIP
BeehiivYesCSV
SubstackYesCSV
ConvertKit (Kit)YesCSV
GhostYesCSV
ActiveCampaignYesCSV
MailerLiteYesCSV
ButtondownYesCSV
Any otherYesCSV, XLSX, TXT, Google Sheets

Don't see your platform? The 7-layer detection pipeline handles unknown formats too. It scans column headers in 12 languages and falls back to content analysis when headers don't match.

How Email Column Detection Works

Most tools require you to map columns manually. This actor finds the email column automatically:

LayerMethodCostWhat it catches
1User overrideFreeExplicit column name if provided
2Platform fingerprintsFreeMailchimp, Beehiiv, Substack, etc.
3Known header patternsFree35+ patterns in 12 languages
4Partial header matchFreeAny header containing "email", "correo", etc.
5Content scan (80%)FreeColumns where 80%+ values are emails
6LLM fallback~$0.001Unusual headers, non-Latin scripts
7Relaxed scan (60%)FreeSparse columns with some emails

The LLM only fires when layers 1-5 fail. Zero extra cost for the vast majority of runs.

Quality Scoring

Each subscriber gets a quality score from 0-100, adjusted for newsletter-specific risk factors:

FactorImpactWhy
Spamtrap-50Destroys sender reputation
Disabled mailbox-40Dead address, guaranteed bounce
Disposable email-30Temporary address, zero engagement
Full inbox-20Won't receive your newsletter
Role account-15info@, admin@ rarely read newsletters
Catch-all domain-10Inflates list without engagement signal

Action buckets:

  • Keep (score ≥ 70, status safe) — safe to send
  • Re-engage (score 40-69 or risky) — send re-engagement campaign first
  • Remove (score < 40, invalid, disposable, spamtrap) — remove immediately

Input

Upload a subscriber file

{
"subscriberFile": "https://your-file-url.com/subscribers.csv"
}

Supports CSV, XLSX, TXT (one email per line), ZIP (Mailchimp exports), and Google Sheets URLs. The file format and email column are detected automatically.

Paste emails directly

{
"emailAddresses": [
"alice@company.com",
"bob@gmail.com",
"info@example.org"
]
}

Both combined with a limit

{
"subscriberFile": "https://your-file-url.com/export.xlsx",
"emailAddresses": ["extra@company.com"],
"maxItems": 500
}

Google Sheets

Paste a Google Sheets URL directly. The sheet must be set to "Anyone with the link can view."

{
"subscriberFile": "https://docs.google.com/spreadsheets/d/1cYOJX228.../edit?usp=sharing"
}

Input Parameters

ParameterTypeDescriptionDefault
subscriberFilestringUpload CSV, XLSX, TXT, ZIP, or paste a Google Sheets URL
emailAddressesarrayEnter emails manually. Can combine with file upload.
maxItemsintegerLimit how many subscribers to validate. 0 = validate all.0
platformstringOverride automatic platform detection.auto
csvEmailColumnstringOverride automatic email column detection.

Output Examples

Subscriber result

{
"email": "subscriber@company.com",
"action": "keep",
"qualityScore": 98,
"status": "safe",
"tags": [],
"domain": "company.com",
"safeToSend": true,
"deliverable": true,
"catchAll": false,
"disposable": false,
"roleAccount": false,
"freeEmail": false,
"spamtrap": false,
"disabled": false,
"inboxFull": false,
"mxRecords": ["mx1.company.com", "mx2.company.com"]
}

Health report (last item in dataset)

{
"type": "list_health_report",
"platformDetected": "mailchimp",
"totalSubscribers": 1250,
"listHealthScore": 82,
"actionSummary": {
"keep": 1020,
"reEngage": 115,
"remove": 115
},
"riskBreakdown": {
"safe": 1020,
"risky": 95,
"invalid": 85,
"disposable": 20,
"catchAll": 30,
"spamtrap": 0
},
"domainAnalysis": {
"topDomains": [
{"domain": "gmail.com", "count": 625, "percentage": 50.0},
{"domain": "outlook.com", "count": 188, "percentage": 15.0}
],
"freeEmailPercentage": 68.5,
"businessEmailPercentage": 31.5,
"uniqueDomains": 342
},
"qualityDistribution": {
"excellent_90_100": 980,
"good_70_89": 40,
"moderate_40_69": 115,
"poor_0_39": 115
},
"recommendations": [
"Remove 115 invalid subscribers to reduce bounce rate by ~9.2%.",
"Send a re-engagement campaign to 115 risky subscribers before your next send.",
"68% of subscribers use free email providers. Optimize for Gmail and Yahoo rendering."
],
"cleanList": ["subscriber1@company.com", "..."],
"reEngageList": ["risky@example.com", "..."],
"removeList": ["invalid@nowhere.xyz", "..."]
}

Pricing

Apify PlanPer 1,000 emails
Free$7.99
Starter$7.49
Scale$6.99
Business$5.99

Cost examples

List sizeFree planBusiness plan
100$0.80$0.60
500$4.00$3.00
1,000$7.99$5.99

Free tier includes 1 run with up to 10 emails at no cost.

API Integration

Python

from apify_client import ApifyClient
client = ApifyClient("your_token")
run = client.actor("clearpath/newsletter-list-cleaner").call(run_input={
"subscriberFile": "https://your-file-url.com/subscribers.csv",
"maxItems": 1000,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("type") == "list_health_report":
print(f"Health score: {item['listHealthScore']}/100")
else:
print(f"{item['email']}: {item['action']} (score: {item['qualityScore']})")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your_token' });
const run = await client.actor('clearpath/newsletter-list-cleaner').call({
subscriberFile: 'https://your-file-url.com/subscribers.csv',
maxItems: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
if (item.type === 'list_health_report') {
console.log(`Health score: ${item.listHealthScore}/100`);
} else {
console.log(`${item.email}: ${item.action} (score: ${item.qualityScore})`);
}
});

Data Export

Download results as JSON, CSV, or Excel directly from the Apify dataset. The CSV export works well for re-importing your clean list back into your newsletter platform.

Automation

  • Scheduled runs — clean your list weekly or monthly on autopilot
  • Webhooks — get notified when cleaning completes
  • API — integrate into your subscriber management pipeline

Use with AI Assistants (MCP)

Connect this actor to AI assistants via Apify's MCP server.

Setup

  1. Go to mcp.apify.com and add clearpath/newsletter-list-cleaner
  2. Connect to your AI assistant (Claude Desktop, Cursor, etc.)

Example prompts

"Clean my newsletter list from this CSV and tell me how many subscribers to remove"

"Validate these 50 email addresses and flag any spamtraps or disposable addresses"

"Upload my Mailchimp export and give me a health report"

LLM context

Newsletter List Cleaner validates subscriber email lists and returns per-email quality scores (0-100) with keep/re-engage/remove actions. Data includes: deliverability status, risk flags (spamtrap, disposable, catch-all, role account), domain analysis, MX records. Supports CSV, XLSX, TXT, ZIP, Google Sheets. Auto-detects 8 newsletter platforms and email columns in 12 languages. Output: JSON array of scored subscribers + list health report with recommendations.

FAQ

Q: What file formats are supported? A: CSV, XLSX, TXT (one email per line), ZIP archives (Mailchimp exports), and Google Sheets URLs. Detected automatically.

Q: Do I need to specify which column has emails? A: No. The 7-layer detection pipeline finds it automatically. Override in settings if needed.

Q: What does the quality score mean? A: 0-100 based on deliverability and risk factors. 70+ with "safe" status = keep. Below 40 = remove. In between = re-engage.

Q: How accurate is the validation? A: Email deliverability is verified at the mail server level (SMTP). Spamtrap, disposable, and catch-all detection included.

Q: Can I combine file upload with manual emails? A: Yes. Duplicates are removed automatically.

Q: What happens with files that have no email column? A: Clear error message. No credits charged.

Q: How long does validation take? A: A few seconds for small lists. 10,000+ emails take 1-2 minutes.

Q: Does it work with non-English files? A: Yes. Email column headers recognized in 12 languages including German, Spanish, French, Italian, Portuguese, Japanese, Korean, Chinese, and Arabic.

Q: Is there a free trial? A: Free tier includes 1 run with up to 10 emails at no cost.

Q: What's the difference between this and the Email Validator API? A: The Email Validator API validates raw email addresses. This actor is designed for newsletter workflows: it handles file uploads, detects platforms, scores subscribers, and generates a health report with recommendations.

Support

Validates publicly provided email addresses at the mail server level. No email content is read or stored. Users must comply with applicable data protection regulations (GDPR, CCPA).


Clean your newsletter list. Keep the engaged, re-engage the risky, remove the dead weight.