Email Address Validator — ZeroBounce Alternative
Pricing
from $0.90 / 1,000 email validateds
Email Address Validator — ZeroBounce Alternative
Validate email addresses with syntax, MX, disposable-domain, role-account, typo, and optional SMTP signals. Export per-address results and scores for list hygiene, with the selected verification tier and limits made explicit.
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
7 days ago
Last modified
Categories
Share
Validate email addresses with syntax, MX, disposable-domain, role-account, typo, and optional SMTP signals. Export per-address results and scores for list hygiene, with the selected verification tier and limits made explicit. For list-hygiene teams, each dataset row represents one normalized email address with its selected verification signals.
Workflow: put the results to work
Submit complete addresses and choose the verification tier appropriate to your list. Review syntax and DNS findings separately from optional SMTP signals, then route uncertain results for further checks. A successful syntax or MX check alone does not establish mailbox deliverability.
Best fit and connected workflows
This Actor fits workflows that start with full email addresses and need a per-address validation result before sending, importing, or routing records. It is a focused standalone workflow: use the structured rows for a current list-hygiene decision, then pass the accepted records into the approved outreach or CRM process.
Common routing patterns include:
- cold outreach list cleanup, where each address is scored and labeled before it reaches an email platform
- signup or CRM hygiene, where role addresses, disposable addresses, and typo suggestions guide the next action
- lead-enrichment pipelines, where another Actor gathers contacts and this Actor validates the resulting addresses
- AI-agent workflows through Apify MCP, where a tool call returns one record per email for programmatic decisions
- instant lookup workflows through the Apify Standby HTTP API, where a request can validate addresses with low-friction API access
How this workflow compares with ZeroBounce
This is a workflow-level alternative for validating a supplied list of complete email addresses. It covers the deterministic list-hygiene step and returns machine-readable rows; ZeroBounce remains a stronger fit when a workflow needs its broader activity, suppression, scoring, file-management, deliverability, or native-integration suite.
| Decision | This Actor | ZeroBounce | Best fit |
|---|---|---|---|
| Scope | Syntax, DNS MX, list-classification, typo, optional SMTP, and a score per input address | A broader email-validation and deliverability product | Use this Actor for the focused validation step; choose ZeroBounce when the surrounding suite is part of the requirement. |
| Billing | Pay per event plus Apify platform usage for the processed workflow | Credit- and subscription-based validation options | Compare the current prices against the same list size and required fields. |
| Input | A JSON array of full email addresses; no provider key is collected | Its batch API uses an API key and batch payload | Use this Actor for a bounded API/MCP run; use ZeroBounce when its authenticated service is already the chosen system. |
| Effective efficiency | One schema-complete dataset row is persisted for each accepted address, and normalized duplicates are removed before billing | Batch and file paths support its broader validation workflow | Compare elapsed time, usable rows, required fields, and operator steps for the same batch. |
| Output | Dataset rows expose status, score, primaryReason, MX, classification flags, and validatedAt | Its API documents additional proprietary status and activity-oriented fields | Choose the output contract that contains the fields needed by the next workflow step. |
| Automation | Run through Apify API, scheduled tasks, or MCP workflow tooling | API and native platform integrations | Choose the automation path already connected to the buyer's stack. |
ZeroBounce is a trademark of its owner. This independent Actor is not affiliated, associated, or endorsed by ZeroBounce.
Input
Submit full email addresses as an array. Each item is normalized to lowercase before validation.
Input fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
emails | array of string | Yes | - | One to 1,000 full email addresses. Pass a single address as a one-item array. Normalized duplicates are removed without a charge. |
verificationTier | string | No | standard | standard uses the native pipeline. premium adds an owner-managed EmailListVerify result when the Premium email verified event is active. No BYOK is required. |
maxEmails | integer | No | 1000 | Per-run processing cap from 1-1000. Addresses beyond the cap are skipped and not charged. |
checkSmtp | boolean | No | false | Run a live SMTP RCPT TO probe. When enabled, the Actor attempts mailbox verification in addition to syntax, MX, and classification checks. |
checkCatchAll | boolean | No | false | Detect catch-all domains when checkSmtp is enabled. |
concurrency | integer | No | 10 | Concurrent validations. Range: 1-50. Recommended input guidance: 5-15 for most lists. |
timeoutMs | integer | No | 8000 | SMTP timeout in milliseconds. Range: 1000-30000. |
Valid focused JSON example
{"emails": ["jane@example.com","info@acme.io","fake@thisdomaindoesnotexist123.io"],"checkSmtp": false,"checkCatchAll": false,"verificationTier": "standard","maxEmails": 1000,"concurrency": 10,"timeoutMs": 8000}
Output
Each dataset row represents one validated email address.
Output fields
| Field | Type | Description |
|---|---|---|
email | string | Original email address supplied in input. |
normalizedEmail | string or null | Trimmed, lowercased address. Null when syntax is invalid. |
status | string | Verdict bucket: valid, invalid, risky, or unknown. |
score | integer | Deliverability score from 0 to 100. |
primaryReason | string | Most important reason for the verdict. |
reasons | array of string | Reason codes in pipeline order. |
isValidSyntax | boolean | RFC 5322 structure and length check result. |
hasMxRecord | boolean | Indicates whether the domain resolves to MX records. |
smtpCheck | string | accepted, rejected, unknown, or skipped. |
smtpCode | integer or null | Final SMTP response code, when present. |
smtpResponse | string or null | Raw SMTP response line, when present. |
isFreeProvider | boolean | Marks public free email providers. |
isRoleBased | boolean | Marks role addresses such as info@ or sales@. |
isDisposable | boolean | Marks disposable email domains. |
isCatchAll | boolean or null | Indicates catch-all domains when checked. |
suggestedEmail | string or null | Typo suggestion, when available. |
domain | string or null | Lowercased domain part after @. |
localPart | string or null | Lowercased local part before @. |
mxRecords | array | Resolved MX records sorted by priority. |
verificationTier | string | Requested standard or premium tier. |
verificationSource | string | native for standard validation or emaillistverify when a provider verdict was used. |
providerStatus | string or null | Provider response for a premium record; null on standard records. |
providerCheckedAt | string or null | Provider response timestamp for a premium record; null on standard records. |
providerCreditCharged | boolean or null | Whether the provider documents that returned premium status as credit-consuming; null on standard records. |
validatedAt | string | ISO 8601 timestamp. |
Illustrative JSON record
{"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,"smtpCheck": "skipped","smtpCode": null,"smtpResponse": null,"isFreeProvider": false,"isRoleBased": false,"isDisposable": false,"isCatchAll": null,"suggestedEmail": "jane@gmail.com","domain": "gmial.com","localPart": "jane","mxRecords": [],"validatedAt": "2026-05-03T20:00:00.000Z"}
How it works
The Actor follows the validation pipeline defined in the supplied contract:
- It checks RFC 5322 syntax and length.
- It parses the local part and domain.
- It resolves DNS MX records.
- It classifies the address using disposable, role-based, free-provider, and typo-suggestion signals.
- It can optionally run SMTP RCPT TO verification and catch-all detection.
- It writes one dataset record per email with verdict, score, and supporting signals.
The overview dataset view presents each row as one validated address with the key signals surfaced for review.
Interactive API endpoints
This Standby-enabled Actor also exposes an interactive API surface. Use the live Endpoints/Standby tab in the Apify Console for the current request format, response shape, and endpoint details.
Use with AI agents (MCP)
This Actor is an Apify Actor usable through Apify MCP. The exact Actor identity is khadinakbar/zerobounce-alternative.
Tool description: validate one or many email addresses and return one dataset record per input address, including syntax, MX, optional SMTP probe results, disposable and role tags, typo suggestions, catch-all status, and a 0-100 score.
Validate these email addresses with the Apify Actor
khadinakbar/zerobounce-alternative. Return the dataset rows and summarize which addresses are valid, risky, invalid, or unknown. Use the returned score, MX data, disposable flag, role flag, typo suggestion, and premium provider provenance when selected to help me decide what to send next.
Output interpretation:
statusgroups the address intovalid,invalid,risky, orunknownscoreprovides the 0-100 deliverability signal used in the dataset contractprimaryReasonexplains the main verdict driversuggestedEmailcan point to a likely typo correctionsmtpCheckmay beskippedwhen SMTP probing is off, and may beunknownwhen live probing is inconclusive
Provenance and scope:
- each dataset item corresponds to one input email
- the input email is preserved in
email - the normalized form is returned in
normalizedEmail - MX and SMTP fields reflect the validation pipeline exposed by the schema
- if SMTP probing is enabled, the returned record includes the SMTP response fields supported by the dataset contract
Pagination and cost guidance:
- read the default dataset items endpoint returned by the run output
- if you validate a large list, fetch dataset items in batches as needed
- each standard or provider-non-credit result maps to one charged
Email validatedevent - a provider-credit-consuming premium result maps to the separately priced
Premium email verifiedevent once that event is active
Apify API example
JavaScript example with token and dataset readback:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/zerobounce-alternative').call({emails: ['jane@example.com', 'info@acme.io'],checkSmtp: false,checkCatchAll: false,concurrency: 10,timeoutMs: 8000,});const datasetItems = await client.dataset(run.defaultDatasetId).listItems();console.log(datasetItems.items);
Best results and outcome guidance
Use full email addresses as input, not domains or CSV paths. Keep checkSmtp off for routine validation, and turn it on when you need the optional SMTP fields supported by the schema. Review score, status, primaryReason, and suggestedEmail together, since those fields form the clearest decision set in the dataset view. For larger lists, split inputs into runs of up to 1,000 addresses and use concurrency from 5 to 15 unless the receiving mail hosts have been assessed for higher rates. When you want a quick quality pass, the non-SMTP signals cover syntax, MX, disposable, role, free-provider, and typo checks.
Continue the workflow
- Start upstream with Bulk Website Contact Extractor when the workflow needs to collect public contact details before this validation step.
- Then pass accepted records downstream to LinkedIn Profile Email Scraper only when the next approved workflow needs a public-profile email lookup rather than another validation pass.
Design note
I designed the dataset around one decision-ready row per validated address: email, status, score, primaryReason, smtpCheck, and the classification flags are directly visible, while the full result remains available for API and CSV readback.
FAQ
What kind of input fits the workflow here?
A list of complete email addresses in the emails array fits the workflow, including single-address runs wrapped as a one-item array.
How does this Actor fit with lead-generation workflows?
It fits after any workflow that extracts or enriches email addresses, because it returns validation fields that help you route addresses before outreach or CRM import.
What does risky mean in the output?
risky is the verdict bucket for catch-all, role-based, or disposable addresses in the dataset contract.
Can I use this through Apify MCP?
Yes. This Actor is MCP-ready and designed to be called as khadinakbar/zerobounce-alternative.
Where do I check pricing details?
Use the live Pricing tab for current Pay per event pricing and Apify platform usage information.
Do I need my own EmailListVerify API key for premium verification?
No. Premium uses the Actor owner's encrypted provider credential. If the Premium email verified event is not active on the live Pricing tab yet, the Actor returns an availability result instead of making a provider request; normal Actor Start and platform usage can still apply.
Where do I find the instant lookup interface?
Use the live Endpoints/Standby tab for the Standby HTTP API surface and request details.
Responsible use
This Actor performs protocol-level email validation and returns deliverability signals for legitimate list hygiene, signup checks, CRM cleanup, and similar workflows. Use it in ways that respect applicable privacy, anti-spam, and data-protection rules for your use case and jurisdiction.
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 using the native validation workflow. |
email-premium-verified | Premium email verified | Charged for each provider-credit-consuming EmailListVerify verification completed and pushed 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.