Bulk Email Verifier - MX, Syntax & Deliverability Score avatar

Bulk Email Verifier - MX, Syntax & Deliverability Score

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Bulk Email Verifier - MX, Syntax & Deliverability Score

Bulk Email Verifier - MX, Syntax & Deliverability Score

Verify and clean email lists with no API key, without sending any email. Checks syntax, resolves MX (DNS-over-HTTPS), flags disposable & role accounts, detects free webmail, and scores deliverability 0-100 (deliverable / risky / undeliverable). Read-only. Export CSV/JSON/Excel.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Flash Scrape

Flash Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Bulk Email Verifier — verify email addresses in bulk with syntax, MX, disposable & role checks

Verify email addresses in bulk before your next cold-email campaign — no API key, no subscription, and it never sends a single email. Paste a list, get back a clear deliverable / risky / undeliverable status, a reason code, and a 0–100 deliverability score for every address, at $1 per 1,000 verified emails. Built for list hygiene: cut bounces, protect your sender reputation, and stop paying to email dead inboxes.

What does it do?

For every email address in your list, the actor runs a fast, read-only verification pipeline:

  • Syntax validation — RFC-style format check (length limits, local part, domain shape)
  • MX record lookup — resolves the domain's mail servers over DNS-over-HTTPS (Google and Cloudflare resolvers), so it works from any network without port-25 access
  • Disposable domain detection — flags temporary inboxes (mailinator, yopmail, guerrillamail, temp-mail and ~70 other domains)
  • Role account detection — flags generic mailboxes like info@, sales@, support@, noreply@, admin@ that convert poorly and bounce often
  • Free webmail detection — labels gmail, outlook, yahoo, icloud, proton and other consumer providers so you can separate B2B from personal addresses
  • Normalization + deduping — trims, lowercases, and (optionally) drops case-insensitive duplicates before verifying

Input is flexible: an array of strings, one address per line, or a single comma/space/newline-separated blob. Verification runs in parallel (configurable concurrency) with per-domain MX caching, so large lists finish quickly.

Use cases

  • Cold outreach list cleaning — run every scraped or purchased list through the verifier and keep only deliverable rows; bounces above ~2–3% get your domain flagged by Google and Microsoft.
  • Sales prospecting pipelines — chain it after a lead scraper so every contact you hand to sales already has a verified, scored email.
  • Lead-gen agencies — deliver client lists with a status and score column attached; verified lists command higher prices than raw scrapes.
  • CRM hygiene — export your CRM's email column quarterly, verify it, and archive contacts whose domains no longer accept mail.
  • Form-signup filtering — batch-check new signups and quarantine disposable domains before they hit your product analytics or drip campaigns.

Input

FieldTypeDefaultDescription
emailsarray(required)List of email addresses to verify. You can paste them one per line, or pass an array. Also accepts a single comma/space/newline-separated string.
concurrencyinteger20How many emails to verify in parallel (1–100).
dedupebooleantrueDrop duplicate addresses (case-insensitive) before verifying.
includeInvalidbooleantrueKeep malformed addresses in the results (flagged undeliverable) instead of dropping them.

Example input:

{
"emails": ["john@apify.com", "info@stripe.com", "noreply@gmail.com", "test@mailinator.com"],
"concurrency": 20,
"dedupe": true,
"includeInvalid": true
}

Only emails is required.

Output

One dataset row per verified address. Export to CSV, JSON, or Excel, or pull results via the Apify API.

{
"email": "John@Apify.com",
"normalized": "john@apify.com",
"status": "deliverable",
"score": 75,
"reason": "mx_valid",
"syntax_valid": true,
"domain": "apify.com",
"is_free": false,
"is_role": false,
"is_disposable": false,
"mx_found": true,
"mx_host": "aspmx.l.google.com"
}

Status and score map to a fixed, transparent rubric:

statusreasonscoremeaning
deliverablemx_valid75Valid syntax, domain has working mail servers, no risk flags
riskyrole_account55Generic mailbox (info@, sales@, ...) — deliverable but low-value for outreach
riskydisposable15Temporary/throwaway domain
undeliverableno_mx_record5Domain has no mail servers — mail cannot be delivered
undeliverableinvalid_syntax0Malformed address

Example output

A real sample from a live run:

emailstatusscorereasonis_disposablemx_found
invalid@@bademailundeliverable0invalid_syntaxfalsefalse
test@mailinator.comrisky15disposabletruetrue
hello@shopify.comrisky55role_accountfalsetrue
info@stripe.comrisky55role_accountfalsetrue

Pricing

This actor uses Apify pay-per-event pricing: a result event is charged for each verified email in the dataset — $1 per 1,000 verified emails at the base tier. No subscription, no minimums, and no charge for runs that produce nothing. A free Apify plan is enough to try it — the platform's free monthly credit covers thousands of verifications, so you can clean a real list before paying anything.

Tips & FAQ

Does it do a full SMTP handshake with the mail server?

No — and the README won't pretend otherwise. This verifier checks syntax and MX/DNS only (plus disposable/role/free classification). It confirms the domain accepts mail, not that the specific mailbox exists. That's why a clean pass caps at a score of 75, not 100. The upside: it's read-only, sends nothing, needs no proxies or port 25, and never risks your IP reputation. For high-stakes sends, treat deliverable as "safe to include", and let your email tool's soft-bounce handling catch the remaining mailbox-level misses.

Can a deliverable email still bounce?

Yes, occasionally. A domain can have valid MX records while the individual mailbox is full, disabled, or never existed (catch-all domains are the usual culprit). MX-level verification typically removes the large majority of bounces from a scraped list, but it can't guarantee zero.

Why are role accounts marked risky rather than undeliverable?

info@ and sales@ mailboxes usually work — they're flagged because they're shared inboxes with low reply rates, and some ESPs penalize campaigns heavy on role addresses. Filter them out with the is_role column if your tooling dislikes them, or keep them for local-business outreach where they're often the only address available.

How big a list can I verify in one run?

There's no hard input cap. Verification is parallel (up to concurrency: 100) and MX lookups are cached per domain, so lists that share domains verify especially fast. For very large jobs, splitting into runs of a few tens of thousands keeps datasets easy to export.

What happens to malformed addresses?

With includeInvalid: true (the default) they stay in the output flagged undeliverable / invalid_syntax with a score of 0 — useful for auditing what was wrong with a source list. Set it to false to drop them silently. Note that every row pushed to the dataset is a charged result.

Does it need proxies or an API key?

No. MX resolution goes over DNS-over-HTTPS to Google and Cloudflare, which works from any IP, including datacenter IPs, with nothing to configure.

Found a bug or need a feature? Open an issue on the actor's Issues tab — typical response within 1 business day.