Email Validator — Bulk MX, Disposable & Score
Pricing
from $0.90 / 1,000 email validateds
Email Validator — Bulk MX, Disposable & Score
Fast, cheap email list validator. RFC 5322 syntax, DNS MX lookup, disposable detection (3000+ domains), role & free-provider tagging, did-you-mean typo suggestions, 0–100 deliverability score. No external API key. ~$0.90 per 1,000 emails. MCP-ready.
Pricing
from $0.90 / 1,000 email validateds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Email Address Validator — Bulk MX, Disposable, Role, Score
This Apify Actor validates one or many full email addresses and returns one dataset record per address. It accepts an array of email addresses, normalizes each entry to lowercase, and returns syntax, MX, optional SMTP probe results, disposable, role-based, and free-provider flags, typo suggestions, catch-all detection, and a 0-100 deliverability score. The output is useful for list hygiene, lead enrichment, CRM cleanup, and downstream automation, and the Actor is usable through Apify MCP.
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.
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
Focused standalone workflow
This Actor is designed as a focused standalone workflow.
Practical scenario
Maya, a sales ops specialist, has a list with jane@gmial.com, info@acme.io, and alex@company.com. She submits the addresses as an array. The dataset rows return status, score, primaryReason, suggestedEmail, isRoleBased, isFreeProvider, isDisposable, hasMxRecord, and smtpCheck. Maya sees one typo suggestion, one role-based address, and one standard mailbox candidate. She can then correct the typo, route the role address into a shared inbox process, and send the remaining address onward to outreach.
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 | - | List of email addresses to validate. Pass a single address as a one-item array. Example: ["jane@example.com", "info@acme.io"]. |
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,"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. |
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.
Pricing
This Actor uses Pay per event plus Apify platform usage. The primary charged event is Email validated, and the Actor also has an Actor Start event. The live Pricing tab is the source of truth for current event pricing and platform usage details.
For example, validating one hundred emails means one Actor Start event plus one hundred Email validated events, in addition to Apify platform usage.
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/email-address-validator.
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/email-address-validator. Return the dataset rows and summarize which addresses are valid, risky, invalid, or unknown. Use the returned score, MX data, disposable flag, role flag, and typo suggestion 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 fully processed email maps to one charged
Email validatedevent
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/email-address-validator').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 SMTP probe 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, the schema supports concurrency up to 50, with 5-15 as the recommended range in the input contract. When you want a quick quality pass, the non-SMTP signals cover syntax, MX, disposable, role, free-provider, and typo checks.
Design note
I found that the dataset overview is built around one row per validated address, with email, status, score, primaryReason, smtpCheck, and the classification flags shown directly in the table view.
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/email-address-validator.
Where do I check pricing details?
Use the live Pricing tab for current Pay per event pricing and Apify platform usage information.
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.