# Email List Validator & Cleaner - 99% Accuracy, Bulk API (`clearpath/email-validation-api`) Actor

Validate email lists with 99% accuracy: SMTP checks, catch-all detection, disposable filtering. 50K emails per batch. Returns deliverability scores and risk levels. Upload CSV from Apollo.io or any source. REST API ready.

- **URL**: https://apify.com/clearpath/email-validation-api.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Automation, Lead generation
- **Features:** Limited permissions
- **Stats:** 272 total users, 9 monthly users, 97.5% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $6.00 / 1,000 emails

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Bulk Email Validator & Verification API \[50K Emails] 🚀 (2026)

[![50,000 EMAILS. CHECKED FOR RISK. DISPOSABLE ADDRESSES. CATCH-ALLS. FULL INBOXES.](https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/email-validation-api-readme-hero-v1.png)](https://console.apify.com/actors/PfVrah2zLQNPdRmn0/input)

Built by <strong>Clearpath</strong>, creators of <a href="https://apify.com/clearpath/email-finder-api">Email Finder</a>, with <strong>130,000+ lifetime runs</strong>, and <a href="https://apify.com/clearpath/newsletter-list-cleaner">Newsletter List Cleaner</a>. Find, validate and clean your contacts with one specialist suite.

### Why choose this actor?

<strong>Check large lists for more than invalid addresses.</strong> Validate 50,000 emails from a CSV with the bulk settings below. Get a status and score for each address, plus flags for disposable emails, catch-all domains, role accounts, disabled mailboxes and full inboxes.

<strong>Get the results in useful groups.</strong> Export individual email records and a summary with score-based clean, risky and invalid lists. Separate status groups and the <code>safe_to_send</code> field help you choose which contacts to keep or review.

<strong>Start with your existing CRM export.</strong> Upload a CSV or provide its URL. The actor finds the email column, can combine multiple email columns, and removes duplicate addresses across your file and direct input.

<a href="https://console.apify.com/actors/PfVrah2zLQNPdRmn0/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/email-validation-api-readme-cta-v1.svg" width="240" height="48" alt="Validate your email list"/></a>

### Quick start

Upload your own CSV in the input form, or replace the example URL below with your file URL in the JSON input. Start with 10 addresses to inspect the output.

```json
{
  "csvFile": "https://example.com/contacts.csv",
  "maxItems": 10
}
```

<a href="https://console.apify.com/actors/PfVrah2zLQNPdRmn0/input">Open actor input</a> to provide your list. For a 50,000-address run, use CSV input and set <code>"maxItems": 50000</code> in the JSON input. This requires a paid Apify plan and a sufficient run budget; leaving <code>maxItems</code> out defaults to 1,000 addresses.

Free-tier accounts have one trial run of up to 10 addresses. A run budget below $1 also caps processing at 10 addresses. Results describe validation signals, not a guarantee that a message will reach the inbox.

<table><tr><td colspan="5" style="background:#006D77;color:white;padding:10px 14px;font-size:13px;font-weight:700">Clearpath · Email Tools</td></tr><tr><td style="background:#D3EFEC;padding:10px 12px;border:1px solid #C5DFDC;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-PfVrah2zLQNPdRmn0-e4fLvgSjdq-email-validation-api-actor.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/email-validation-api" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Email Validator</a></span><br><span style="color:#454b55;font-size:12px;white-space:nowrap">You are here</span></td><td style="background:#EDF6F5;padding:10px 12px;border:1px solid #C5DFDC;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-eWT8czb4kT3gH1OWt-TbfGFya2hE-dfdsfdsfdsd.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/email-finder-api" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Email Finder</a></span><br><span style="color:#454b55;font-size:12px;white-space:nowrap">Find business emails</span></td><td style="background:#EDF6F5;padding:10px 12px;border:1px solid #C5DFDC;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-zvjcE8i7FsliiJkzh-8LWKMENEEe-newsletter-cleaner-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/newsletter-list-cleaner" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Newsletter Cleaner</a></span><br><span style="color:#454b55;font-size:12px;white-space:nowrap">Score subscribers</span></td><td style="background:#EDF6F5;padding:10px 12px;border:1px solid #C5DFDC;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-4VOKn4ssqn7AQJIUP-tDQgAGNQZE-local-business-leads-scraper.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/local-business-lead-extractor" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Business Leads</a></span><br><span style="color:#454b55;font-size:12px;white-space:nowrap">Find local contacts</span></td><td style="background:#EDF6F5;padding:10px 12px;border:1px solid #C5DFDC;vertical-align:top;width:20%"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-gjpX2GYbCdEgB3lk4-4iZfFsFf5e-email-account-checker-logo.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/email-account-checker" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Account Checker</a></span><br><span style="color:#454b55;font-size:12px;white-space:nowrap">Check registrations</span></td></tr></table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
clearpath/email-validation-api on Apify. Call: ApifyClient("TOKEN").actor("clearpath/email-validation-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: emailAddresses (array of strings), csvFile (string, file upload), csvEmailColumn (string, optional). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~email-validation-api/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: $6-$8 per 1,000 emails depending on plan. Get token: https://console.apify.com/account/integrations
```

### Why Your Domain Reputation Depends on This

Every bounced email is a strike against your domain reputation. Too many strikes? Your legitimate emails start landing in spam folders—or worse, your domain gets blacklisted.

**This Email Validator prevents that disaster before it happens.**

#### The Hidden Cost of Invalid Emails:

- **5% bounce rate** = Mail services flag you as risky
- **10% bounce rate** = Your domain reputation plummets
- **15% bounce rate** = Welcome to the blacklist

### Why Choose This Email Validator?

#### 🛡️ **Protect Your Domain Reputation**

Your domain is your digital identity. High bounce rates destroy it. We validate emails BEFORE you send, keeping your bounce rate under 2%.

#### 📈 **Save Your Email Campaigns**

Invalid emails don't just bounce—they poison your entire campaign. Clean lists mean better deliverability for ALL your emails.

#### 🚫 **Stop Fraud & Fake Signups**

Detect disposable emails, role accounts, and honeypots before they infiltrate your database.

#### 🎯 **Enterprise-Grade Accuracy**

Multiple verification layers ensure confidence in every validation. No guesswork, just data.

#### ⚡ **Bulk Processing Power**

Validate up to 50,000 emails in a single batch. Perfect for large-scale list cleaning.

### Features

- ✅ **15+ Validation Checks**: Comprehensive verification including syntax, SMTP, MX records, and catch-all detection
- ✅ **Smart Email Classification**: Instantly identify free, disposable, and role-based emails
- ✅ **Quality Scoring System**: 0-100 confidence scores help you make informed decisions
- ✅ **Catch-All Detection**: Know when domains accept all emails (high-risk for bounces)
- ✅ **Full MX Records**: Complete mail exchange server information for transparency
- ✅ **Spamtrap Detection**: Avoid emails that damage sender reputation
- ✅ **Risk Assessment**: Clear categorization (safe/risky/invalid/disposable/catch-all)
- ✅ **Bulk Processing**: Handle massive email lists efficiently
- ✅ **No Cookies Required**: Clean, straightforward validation

### Input

Simple and straightforward - just provide your email list:

```json
{
    "emailAddresses": [
        "john.doe@company.com",
        "support@business.org",
        "test@disposable-email.com",
        "admin@catch-all-domain.com"
    ]
}
```

**With optional parameters:**

```json
{
    "emailAddresses": [
        "contact@business.com",
        "fake.email@notreal",
        "temp@10minutemail.com"
    ],
    "maxItems": 5000,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
}
```

### CSV File Support

#### 📝 Combining CSV and Direct Input

**You can provide emails through BOTH methods simultaneously!** When you supply both `emailAddresses` and `csvFile`, the actor automatically merges them:

- **CSV emails are processed first** (given priority)
- **Direct input emails are added next** (from `emailAddresses` parameter)
- **Duplicates are automatically removed** (case-insensitive matching)
- **Perfect for adding specific emails to your CSV list**

Example:

```json
{
    "csvFile": "your-bulk-list.csv",
    "emailAddresses": ["priority@vip.com", "test@specific.com"],
    "maxItems": 10000
}
```

#### 🎯 Automatic Email Column Detection

**The actor automatically detects your email column!** No configuration needed - just upload your CSV and let the intelligent detection system handle the rest. The actor will fail gracefully with a clear error message if no email column can be detected, ensuring you're always aware of any issues.

#### 📤 Upload Your CRM Exports

**Upload your CSVs with leads from Apollo, HubSpot, Salesforce, or any other CRM tool!** This validator is designed to work seamlessly with exports from popular sales and marketing platforms:

- **Apollo.io**: Direct support for contact export format
- **HubSpot**: Works with contact and company exports
- **Salesforce**: Compatible with lead and contact reports
- **LinkedIn Sales Navigator**: Process your saved lead lists
- **Any CSV format**: Supports comma, semicolon, tab, and pipe delimiters

#### How to Use CSV Files

1. **Upload directly**: Use the file upload button in Apify Console
2. **Provide a URL**: Link to your CSV file hosted anywhere
3. **Auto-detection**: The actor scans your file and identifies email columns by:
   - Common header names (email, contact_email, primary_email, etc.)
   - Content analysis (looking for @ symbols and email patterns)
   - Smart pattern matching across multiple languages
4. **Validation**: All detected emails are validated comprehensively
5. **Results**: Get detailed validation results for each email address

#### CSV Input Example

```json
{
    "csvFile": "Upload your CSV file or provide URL",
    "maxItems": 10000
}
```

**With advanced options:**

```json
{
    "csvFile": "https://your-domain.com/emails.csv",
    "csvEmailColumn": "primary_email",  // Optional: specify column
    "csvMergeMultipleColumns": true,     // Optional: merge all email columns
    "maxItems": 50000
}
```

#### Supported CSV Formats

- **File Types**: `.csv` files with various encodings (UTF-8, ASCII, Latin-1)
- **Delimiters**: Automatically detects comma (`,`), semicolon (`;`), tab (`\t`), or pipe (`|`)
- **Headers**: Works with or without headers - the actor adapts automatically
- **Quoted Fields**: Handles complex CSVs with quoted fields containing delimiters

### Output Examples

#### Individual Email Results

Each email gets detailed validation data:

```json
// ✅ Valid email
{
    "email": "john.doe@company.com",
    "status": "safe",
    "score": 98,
    "username": "john.doe",
    "domain": "company.com",
    "mx_records": ["mail.company.com", "backup-mx.company.com"],
    "smtp_connection_success": true,
    "mx_accepts_mail": true,
    "valid_syntax": true,
    "deliverable": true,
    "safe_to_send": true,
    "catch_all": false,
    "disposable": false,
    "role_account": false,
    "free_email": false,
    "spamtrap": false,
    "disabled": false,
    "inbox_full": false
}

// ❌ Invalid email
{
    "email": "fake.email@notreal",
    "status": "invalid",
    "score": 0,
    "username": "fake.email",
    "domain": "notreal",
    "mx_records": [],
    "smtp_connection_success": false,
    "mx_accepts_mail": false,
    "valid_syntax": true,
    "deliverable": false,
    "safe_to_send": false,
    ...
}

// ❓ Unknown status
{
    "email": "john@enterprise-corp.com",
    "status": "unknown",
    "score": 50,
    "username": "john",
    "domain": "enterprise-corp.com",
    "mx_records": ["mail.enterprise-corp.com"],
    "smtp_connection_success": false,
    "mx_accepts_mail": true,
    "valid_syntax": true,
    "deliverable": null,
    "safe_to_send": null,
    "reason": "Server timeout or anti-validation measures",
    ...
}

// 🗑️ Disposable email
{
    "email": "temp@10minutemail.com",
    "status": "disposable",
    "score": 25,
    "username": "temp",
    "domain": "10minutemail.com",
    "mx_records": ["mx.10minutemail.com"],
    "smtp_connection_success": true,
    "mx_accepts_mail": true,
    "valid_syntax": true,
    "deliverable": true,
    "safe_to_send": false,
    "catch_all": false,
    "disposable": true,
    ...
}

// 🎣 Catch-all domain
{
    "email": "anything@catch-all-domain.com",
    "status": "catch_all",
    "score": 71,
    "username": "anything",
    "domain": "catch-all-domain.com",
    "mx_records": ["mail.catch-all-domain.com"],
    "smtp_connection_success": true,
    "mx_accepts_mail": true,
    "valid_syntax": true,
    "deliverable": true,
    "safe_to_send": false,
    "catch_all": true,
    ...
}
```

#### 📊 Summary Report (Final Dataset Entry)

After all emails are processed, you'll get a summary report with cleaned lists:

```json
{
    "type": "summary_report",
    "timestamp": "2025-08-21T10:00:00Z",
    "total_processed": 100,
    "clean_emails": [
        "john.doe@company.com",
        "alice@business.org",
        "contact@enterprise.com"
    ],
    "risky_emails": [
        "info@catch-all-domain.com",
        "support@sample-company.net"
    ],
    "invalid_emails": [
        "fake@notreal",
        "broken@",
        "test@disposable.com"
    ],
    "statistics": {
        "deliverable": 75,
        "undeliverable": 20,
        "catch_all": 5,
        "disposable": 8,
        "average_score": 82.5
    },
    "emails_by_status": {
        "safe": ["john.doe@company.com", "alice@business.org"],
        "risky": ["info@domain.com"],
        "invalid": ["fake@notreal"],
        "catch_all": ["admin@catch-all.com"],
        "disposable": ["temp@10minute.com"]
    }
}
```

### Pricing

Simple, transparent pricing based on volume:

| Volume | Price per 1000 emails |
|--------|----------------------|
| **Standard** | $8.00 |
| **Bronze Discount** | $7.50 |
| **Silver Discount** | $7.00 |
| **Gold Discount** | $6.00 |

Contact us for custom enterprise pricing on volumes above 1M emails.

### Understanding Your Results

#### Status Indicators

| Status | Symbol | Meaning | Action |
|--------|--------|---------|---------|
| **safe** | ✅ | Email is valid and safe to send | Send with confidence |
| **risky** | ⚠️ | Email might have deliverability issues | Consider removing |
| **invalid** | ❌ | Email will bounce | Remove immediately |
| **unknown** | ❓ | Validation couldn't be completed | See section below |
| **disposable** | 🗑️ | Temporary email address | Remove for quality |
| **catch_all** | 🎣 | Domain accepts all emails | Use with caution |

#### Understanding "Unknown" Status

**What does "unknown" mean?**
The validation service couldn't definitively verify this email address. This doesn't mean the email is invalid - it means verification couldn't be completed due to the recipient server's security measures.

**Common reasons for "unknown" status:**

- **Corporate firewalls** - Enterprise domains might block validation attempts
- **Greylisting** - Servers temporarily reject checks to prevent spam
- **Anti-validation measures** - Some mail systems intentionally hide mailbox existence
- **Strict security policies** - Government, financial, and healthcare domains might often return unknown

**How to handle unknown emails:**
These emails often belong to legitimate business contacts, especially from large corporations. Consider your use case:

- **B2B outreach**: Often worth keeping (many corporate emails return unknown)
- **Consumer marketing**: Higher risk, consider your tolerance
- **Critical communications**: Test with a small batch first

#### Quality Score Interpretation

- **90-100**: Excellent quality, definitely send
- **70-89**: Good quality, safe to send
- **50-69**: Moderate risk, review before sending
- **30-49**: High risk, likely to bounce
- **0-29**: Do not send, will damage reputation

#### Validation Checks Explained

| Check | What It Means | Why It Matters |
|-------|---------------|----------------|
| **valid_syntax** | Email format is correct | Malformed emails always bounce |
| **mx_accepts_mail** | Domain can receive emails | No MX records = guaranteed bounce |
| **smtp_connection_success** | Mail server responds | Confirms server is active |
| **deliverable** | Email can be delivered | Combined validation result |
| **safe_to_send** | Low risk of bounce/spam | Protects your reputation |
| **catch_all** | Domain accepts any address | Higher bounce risk |
| **disposable** | Temporary email service | Often used for fraud/spam |
| **role_account** | Generic address (info@, admin@) | Lower engagement rates |
| **free_email** | Gmail, Yahoo, etc. | May indicate personal vs business |
| **spamtrap** | Honeypot address | Sending here = instant blacklist |
| **inbox_full** | Mailbox at capacity | Temporary delivery failure |

### Use Cases by Industry

#### 📧 **Email Marketing Teams**

Clean your lists before every campaign. A 2% reduction in bounce rate can improve overall deliverability by 15%.

#### 🚀 **SaaS Companies**

Validate emails at signup to prevent fake accounts and improve user quality metrics.

#### 🛒 **E-commerce Platforms**

Stop fraudulent orders by detecting disposable emails used for one-time purchases.

#### 📊 **CRM Managers**

Maintain database hygiene by regularly validating and removing invalid contacts.

#### 🎯 **Lead Generation Agencies**

Qualify leads instantly by validating emails in real-time during collection.

#### 🏢 **Enterprise Sales Teams**

Verify prospect emails before outreach to maximize connection rates.

### Performance & Limits

- **Batch Size**: Up to 2,500 emails per run
- **Accuracy Rate**: 99%+ for syntax, 95%+ for deliverability
- **Response Time**: Results typically available within a few minutes for 1000 emails

### Security & Compliance

- ✅ GDPR Compliant
- ✅ No data retention after processing
- ✅ Encrypted data transmission
- ✅ No cookies or tracking

### Pro Tips for Best Results

1. **Clean regularly**: Validate your entire list quarterly to maintain hygiene
2. **Pre-campaign validation**: Always validate before major email campaigns
3. **Real-time validation**: Integrate validation at the point of email collection
4. **Score thresholds**: Set minimum score requirements (we recommend 70+)
5. **Segment by status**: Create separate lists for safe, risky, and invalid emails

### When to Use This Validator

#### Before You Send

- Email marketing campaigns
- Cold outreach sequences
- Newsletter distributions
- Transactional email batches

#### During Collection

- User registration forms
- Lead capture pages
- Webinar signups
- Newsletter subscriptions

#### For Maintenance

- Quarterly list cleaning
- Database migration
- CRM deduplication
- Post-campaign hygiene

### Programmatic Access - Get Your Clean Email List

#### Accessing the Summary Report

The validator creates a special `summary_report` entry at the end of the dataset containing your cleaned email lists. Here's how to access it programmatically:

##### JavaScript/Node.js

```javascript
const { ApifyClient } = require('apify-client');

// Initialize the client
const client = new ApifyClient({
    token: 'YOUR_APIFY_TOKEN',
});

// Get the dataset
const dataset = await client.dataset('DATASET_ID').listItems();

// Find the summary report
const summary = dataset.items.find(item => item.type === 'summary_report');

// Extract clean emails (score >= 70)
const cleanEmails = summary.clean_emails;
console.log('Clean emails ready to use:', cleanEmails);

// Or get emails by specific status
const safeEmails = summary.emails_by_status.safe;
const riskyEmails = summary.emails_by_status.risky;
```

##### Python

```python
from apify_client import ApifyClient

## Initialize the client
client = ApifyClient('YOUR_APIFY_TOKEN')

## Get the dataset
dataset = client.dataset('DATASET_ID').list_items()

## Find the summary report
summary = next(item for item in dataset['items'] if item.get('type') == 'summary_report')

## Extract clean emails (score >= 70)
clean_emails = summary['clean_emails']
print(f'Clean emails ready to use: {clean_emails}')

## Or get emails by specific status
safe_emails = summary['emails_by_status']['safe']
risky_emails = summary['emails_by_status']['risky']
```

##### Direct API Access

```bash
## Get all dataset items
curl "https://api.apify.com/v2/datasets/DATASET_ID/items" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN"

## The summary report will be the last item with type: "summary_report"
```

#### Using the Clean List

Once you have the clean emails, you can:

- **Import directly** into your email marketing platform
- **Filter further** by specific criteria (e.g., only non-catch-all)
- **Export to CSV** for manual review
- **Integrate** into your CRM or automation workflows

#### Quick Copy-Paste

The `clean_emails` array is ready to copy and paste into any email platform that accepts comma-separated or line-separated email lists.

### ROI Calculator

**For every 1000 emails validated:**

- Prevent ~50-200 bounces (5-20% typical invalid rate)
- Save domain reputation from damage
- Improve deliverability for ALL future emails
- Avoid blacklist recovery costs ($1000s in lost revenue)

### Get Started

1. Add your email list to the input
2. Configure your validation preferences
3. Run the validator
4. Download your clean, validated list
5. Send with confidence!

### Related Actors

**More from Clearpath (Phone intelligence):**

- **[WhatsApp Phone Number Validator](https://apify.com/clearpath/whatsapp-phone-number-validator-api)** - Bulk validate phone numbers for WhatsApp accounts.
- **[Telegram Phone Number Validator](https://apify.com/clearpath/telegram-phone-number-validator)** - Bulk validate phone numbers for Telegram accounts.
- **[WhatsApp Profile Avatar, Age & Gender](https://apify.com/clearpath/whatsapp-profile-avatar-age-gender-api)** - Enrich WhatsApp numbers with avatar, inferred age, and gender.
- **[Phone Number Active Status Checker](https://apify.com/clearpath/phone-number-active-checker)** - Bulk carrier-level active, inactive, or unknown status checks.
- **[MAX Messenger Number Checker](https://apify.com/clearpath/max-messenger-number-checker)** - Bulk MAX messenger registration checks.
- **[Social & Crypto Phone Number Checker](https://apify.com/clearpath/social-crypto-phone-number-checker)** - Bulk account checks across 25 platforms (Instagram, Facebook, Binance, and more).

***

### Support

- 📧 **Email**: max@mapa.slmail.me
- 🐛 **Issues**: Use the Issues tab for bug reports and feature requests
- 💬 **Response time**: Usually within 24 hours
- 🔧 **Custom features**: Available upon request

**Stop guessing. Start knowing.** Your domain reputation is too valuable to risk on unvalidated emails.

[🚀 **Start Validating Your Email List**](https://console.apify.com/actors/PfVrah2zLQNPdRmn0)

# Actor input Schema

## `emailAddresses` (type: `array`):

List of email addresses to validate. If CSV file is provided, emails from CSV will be added to this list.

## `csvFile` (type: `string`):

Upload a CSV file or provide a URL to a CSV file containing email addresses. The actor will automatically detect the email column. Supported formats: .csv with comma, semicolon, tab, or pipe delimiters. Accepts both direct file uploads and URLs.

## `csvEmailColumn` (type: `string`):

Specify the column name or index (0-based) containing email addresses. Leave empty for automatic detection.

## `csvMergeMultipleColumns` (type: `boolean`):

If multiple email columns are detected, merge them all (e.g., primary_email, secondary_email)

## Actor input object example

```json
{
  "emailAddresses": [
    "jon@doe.com",
    "elon.musk@tesla.com"
  ],
  "csvEmailColumn": "email",
  "csvMergeMultipleColumns": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "emailAddresses": [
        "jon@doe.com",
        "elon.musk@tesla.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/email-validation-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "emailAddresses": [
        "jon@doe.com",
        "elon.musk@tesla.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("clearpath/email-validation-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "emailAddresses": [
    "jon@doe.com",
    "elon.musk@tesla.com"
  ]
}' |
apify call clearpath/email-validation-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/email-validation-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PfVrah2zLQNPdRmn0/builds/EHwbVf4chU7VeRQgK/openapi.json
