Email Validator & List Cleaner (MX, Disposable, Typo)
Pricing
from $0.60 / 1,000 email checkeds
Email Validator & List Cleaner (MX, Disposable, Typo)
Bulk email validator and list cleaner: syntax, MX records, disposable email detection, role accounts, typo fixes (gmial.com) and de-duplication. Lower bounce rates for $0.60 per 1,000 emails.
Pricing
from $0.60 / 1,000 email checkeds
Rating
0.0
(0)
Developer
K09 Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Email Validator & List Cleaner
A fast, low-cost email validator for whole lists. Check email addresses in bulk before you import them or send to them: syntax validation, MX record check, disposable email detection, role-account detection, typo correction (gmial.com → gmail.com) and de-duplication. Paste addresses or upload a CSV, and get a status and plain-English reasons for every address.
Use it to: lower your bounce rate before a campaign, clean a newsletter or CRM import, block throwaway sign-ups, and pre-clean cold email lists before paying for a full mailbox verifier. Pricing: $0.60 per 1,000 emails, and duplicates are free.
Only need to check a few addresses by hand? Use the free browser version: K09 Email Validator (up to 100 emails, no sign-up). This Actor is for full lists, file uploads, the API and scheduled runs.
What it checks
| Check | What you get |
|---|---|
| Syntax | Catches broken addresses (a..b@x.com, name@@mail.com, missing domain, invalid characters). Trims spaces, mailto: and <brackets>. International domains are supported. |
| Mail servers (MX) | Looks up the domain's MX records. Flags domains that don't exist, have no mail servers, or publish a "null MX" (accepts no email). |
| Disposable domains | Flags temporary inboxes such as mailinator.com, using a community-maintained list that updates on every run. |
| Typos | Suggests a fix for common mistakes: gmial.com → gmail.com, yahoo.con → yahoo.com, hotmial.com → hotmail.com. |
| Role accounts | Flags addresses that reach a team rather than a person (info@, sales@, noreply@). |
| Free providers | Marks Gmail, Yahoo, Outlook and other consumer mailboxes (useful for B2B lists). |
| Duplicates | Removes repeats, ignoring case. Duplicates are not charged. |
Status values
- ok: passed every check.
- risky: can receive mail but is flagged (disposable, role account, possible typo, or no MX record).
- invalid: can't receive email (bad syntax, domain doesn't exist, or no mail servers).
- unknown: the DNS lookup failed. Try again later.
What it does not do
It doesn't connect to mail servers to test whether a specific mailbox exists (SMTP "pinging"). That is slow, often blocked, and can hurt sender reputation. An address with status ok has a real mail domain and no red flags, but the mailbox itself isn't confirmed. Many teams run this cleaner first to cheaply remove junk, then send only the remaining addresses to a full mailbox verifier.
Input
- Emails: one per line.
- Paste emails: a block of text separated by lines, commas, semicolons or spaces.
- Upload a file: upload a CSV or TXT file (or paste a link to one) up to 25 MB. Every email found in the file is checked.
- Options: turn MX checks off, keep duplicates, or cap the number of emails.
Output
One row per address in the dataset (export as CSV, Excel or JSON):
{"email": "someone@gmial.com","status": "risky","reasons": ["possible typo of gmail.com", "disposable / temporary email domain"],"suggestion": "someone@gmail.com","mailServer": "unknown","isDisposable": true,"isRoleAccount": false,"isFreeProvider": false,"input": "someone@gmial.com"}
The run also saves:
SUMMARY: counts per status.CLEAN_LIST: a plain-text file with only the ok addresses, ready to import.
Pricing
You pay per unique email checked. Duplicates are free. If you set a maximum cost for a run, the Actor stops cleanly when it reaches it and keeps everything checked so far.
Privacy
Addresses are only used to run the checks. They go into your own run's dataset and nowhere else. Only the domain part is looked up in public DNS.
Use it from code or AI agents
Every run can be started from the API, and results come back as JSON, CSV or Excel. Replace YOUR_APIFY_TOKEN with the token from Apify Console → Settings → API & Integrations.
cURL (runs the Actor and returns the results in one call):
curl -X POST "https://api.apify.com/v2/acts/k09~email-list-cleaner/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"emails":["jane.doe@gmail.com","info@acme.com","someone@gmial.com"]}'
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("k09/email-list-cleaner").call(run_input={"emails": ["jane.doe@gmail.com","info@acme.com","someone@gmial.com"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript / Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('k09/email-list-cleaner').call({"emails": ["jane.doe@gmail.com","info@acme.com","someone@gmial.com"]});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
No-code and AI agents: the Actor works with Apify's Zapier, Make and n8n integrations, can run on a schedule from the Console, and can be used as a tool by AI agents through Apify's MCP server (see Apify's MCP documentation).