Email List Cleaner
Pricing
$3.00 / 1,000 address checkeds
Email List Cleaner
Clean an email list before you import it. Removes malformed addresses and dead domains, flags disposable inboxes and shared role addresses, fixes obvious typos, and drops duplicates, so you stop paying to send to addresses that were never going to land.
Pricing
$3.00 / 1,000 address checkeds
Rating
0.0
(0)
Developer
Peach O
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Email List Cleaner: Cut the Dead Weight Before You Send
Strip the addresses that were never going to land, before they cost you money and reputation.
Removes malformed addresses and dead domains, flags disposable inboxes and shared team addresses, fixes obvious typos, and drops duplicates. The cheap first pass every list should go through before you import it anywhere.
Built for sales teams, marketers and anyone about to load a list into a sending tool or a paid verifier.
How it works
flowchart LRA[Your list] --> B[Drop duplicates]B --> C{Syntax}C -->|malformed| X[invalid]C -->|ok| D{Domain and mail server}D -->|no mail server| XD -->|ok| E{Disposable or role?}E -->|yes| Y[risky]E -->|no| Z[looks deliverable]C -->|typo| S[suggest a fix]
Every check here runs off the address and its domain, so it works anywhere and costs almost nothing. No mail is ever sent.
What each verdict means
flowchart TDA[Every address] --> B[invalid]A --> C[risky]A --> D[unknown]B --> B1[Malformed or the domain cannot receive mail. Remove it.]C --> C1[Deliverable but a bad idea. Disposable or a shared role inbox.]D --> D1[Looks fine at the domain level. Not individually confirmed.]
unknown is the honest verdict for an address that passes every check we can run without contacting the mailbox. It is a clean address to the best of what a list level pass can tell, which is exactly what this tool is for.
What it catches
| Problem | Example | Verdict |
|---|---|---|
| Malformed address | bad syntax@x.com | invalid |
| Domain does not exist | a@this-is-not-real-xyz.com | invalid |
| Domain cannot receive mail | a parked domain with no mail server | invalid |
| Disposable inbox | x@mailinator.com | risky |
| Shared role address | info@acme.com | risky |
| Obvious typo | someone@gmial.com | unknown, with a fix |
| Duplicate | the same address twice | removed |
Input
{"emails": ["ruth@acme.com", "info@acme.com", "someone@gmial.com", "x@mailinator.com"],"onlyDeliverable": false,"dropDuplicates": true}
| Option | Does |
|---|---|
emails | Required. Paste a list or feed it from another Actor. |
dropDuplicates | Remove repeats first, so you never pay twice for one address. |
onlyDeliverable | Return only the addresses worth keeping. |
includeRisky | Keep role and disposable addresses in the deliverable set. Off by default. |
checkSmtp | Also ask the mail server whether the mailbox exists. Needs port 25, which Apify blocks, so off by default. |
Output
One row per address, with the reason behind every verdict.
{"email": "info@acme.com","status": "risky","reason": "role_address","score": 50,"syntaxValid": true,"hasMailServer": true,"mailServer": "aspmx.l.google.com","isDisposable": false,"isRoleAddress": true,"suggestedEmail": null,"verifiedAt": "2026-09-02T16:04:11.882Z"}
A typo gets a correction rather than a shrug:
{"email": "someone@gmial.com","status": "unknown","suggestion": "gmail.com","suggestedEmail": "someone@gmail.com"}
Export to JSON, CSV or Excel, or send it straight back into your sending tool.
Clean a list in one run
{"emails": ["..."],"onlyDeliverable": true,"includeRisky": false}
What comes back is the list minus the addresses that would bounce, the throwaway inboxes and the shared role addresses. Import that instead of the raw file.
Run it as an API
curl -X POST "https://api.apify.com/v2/acts/arched_friend~email-list-cleaner/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"emails": ["ruth@acme.com"], "onlyDeliverable": true}'
Wire it into a signup form to reject junk at the door, or run it over your CRM monthly to strip addresses that have gone dead.
Where it fits
This is the fast, cheap first pass. It removes the addresses that are provably bad from the shape of the address and its domain, which is a large share of most lists. What it does not do is knock on each mailbox to confirm a specific person exists, because that needs outbound port 25 and Apify blocks it.
So the sensible flow is to run this first, then send whatever survives to a full mailbox verifier if you want that last layer. You will be paying that verifier for a much smaller, already clean list.
Pricing
You pay per address checked, duplicates removed first.
| Option | Cost per 1,000 |
|---|---|
| Email List Cleaner | $3 |
| Full mailbox verifiers such as ZeroBounce | About $8 to $10 |
| Sending to a list you never cleaned | Bounces, spam traps and a damaged sending domain |
New Apify accounts get free monthly credits, so the first runs cost nothing.
Common questions
Does it confirm every mailbox exists? No, and it does not claim to. It removes what is provably bad at the address and domain level, which is the cheap majority of the work. Confirming an individual mailbox needs port 25, which Apify and most cloud platforms block. Run a full verifier after this on the smaller surviving list.
Then why run this at all? Because most of a dirty list is not subtle. Typos, dead domains, disposable inboxes and duplicates make up a large slice, and clearing them here for a few dollars means you are not paying a pricier verifier, or your sending tool, to handle them.
What is a role address and why is it risky?
Addresses like info@ or support@ reach a shared inbox rather than a person. They are usually deliverable but get poor replies, and some become spam traps. Set includeRisky if you want them kept.
Can it talk to the mail server if I run it somewhere port 25 is open?
Yes. Turn on checkSmtp and, where the network allows it, the mailbox check runs and upgrades verdicts to a confirmed valid or invalid. On Apify it stays off because the port is blocked.
Is this legal? It reads the addresses you supply and looks up public DNS records. Nothing is sent and no personal data is collected beyond your own list.
Related products
- Website Lead Extractor to find the addresses in the first place
- Lead Enrichment Pipeline to build the whole list, then clean it here
- Tech Stack Checker to qualify the companies behind the addresses