Bulk Email Verifier — Validate Emails, MX, Disposable & Role avatar

Bulk Email Verifier — Validate Emails, MX, Disposable & Role

Pricing

from $0.87 / 1,000 email-verifieds

Go to Apify Store
Bulk Email Verifier — Validate Emails, MX, Disposable & Role

Bulk Email Verifier — Validate Emails, MX, Disposable & Role

Validate supplied email lists and return one structured record per unique email with syntax, DNS/MX, heuristic, and optional SMTP results. Run with emails and optional checkSmtp; no API key or login. Pricing: $0.0009 per email-verified event on Free.

Pricing

from $0.87 / 1,000 email-verifieds

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

Bulk Email Verifier

Bulk Email Verifier checks a supplied email list against public DNS records and, optionally, a standard SMTP handshake, returning one structured record per unique address.
No login or API key is needed: you only supply the email list. Built for B2B lead-list hygiene, it returns normalized results for CRM import or email campaigns, and you can export the dataset as JSON or CSV.

  • Clean lead lists before CRM import or email campaigns.
  • Review returned free-provider, disposable-domain, and role-account flags before outreach.
  • Review suggested domain corrections before contacting addresses.
  • Check DNS and MX records in bulk, with an optional SMTP check that does not deliver mail.
  • Deduplicate repeated addresses and receive one structured result per unique email.

What you get

FieldTypeMeaningWhen null or empty
emailstringThe normalized address. Input whitespace is removed and the address is lower-cased during verification.Never
resultstringOverall verdict: valid, invalid, or risky.Never
reasonstringShort machine-readable explanation such as ok, invalid_syntax, no_mx_record, role_account, disposable_domain, smtp_confirmed, or smtp_rejected.Never
isValidbooleantrue only when result is valid; false for invalid and risky.Never
syntaxValidbooleanWhether the address passes the verifier’s syntax checks.Never
domainstringThe domain part of the address.null when the syntax is invalid.
mxFoundbooleanWhether an MX host was found for the domain.Never; false when no host is found.
mxRecordstringThe primary mail host found for the domain.null when no host is found.
isFreeProviderbooleanWhether the domain is in the verifier’s free webmail provider list.Never; false when it is not in the list.
isDisposablebooleanWhether the domain is in the verifier’s disposable or temporary-mail list.Never; false when it is not in the list.
isRoleAccountbooleanWhether the local part matches a role address such as info, admin, support, or sales.Never; false when it is not a role address.
didYouMeanstringA suggested domain correction when a likely typo is detected.null when no suggestion is returned.
smtpCheckstringOptional best-effort mailbox check: deliverable, undeliverable, unknown, or skipped when the SMTP probe was not requested, or when the address has invalid syntax or no MX host.Never; skipped is used when disabled or not attempted.

The nullable fields above use null when the source does not provide the value.

Sample output

The following is one full record from the dataset sample. The email value is hidden for privacy:

{
"email": "<hidden for privacy>",
"result": "valid",
"reason": "ok",
"isValid": true,
"syntaxValid": true,
"domain": "stripe.com",
"mxFound": true,
"mxRecord": "aspmx.l.google.com",
"isFreeProvider": false,
"isDisposable": false,
"isRoleAccount": false,
"didYouMean": null,
"smtpCheck": "skipped"
}

Pricing

Pricing uses pay-per-event billing. The email-verified event covers one email verified with all fields. Duplicates are removed before verification, so repeated addresses are charged once. The apify-actor-start event is charged once per GB of run memory, with a minimum of one event.

EventFree plan price per event
apify-actor-start$0.00005
email-verified$0.0009

For the primary event, 1,000 results = $0.90 on Free and 10,000 results = $9.00 on Free.

Apify Free plan includes $5 of monthly platform usage credit. The Free plan's $5 credit covers 5,555 full email-verification results in a run.

You pay only for the events listed below. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.

How to use

  1. Prepare an array of email address strings in the emails input.
  2. Choose whether to enable checkSmtp for a best-effort live mailbox probe.
  3. Adjust optional processing controls when needed.
  4. Run the Actor from your Apify account.
  5. Inspect one structured dataset record per unique email.
  6. Repeat the run through Apify Schedules; weekly is a reasonable starting point for recurring lead-list hygiene.
{
"emails": [
"user@mailinator.com",
"info@mailinator.com"
],
"checkSmtp": false,
"timeout": 8,
"maxItems": 0,
"disableUsageStats": false
}

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
emailsRequired array of email address strings. The Actor trims, normalizes, and removes duplicates before verification.Required
checkSmtpEnables a best-effort SMTP mailbox probe. Blocked mail servers or networks produce smtpCheck: "unknown" rather than changing the core syntax, DNS, and heuristic checks.false
timeoutSets the per-email timeout for DNS and SMTP work. The accepted range is 3–30 seconds; network calls use no more than 8 seconds.8
maxItemsCaps the number of emails verified after normalization and de-duplication. 0 verifies all supplied emails.0
disableUsageStatsSet to true to turn off the run summary described in Usage statistics.false

Limits and edge cases

ConditionWhat you seeWhat to do
The same address appears more than once, including with different capitalization or surrounding whitespaceThe normalized address is verified once and is not charged twice.No special handling is needed.
maxItems is greater than 0Only the first maxItems addresses after normalization and de-duplication are verified.Set maxItems to 0 to verify all normalized addresses.
timeout is outside 3–30 secondsThe input does not meet the schema’s accepted range.Use a whole-number value from 3 through 30.
timeout is greater than 8 secondsThe input is accepted, but DNS and SMTP calls are capped at 8 seconds by the verifier.Use a value from 3 through 8 when you need the setting to represent the effective network timeout.
An address fails syntax checksThe record has result: "invalid" and reason: "invalid_syntax".Correct the address before using it in a campaign or CRM.
No MX host is found for the domainThe record has result: "invalid", reason: "no_mx_record", and mxFound: false.Check the spelling and domain configuration.
SMTP is enabled but the mail server or network blocks the probesmtpCheck is unknown; the syntax, DNS, and heuristic verdict remains available.Treat unknown as inconclusive or run without SMTP probing.
The SMTP server rejects the mailbox probeThe record has smtpCheck: "undeliverable", result: "invalid", and reason: "smtp_rejected".Remove or separately review the address.
An address belongs to a disposable domain or role accountThe overall result is risky with the corresponding heuristic reason.Decide whether that address is appropriate for your use case.
checkSmtp is on but the address has invalid syntax or no MX hostsmtpCheck stays skipped; no SMTP probe is attempted.Fix the address or domain first.
checkSmtp is off and the result is validvalid confirms only syntax, DNS/MX records and the built-in lists; it does not prove the mailbox exists.Enable checkSmtp for a best-effort mailbox probe, and treat unknown as inconclusive.
The free-provider, disposable-domain, or role lists do not cover an addressThe lists are compact and not exhaustive, so an unlisted provider, disposable domain, or role name gets a false flag.Treat the flags as high-precision hints, not complete coverage.
You need to check a provider, disposable domain, or typoRun a one-address job and read the record for that address.Use the returned record.
Verification of the input completesRecords reach the dataset after verification, in batches of up to 100.Check the dataset after the run.
A run is aborted, times out, or fails before a dataset batch is pushedNo verified dataset records have been written.Run the input again.
A run stops or fails after a dataset batch is pushedAlready pushed batches remain in the dataset; later batches may be absent.Check the dataset and rerun any missing addresses.

FAQ

How much does it cost to verify an email list?

See the Pricing table for the Free-plan prices and worked example.

Does the Actor send emails?

No. It reads public DNS records and, when checkSmtp is enabled, performs a standard SMTP handshake without delivering a message.

Why can smtpCheck be unknown?

Many mail hosts and networks block best-effort SMTP mailbox probes. In that case, the Actor keeps its syntax, MX/DNS, and heuristic verdict and records unknown for the SMTP check.

The Actor uses public DNS records and, when requested, a standard SMTP handshake. Whether a particular use is allowed depends on the source terms and applicable law for your use case; review those requirements before processing or contacting people.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields