Email Verifier | $0.9 / 1k | Enterprise Grade avatar

Email Verifier | $0.9 / 1k | Enterprise Grade

Pricing

from $0.89 / 1,000 results

Go to Apify Store
Email Verifier | $0.9 / 1k | Enterprise Grade

Email Verifier | $0.9 / 1k | Enterprise Grade

Advanced email verification with live handshakes and catch-all detection by using validatedmails.com API. Validates SMTP, DNS/MX, and deliverability; returns rich detailed reasoning. Use to clean lists, cut bounces, protect sender reputation.

Pricing

from $0.89 / 1,000 results

Rating

5.0

(2)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

12

Bookmarked

192

Total users

24

Monthly active users

17 days

Issues response

4 days ago

Last modified

Share

Email Verifier Pro

Slug: fatihtahta/email-verifier-validator-pro

Overview

Email Verifier Pro validates email addresses and returns structured records with normalized email values, domain details, deliverability verdicts, confidence indicators, and validation checks. Each run produces consistent JSON output for every submitted address, making the results straightforward to use in reporting, segmentation, and operational workflows. The actor is built around ValidatedMails.com, a dedicated email validation service, which makes the output especially useful for improving contact quality before outreach or onboarding. It automates repetitive verification tasks at scale so teams can avoid manual checks and keep decision rules consistent. In practice, this saves time for both one-time cleanups and recurring data quality operations.

Why Use This Actor

  • Market research and analytics teams: Measure email list quality over time, track deliverability trends by domain, and monitor risk patterns such as disposable or role-based addresses.
  • Product and content teams: Improve signup and lead form quality by identifying invalid or risky addresses early and reducing downstream friction in lifecycle campaigns.
  • Developers and data engineering teams: Feed standardized validation records into ETL jobs, data warehouses, and internal services without custom parsing for each run.
  • Lead generation and enrichment teams: Pre-qualify prospect lists before outreach, prioritize high-confidence records, and reduce bounce-related waste.
  • CRM and revenue operations teams: Maintain cleaner customer data, support healthier sender reputation, and improve segmentation accuracy for engagement workflows.

Input Parameters

Provide any combination of URLs, queries, and filters…

ParameterTypeDescriptionDefault
emailListstring[]List of email addresses to validate (for example: tester@company.com). Add one or many addresses; each entry is validated and returned as a separate result record. Allowed values: any syntactically valid email string format.

Example Input

{
"emailList": [
"amigos@apify.com",
"support@databricks.com",
"hello@validatedmails.com",
"sales@example.org",
"notamail@email.com"
]
}

Output

6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

6.2 Record envelope (all items)

Every dataset item includes these stable identifiers:

  • type (string, required)
  • id (number, required)
  • url (string, required)

Recommended idempotency key: type + ":" + id. Use this key for deduplication and upserts so repeated runs update existing entities instead of creating duplicates.

6.3 Examples

Example: email verification | Valid (type = "email_verification")

{
"type": "email_verification",
"id": 100001,
"url": "https://validatedmails.com",
"email": "user.one@example-company.com",
"normalizedEmail": "user.one@example-company.com",
"domain": "example-company.com",
"request": {
"succeeded": true,
"httpStatusCode": 200,
"errorMessage": null,
"durationMs": 2131
},
"verdict": {
"isValid": true,
"status": "valid",
"state": "Deliverable",
"confidenceScore": 100,
"primaryReason": "ACCEPTED EMAIL",
"reasons": [
"syntax_ok",
"mx_ok",
"a_ok"
]
},
"classification": {
"isFreeProvider": false,
"isRoleBased": false,
"isDisposable": false,
"hasTag": false
},
"checks": {
"smtpReachable": true,
"syntaxValid": true,
"mxRecordsValid": true,
"aRecordValid": true,
"catchAllDomain": null,
"mxHosts": [
"example-company-com.mail.protection.outlook.com"
],
"apiResponseTimeMs": 2002
},
"traceId": "11111111-2222-4333-8444-555555555555"
}

Example: email verification | Invalid (type = "email_verification")

{
"type": "email_verification",
"id": 100002,
"url": "https://validatedmails.com",
"email": "user.two@example-agency.com",
"normalizedEmail": "user.two@example-agency.com",
"domain": "example-agency.com",
"request": {
"succeeded": true,
"httpStatusCode": 200,
"errorMessage": null,
"durationMs": 936
},
"verdict": {
"isValid": false,
"status": "invalid",
"state": "Not Deliverable",
"confidenceScore": 60,
"primaryReason": "INVALID MAIL",
"reasons": [
"syntax_ok",
"mx_ok",
"a_ok"
]
},
"classification": {
"isFreeProvider": false,
"isRoleBased": false,
"isDisposable": false,
"hasTag": false
},
"checks": {
"smtpReachable": false,
"syntaxValid": true,
"mxRecordsValid": true,
"aRecordValid": true,
"catchAllDomain": null,
"mxHosts": [
"aspmx.l.google.com",
"alt1.aspmx.l.google.com",
"alt2.aspmx.l.google.com"
],
"apiResponseTimeMs": 712
},
"traceId": "66666666-7777-4888-9999-aaaaaaaaaaaa"
}

Example: email verification | Valid but catch-all domain (type = "email_verification")

{
"type": "email_verification",
"id": 100003,
"url": "https://validatedmails.com",
"email": "user.three@example-technology.com",
"normalizedEmail": "user.three@example-technology.com",
"domain": "example-technology.com",
"request": {
"succeeded": true,
"httpStatusCode": 200,
"errorMessage": null,
"durationMs": 5481
},
"verdict": {
"isValid": true,
"status": "valid",
"state": "Deliverable",
"confidenceScore": 70,
"primaryReason": "ACCEPTED EMAIL",
"reasons": [
"syntax_ok",
"mx_ok",
"a_ok"
]
},
"classification": {
"isFreeProvider": false,
"isRoleBased": false,
"isDisposable": false,
"hasTag": false
},
"checks": {
"smtpReachable": true,
"syntaxValid": true,
"mxRecordsValid": true,
"aRecordValid": true,
"catchAllDomain": true,
"mxHosts": [
"example-technology.in.tmes.trendmicro.com"
],
"apiResponseTimeMs": 5303
},
"traceId": "bbbbbbbb-cccc-4ddd-8eee-ffffffffffff"
}

Field reference

Email verification fields (type = "email_verification")

  • type (string, required): Record type label.
  • id (number, required): Stable numeric record identifier.
  • url (string, required): Source website homepage URL.
  • email (string, required): Email exactly as provided in input.
  • normalizedEmail (string, optional): Normalized email representation.
  • domain (string, optional): Domain parsed from the email address.
  • request.succeeded (boolean, required): Indicates whether validation request completed.
  • request.httpStatusCode (number, required): HTTP status code for the validation request.
  • request.errorMessage (string, optional): Error details when available.
  • request.durationMs (number, required): End-to-end request duration in milliseconds.
  • verdict.isValid (boolean, required): Pass/fail validity signal.
  • verdict.status (string, required): Verdict status (valid, invalid, or unknown).
  • verdict.state (string, required): Human-readable deliverability state.
  • verdict.confidenceScore (number, required): Confidence score from 0 to 100.
  • verdict.primaryReason (string, required): Primary reason text for the verdict.
  • verdict.reasons (string[], optional): Machine-friendly reason codes.
  • classification.isFreeProvider (boolean, required): Whether provider is a free email service.
  • classification.isRoleBased (boolean, required): Whether local part appears role-based.
  • classification.isDisposable (boolean, required): Whether domain appears disposable.
  • classification.hasTag (boolean, required): Whether plus-tagging is detected.
  • checks.smtpReachable (boolean, optional): SMTP-level reachability signal.
  • checks.syntaxValid (boolean, required): Syntax validation result.
  • checks.mxRecordsValid (boolean, required): MX routing validation result.
  • checks.aRecordValid (boolean, required): A-record fallback routing result.
  • checks.catchAllDomain (boolean, optional): Catch-all detection signal.
  • checks.mxHosts (string[], optional): Resolved MX host list.
  • checks.apiResponseTimeMs (number, required): Validation API response time in milliseconds.
  • traceId (string, required): Trace identifier for diagnostics and support.

Data guarantees & handling

  • Best-effort extraction: fields may vary by region/session/availability/UI experiments.
  • Optional fields: null-check in downstream code.
  • Deduplication: recommend type + ":" + id.

How to Run on Apify

  1. Open the actor in Apify Console.
  2. Configure your search parameters (for this actor, provide the email addresses you want to validate).
  3. Set the maximum number of outputs to collect.
  4. Click Start and wait for the run to finish.
  5. Download results in JSON, CSV, Excel, or other supported formats.

Scheduling & Automation

Scheduling

Automated Data Collection You can schedule recurring runs to keep your validation dataset current without manual execution. This is useful for routine CRM hygiene, lead intake checks, and periodic list refreshes.

  • Navigate to Schedules in Apify Console
  • Create a new schedule (daily, weekly, or custom cron)
  • Configure input parameters
  • Enable notifications for run completion
  • (Optional) Add webhooks for automated processing

Integration Options

This actor is designed to plug directly into automated validation workflows and downstream systems.

  • Webhooks: Automatically trigger downstream processing (e.g., CRM updates, tagging, cleanup jobs) when a run completes. Ideal for fully hands-off validation pipelines.
  • Zapier: Connect validation results to 5,000+ apps without writing code. Common flows include updating HubSpot, Airtable, Notion, or triggering Slack alerts for risky emails.
  • Make (Integromat): Build multi-step logic such as validating emails → filtering by status → enriching → storing only "deliverable" results.
  • Google Sheets: Push validated results into a spreadsheet for internal review, segmentation, or campaign preparation.
  • Slack / Discord: Send automated summaries of run results (e.g., total validated, invalid count, catch-all domains detected).
  • Email Reports: Automatically send structured validation reports to stakeholders after scheduled runs.

All integrations work via Apify run outputs, webhooks, or API access — enabling both no-code and developer-based automation setups.

Performance

Estimated run times:

  • Small runs (< 1,000 outputs): ~2–3 minutes
  • Medium runs (1,000–5,000 outputs): ~5–15 minutes
  • Large runs (5,000+ outputs): ~15–30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

Compliance & Ethics

Responsible Usage

This actor processes email addresses provided directly by the user for validation purposes only.
It does not crawl, scrape, or harvest data from third-party platforms.

Legitimate use cases include:

  • CRM hygiene and database cleanup
  • Lead intake validation in signup or onboarding flows
  • Fraud prevention and abuse mitigation
  • Pre-campaign list verification
  • Internal data quality and deliverability audits

Users are responsible for ensuring their collection and use of data complies with applicable laws, regulations, and platform terms. This section is informational and not legal advice.

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site’s terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)

Support

For help, use the Issues tab on the actor page in Apify Console. Include the input you used (redacted), the run ID, a clear expected vs. actual behavior summary, and an optional small output sample so troubleshooting can start quickly.