Bulk Email Verifier
Under maintenancePricing
$5.00 / 1,000 email verifieds
Bulk Email Verifier
Under maintenanceVerify email deliverability in bulk. Get syntax, MX, disposable/role checks and a 0–100 score. Pay only for successfully verified emails.
Pricing
$5.00 / 1,000 email verifieds
Rating
0.0
(0)
Developer
PROOFNEXA
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Verify up to 500 email addresses for syntax, MX, disposable, role-based, and conservative SMTP reachability signals.
Get one structured Dataset record per unique input address, with a 0–100 score and valid / risky / invalid status.
Pay only for saved, syntax-valid results that complete the email-verified event; failed, duplicate, syntax-invalid, and invalid results are not charged.
Input
emails is required and accepts either a JSON string array or CSV/newline-delimited text. timeoutMs is optional and applies to MX and SMTP connection checks.
{"emails": ["person@gmail.com","alerts@mailinator.com","not-an-email"],"timeoutMs": 1500}
CSV text is also accepted:
person@gmail.comalerts@mailinator.comnot-an-email
The maximum is 500 unique addresses. Duplicate inputs are emitted once and are not charged.
Output
Each unique input address produces at most one Dataset record:
| Field | Meaning |
|---|---|
email | Trimmed input address |
isValidSyntax | Conservative syntax check |
hasMx | Whether the domain returned at least one MX record |
isDisposable | Match against the built-in disposable-domain baseline |
isRoleBased | Common role mailbox prefix such as support@ or sales@ |
score | 0–100 heuristic score, not a delivery guarantee |
status | valid, risky, or invalid |
checkedAt | ISO-8601 check timestamp |
smtpReachable | true, false, or null; conservative TCP connection signal |
Verification and billing boundaries
- DNS MX lookup uses Node.js built-in DNS resolution. No paid enrichment API is used.
- SMTP checking opens a short TCP connection to the preferred MX host only. It does not send
RCPT TO, does not send an email, and does not claim that a mailbox can receive mail. - SMTP timeout or connection failure becomes an unknown signal and does not crash the run.
- A Dataset write happens before
Actor.charge({ eventName: "email-verified", count: 1 }). - The implementation checks
chargedCount. If the event is unavailable, partially fulfilled, or the run limit is reached, processing stops safely to avoid continuing with uncharged billable results. - The code constant is
EVENT_PRICE_USD = 0.005. Configure the matching PPE event in Apify Console only after human approval; this repository does not publish or change Console pricing.
Local checks
npm installnpm run checknpm test
For a local integration run without Apify PPE configuration, set EMAIL_VERIFIER_LOCAL_TEST=1. This test-only flag simulates one successful charge response; it is not set by the Actor in production.
Scope
This Actor contains no SEC, filing-monitor, social-network, LinkedIn, Finder, or dashboard code. The disposable-domain and role-prefix lists are deliberately small baselines; valid is not an SMTP delivery guarantee.
Operational stop lines
- Success line: within 7 days after human-approved publication, at least one external paid run occurs and the result is net profitable.
- Withdrawal line: if paid runs remain 0 after 14 days, stop candidate.
- Until those observations exist, do not infer product demand or expand the feature set from local test runs.