Bulk Email Verifier — NeverBounce Alternative
Pricing
from $0.90 / 1,000 email validateds
Bulk Email Verifier — NeverBounce Alternative
Verify email lists in bulk with syntax, DNS MX, disposable-domain, role-account, typo, and optional SMTP checks. Export per-address preflight signals for CRM imports and list cleanup; mailbox delivery is not guaranteed.
Pricing
from $0.90 / 1,000 email validateds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Verify email lists in bulk with syntax, DNS MX, disposable-domain, role-account, typo, and optional SMTP checks. Export per-address preflight signals for CRM imports and list cleanup; mailbox delivery is not guaranteed. For CRM import teams, each dataset row is one supplied email address with standard or selected premium verification evidence.
Workflow: put the results to work
Run a bounded email list before importing it into a CRM or reviewing it for outreach. Separate clearly invalid addresses from uncertain results and inspect optional SMTP findings with their limitations. Preflight validation does not prove that a mailbox belongs to a person or will accept mail.
Best fit
Use this Actor when you already have full email addresses and need a bounded, machine-readable quality pass. It is useful for sales operations, CRM hygiene, signup screening, and lead-enrichment pipelines.
Use a vendor-managed verification service when the workflow requires mailbox ownership evidence, consent handling, or its product-specific delivery decision. Verification remains a data-quality signal rather than permission to contact anyone.
Then use Email to LinkedIn Profile Scraper after the preflight when your lawful workflow needs permitted profile enrichment from that email address.
What each row contains
| Field | Meaning |
|---|---|
email and normalizedEmail | The supplied address and its trimmed lowercase form. |
status, score, primaryReason, reasons | A routing-oriented verdict and the signals behind it. |
isValidSyntax, hasMxRecord, mxRecords | Address format and current DNS mail-routing evidence. |
isDisposable, isRoleBased, isFreeProvider | Risk and segmentation flags. |
suggestedEmail | A close common-provider correction when one is plausible. |
smtpCheck, smtpCode, smtpResponse, isCatchAll | Optional SMTP-probe evidence. These fields can be unknown or absent when the probe is not available. |
verificationTier, verificationSource, providerStatus, providerCheckedAt, providerCreditCharged | The selected tier and premium-verification metadata. Provider fields are null for standard rows. |
validatedAt | When this Actor collected the signals. |
Input
{"emails": ["jane@example.com", "info@acme.io", "jane@gmial.com"],"maxEmails": 1000,"verificationTier": "standard","checkSmtp": false,"checkCatchAll": false,"concurrency": 10,"timeoutMs": 8000}
emails is required. Duplicates are removed before the maxEmails cap is applied. verificationTier: "premium" enables a deeper verification result and is capped at 100 unique addresses per run; standard remains available for up to 1,000. Keep checkSmtp off for the standard deterministic pass: cloud mail networks can block port 25, and an SMTP response is not proof of ownership or future delivery. checkCatchAll only applies when SMTP probing is enabled.
Output example
{"email": "jane@gmial.com","normalizedEmail": "jane@gmial.com","status": "invalid","score": 5,"primaryReason": "mx_not_found","reasons": ["syntax_valid", "typo_suggestion", "mx_not_found"],"isValidSyntax": true,"hasMxRecord": false,"isDisposable": false,"isRoleBased": false,"isFreeProvider": false,"suggestedEmail": "jane@gmail.com","smtpCheck": "skipped"}
How this email-validation workflow compares with NeverBounce
This independent Actor is not affiliated, associated, or endorsed by NeverBounce. The comparison is deliberately limited to a supplied-list preflight workflow; it is not a claim of full-suite or mailbox-verification parity.
| Decision | This Actor | NeverBounce | Best fit |
|---|---|---|---|
| Scope and workflow | Syntax, DNS MX, risk flags, typo signals, and optional SMTP probing for supplied addresses. | Broader vendor-managed verification and list-cleaning product. | Use this Actor for a bounded preflight; use NeverBounce for its managed product workflow. |
| Billing and same-job cost | Pay per event plus platform usage; see the Pricing tab for current rates. | Pay per event plus platform usage; see the Pricing tab for current rates. | Compare only the stated 1,000-address non-SMTP preflight, not feature parity. |
| Effective efficiency | One Apify run returns one structured dataset row per processed address. | Offers real-time verification and list-cleaning flows. | Choose the path whose output and decision depth match the job. |
| Input friction | A bounded emails array; no NeverBounce credential. | Its account and API or product workflow. | Use this Actor for an existing Apify flow; use NeverBounce when you operate its account workflow. |
| Output contract | Declared rows include verdict, reasons, MX state, risk flags, score, and timestamp. | Documents a single-email check API within its product. | Use this Actor when a dataset contract is the downstream integration boundary. |
| Integrations and automation | Apify API, schedules, and dataset retrieval support recurring run-based workflows. | The observed pricing page names product integrations and sync options by plan. | Evaluate the exact required integration and plan rather than assuming equivalence. |
| Freshness and provenance | Every row includes validatedAt and the signals this Actor used. | Its pricing page describes real-time verification. | Treat the two evidence models separately; this Actor does not claim field-level parity. |
API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/neverbounce-alternative').call({emails: ['jane@example.com', 'info@acme.io'],maxEmails: 1000,verificationTier: 'standard',checkSmtp: false});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Agent prompt card
Validate the supplied email addresses with
khadinakbar/neverbounce-alternative. Return the dataset rows and group them bystatus. Treatunknown,risky, and optional SMTP results as review signals, not proof that a mailbox exists or that outreach is permitted.
Use with Apify MCP
This regular Actor can be discovered and called through Apify MCP. Use it for an already-supplied email list when you need flat rows with status, primaryReason, score, MX state, risk flags, and validatedAt. For mailbox-ownership proof, consent review, or a vendor-managed verification result, choose the service designed for that decision.
For large batches, ask the client to retrieve the default dataset in pages after execution completes. OUTPUT and RUN_SUMMARY state whether processing was complete, partial, needs corrected input, or should be retried later; they keep the dataset to validated email rows.
Interactive API endpoints
The Actor also has a Standby HTTP surface for short, interactive checks. Open its live Endpoints/Standby tab for the current request schema and endpoint behavior. The run-mode API example above is the preferred path for bounded lists and audit-friendly dataset output.
Freshness and provenance
DNS and classification values are collected during each run, and validatedAt identifies the collection time for every row. The private alternative dossier retains the comparison sources, cost boundaries, and release-evidence records while public copy stays evergreen.
Builder's note
I designed the result contract around one flat row per supplied email so an operator or automation can make its next routing decision without parsing a dashboard. The optional SMTP fields remain separate from the deterministic syntax, DNS, and classification signals because cloud mail-network behavior is not a durable proof of a mailbox.
Outcomes and limits
COMPLETE: every requested, bounded address produced a persisted row.PARTIAL: useful rows were persisted andRUN_SUMMARYprovides the next action for the remaining batch.INVALID_INPUT: fix the email array and retry; no rows are fabricated.UPSTREAM_FAILED: retry later with the same valid input when no rows were persisted.
OUTPUT is the compact machine contract. RUN_SUMMARY includes input, deduplication, validation, persistence, warning, and charge counters. Read large outputs from the default dataset in pages.
Responsible use
Email addresses can be personal data. Use this Actor only where you have a lawful basis and comply with applicable privacy and anti-spam rules. A validation result does not create consent, override an opt-out, or authorize outreach.
Pricing and run costs
This Actor uses Pay per event plus Apify platform usage. The Pricing tab lists the current event rates and billing terms.
| Event | Billing unit | When it applies |
|---|---|---|
apify-actor-start | Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
email-validated | Email validated | Charged for each email address fully processed and pushed to the dataset. Includes RFC 5322 syntax check, DNS MX lookup, disposable/role/free-provider classification, typo suggestion, and 0–100 deliverability scoring. |
email-premium-verified | Premium email verified | Charged for each premium verification result that consumes a verification credit and is persisted to the dataset. |
Run cost combines the charged events and Apify platform usage. Review the run charge limit and requested result count before starting.
Connect an AI agent
Use the Apify MCP configurator to choose an available client connection. Inspect this Actor’s current input schema and required credentials before running it.