Bulk Email Verifier & Validator — MX, Disposable, Role Check avatar

Bulk Email Verifier & Validator — MX, Disposable, Role Check

Pricing

$0.30 / 1,000 email checkeds

Go to Apify Store
Bulk Email Verifier & Validator — MX, Disposable, Role Check

Bulk Email Verifier & Validator — MX, Disposable, Role Check

Use this when you need to check if emails are well-formed and their domain can receive mail. $0.0003/email. Input: {"email":"jane@gmial.com"}. Output: status, score, reason, hasMx, disposable, roleAccount, didYouMean. Does NOT verify that the mailbox exists (no SMTP check).

Pricing

$0.30 / 1,000 email checkeds

Rating

0.0

(0)

Developer

Isaac

Isaac

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Bulk Email Verifier & Validator: MX, Disposable and Role Check

Clean your email list in seconds, before you send. Paste thousands of addresses and get one result per email: valid syntax, whether the domain exists and accepts mail (MX records), disposable or temporary inbox detection (9,900+ known providers), role addresses (info@, sales@, support@), free-provider flag (Gmail, Yahoo, Outlook…), typo suggestions (jane@gmial.com → jane@gmail.com) and SPF/DMARC presence. Every address gets a simple status and a 0–100 score.

  • ⚡ Fast: 2,000 emails checked in about 5 seconds, with DNS results cached per domain
  • 💸 Cheap: pay per email checked, no start fee, no subscription. Duplicates are removed for free
  • 🧹 Practical: catches typos, dead domains and throwaway inboxes, the main causes of bounces and fake sign-ups
  • 🤖 Agent-ready: simple input and output, fixed price per email, works from the API and the Apify MCP server

What does it check?

CheckField
RFC syntax, length and international (IDN) domainssyntaxValid
Domain exists, MX records, null-MX, A-record fallbackdomainExists, hasMx, mxRecords
Disposable / temporary email providersdisposable
Role or shared inboxesroleAccount
Free webmail providersfreeProvider
Common domain typosdidYouMean
SPF and DMARC recordshasSpf, hasDmarc

Status values

  • deliverable_domain: the syntax is valid and the domain accepts email. The individual mailbox is not tested (see FAQ).
  • risky: disposable provider, role address, probable typo, or no MX record.
  • undeliverable: invalid syntax, the domain does not exist, or the domain refuses email.
  • unknown: DNS timed out. Not common; re-run these addresses.

Input example

{ "emails": ["john.doe@gmail.com", "info@apify.com", "someone@mailinator.com", "jane@gmial.com"] }

Output example

{
"email": "jane@gmial.com",
"status": "risky",
"score": 0,
"reason": "possible typo, did you mean jane@gmail.com?",
"domain": "gmial.com",
"hasMx": false,
"disposable": true,
"roleAccount": false,
"freeProvider": false,
"didYouMean": "jane@gmail.com",
"mailboxVerified": false
}

Use it from the API or with AI agents

curl -X POST "https://api.apify.com/v2/acts/poised_beardlichen~email-verifier-bulk/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" -d '{"emails": ["john.doe@gmail.com"]}'

AI agents can call it through the Apify MCP server with https://mcp.apify.com/?tools=poised_beardlichen/email-verifier-bulk. It also works with Make, Zapier, n8n and Google Sheets through Apify integrations.

Pricing

Pay per unique email checked, with no start fee. Set Maximum cost per run and the Actor stops cleanly at your limit.

FAQ

Does it check whether the mailbox really exists? No. Mailbox checks need an SMTP connection on port 25, which cloud platforms block, and many big providers (Gmail, Outlook, Yahoo) don't reveal it reliably anyway. This Actor confirms that the address is well formed and that the domain can receive email, and it flags disposable, role and typo addresses. That is why mailboxVerified is always false. Tools that claim full mailbox checks charge much more.

Where does the disposable list come from? From the community-maintained, public-domain disposable-email-domains project, plus a free-provider list from free-email-domains (MIT).

Is it safe for my list? Yes. No email is ever sent to your contacts, and the Actor only performs DNS lookups on the domains. Results stay in your own Apify storage.

How many emails can I check? Up to 1,000,000 per run. Larger lists can be split across runs.

Do duplicates cost extra? No. With Remove duplicates on (the default), repeated addresses are skipped.

Calling it from an AI agent or a script (async pattern)

A single email finishes in a few seconds; 10,000 emails take a few minutes. The Apify MCP server waits only about 30–45 seconds for a run before it returns. So for batches, slow pages, or whenever a call returns before the run is done, start the run and fetch the results afterwards rather than waiting on it:

  1. Start the run: POST https://api.apify.com/v2/acts/poised_beardlichen~email-verifier-bulk/runs with input such as {"email": "jane@gmial.com"}. The response contains data.id (the run ID) and data.defaultDatasetId.
  2. Wait for it to finish: poll GET https://api.apify.com/v2/actor-runs/<runId>?waitForFinish=60 until status is SUCCEEDED.
  3. Fetch the results: GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?clean=true.

Send your token as Authorization: Bearer <APIFY_TOKEN>. Through MCP, if the call returns a run ID instead of results, use the server's run-status and dataset tools (e.g. get-actor-run, then get-dataset-items) with that ID. For small, quick jobs you can use the synchronous endpoint POST /v2/acts/poised_beardlichen~email-verifier-bulk/run-sync-get-dataset-items instead, which waits for up to 300 seconds.

Other tools by us

Support

Spotted a wrong result or a missing disposable domain? Open an issue on the Issues tab.