Email List Cleaner & Validator (Dataset, CSV or Sheet) avatar

Email List Cleaner & Validator (Dataset, CSV or Sheet)

Pricing

from $1.40 / 1,000 addresses

Go to Apify Store
Email List Cleaner & Validator (Dataset, CSV or Sheet)

Email List Cleaner & Validator (Dataset, CSV or Sheet)

Cleans an email list from an Apify dataset, a CSV/Excel file or Google Sheet, keeping every original column and adding a verdict per row: format, whether the domain accepts mail, throwaway domains, shared inboxes, typos and duplicates. Does NOT confirm individual mailboxes. Charged per address.

Pricing

from $1.40 / 1,000 addresses

Rating

0.0

(0)

Developer

Adam Pearce

Adam Pearce

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

You scraped or exported a list of leads. Some of those addresses are dead, some are throwaway signups, some are info@ inboxes that will get you marked as spam, and some are simple typos like gmial.com. Send to them and your sender reputation takes the hit, which is what stops your good emails landing.

This Actor checks the list you already have and hands it straight back with a verdict on every row.

The one thing to know before you start

This does not confirm that an individual mailbox exists. That check needs a direct SMTP conversation with the mail server, and Apify's network blocks outbound mail ports, which was tested on their infrastructure before this Actor was built. So it is not available here, and pretending otherwise would be the one genuinely dishonest thing this tool could do.

Every row it returns carries mailboxChecked: false so that limit travels with your data, not just this page.

What it does catch, which is most of what wrecks a campaign:

CheckCatches
Address formatBroken and malformed addresses that bounce instantly
Mail server (MX/A records)Domains that cannot receive mail from anyone, the biggest single source of hard bounces
Throwaway domainsmailinator.com, guerrillamail.com and around 120 others: people who signed up not wanting contact
Shared inboxesinfo@, sales@, support@, which bounce and draw spam complaints far more on cold lists
Likely typosgmial.com, hotmial.com, yahooo.com, with the correction suggested so you can fix rather than bin the lead
DuplicatesThe same address again, ignoring case and stray spaces
Free providersFlags gmail/yahoo/outlook, useful to know on a B2B list

If you need mailbox-level confirmation as well, run this first to strip the obvious junk cheaply, then send the much smaller survivor list to a paid verification service. That is the sensible order anyway, because you pay those services per address.

What makes it different from the other verifiers

Every other email checker on the Store takes one input: a typed-in list of addresses. So you pull the email column out of your spreadsheet, paste it in, get back a bare list of addresses and verdicts, and then have to match it all back to your names, companies and phone numbers yourself.

This one takes your actual list: an Apify dataset, a CSV or Excel file, a Google Sheet, or pasted JSON. Every original column comes back untouched, with the verdict columns added alongside. Nothing to re-join.

Example

In (your scraper's output, or a sheet):

namecompanyemail
Ana SilvaSilva Ltdana.silva@apify.com
Ben OkaforOkafor & Coben@gmial.com
Cara LindLind Studioinfo@lindstudio.co.uk
Dan ReevesReeves Ltddan@mailinator.com
Frank OrtizReeves Ltdfrank@thisdomaindoesnotexist12345.com

Out (real output from the default example):

namecompanyemailemailStatusemailReasondidYouMean
Ana SilvaSilva Ltdana.silva@apify.comvalidok
Ben OkaforOkafor & Coben@gmial.comriskypossible_typogmail.com
Cara LindLind Studioinfo@lindstudio.co.ukriskyrole_address
Dan ReevesReeves Ltddan@mailinator.cominvaliddisposable_domain
Frank OrtizReeves Ltdfrank@thisdomaindoesnotexist12345.cominvalidno_mail_server

Your name and company columns are still there, still lined up.

The four verdicts

  • valid: passed every check that ran. Not a delivery guarantee, see above.
  • risky: send if you want, but know why. Shared inbox, likely typo, or a domain whose lookup did not complete.
  • invalid: do not send. Broken format, a domain that accepts no mail, or a throwaway provider.
  • duplicate: you already have this address earlier in the list.

Alongside the verdict you get the individual flags (hasMailServer, isDisposable, isRoleAddress, isFreeProvider, didYouMean, syntaxValid) and emailAllReasons with everything that applied, so you can set your own bar rather than taking ours.

Pricing

EventPrice
Address checked$0.002
File export (CSV or Excel)$0.01 per file
Webhook delivery$0.02, only on a confirmed 2xx
Actor start$0.00005 per run

Bronze 10% off, Silver 20%, Gold 30%, applied automatically.

In practice: 1,000 addresses is $2. A list of 10,000 is $20. A nightly clean of 200 new leads is about $12 a month.

Everything that gets a verdict is charged, including rows you filter out of the output with Rows to keep and including duplicates, because each one still had to be checked to know that. Domain lookups are cached per domain, so a 5,000-row list covering 300 domains does 300 lookups, not 5,000, which is why this is fast and cheap to run.

Tips

  • Leave "Email field" empty unless it guesses wrong. It looks for a sensibly named column first, then falls back to whichever column actually contains addresses.
  • Use "Rows to keep" set to problems for a review list of just the junk, or valid to get a clean send list directly.
  • didYouMean is worth acting on. A typo is a real lead you would otherwise throw away. Note that some typo domains, hotmial.com for one, really do run mail servers and will happily swallow your email, which is precisely why the flag matters.
  • A domain lookup that times out comes back risky, never invalid. A slow DNS server is not evidence of a bad address.
  • Chain it: Dataset Cleaner & Exporter to tidy the raw scrape, this to check the addresses, then Dataset Filter & Transform to keep only emailStatus = valid.

FAQ

Does a "valid" verdict mean the email will definitely arrive? No, and nothing that says otherwise is being straight with you. It means the address is properly formed, the domain can receive mail, and it is not a throwaway, a shared inbox or an obvious typo. Whether that specific person still works there is something no tool can tell you without sending.

Why can't you check the mailbox like the other tools? Apify blocks outbound connections on the mail ports. That was tested directly on their servers, on ports 25 and 587, against Gmail, Outlook and Google Workspace, before this Actor was designed. Tools that do offer the check are calling a paid third-party service behind the scenes, which is usually why they cost far more per address.

Will it change my data? No. Your original columns are returned exactly as they came in. The normalized lowercase address is added as a separate emailNormalized column rather than overwriting yours.

How current is the throwaway-domain list? It covers roughly 120 of the common providers and is bundled with the Actor rather than fetched at run time, so a run can never fail because an external list was down. It is not exhaustive, and new throwaway domains appear constantly. If you hit one it misses, say so on the Issues tab and it will get added.

Can I use it on a list I bought? You can, and the domain and format checks will strip a lot of it. Be aware that bought lists fail mostly at the mailbox level, which is the one thing this cannot check, so pair it with a paid service for that step.

If this saved you a bounced campaign or a damaged sender reputation, a review on the Store page genuinely helps.

The rest of the toolkit

For AI agents

Pay per event, agent-payable through x402 and MCP, limited permissions, no standby. Inputs: datasetId (resource picker), fileUrl (CSV, TSV, Excel, JSON, JSON Lines or Google Sheet) or inline data for the rows; emailField (auto-detected when omitted); checkMailServer, detectDisposable, detectRole, detectTypos, markDuplicates to control the checks; keep to filter the output; exportFormats, outputDatasetName, webhookUrl for delivery. Returns every input row unchanged plus emailStatus (valid, risky, invalid, duplicate), emailReason, emailAllReasons, hasMailServer, mailServer, isDisposable, isRoleAddress, isFreeProvider, didYouMean and mailboxChecked (always false), plus a CLEAN_SUMMARY record. Charged $0.002 per address given a verdict, including rows filtered from the output. SMTP mailbox verification is NOT performed and is not available on this platform; do not present a valid verdict as a delivery guarantee.