# Email Validator - Bulk Checker, MX & Risk Signals (`lentic_clockss/email-risk-validator`) Actor

Bulk email verification for CRM and lead lists. Check syntax, MX, disposable/free/role domains, typo suggestions, and optional SMTP signals. Risk hygiene only — not ownership or inbox-delivery guarantee.

- **URL**: https://apify.com/lentic\_clockss/email-risk-validator.md
- **Developed by:** [kane liu](https://apify.com/lentic_clockss) (community)
- **Categories:** Lead generation, Developer tools, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Email Validator — Bulk Email Checker & Risk Signals

**Validate and clean email lists in bulk — then download results as Excel, CSV, or JSON.**

This Actor is a practical **bulk email verification / email checker** for CRM cleanup, lead-list hygiene, and campaign prep. Paste addresses, run Fast checks by default (syntax, DNS/MX, disposable/free/role signals, typo suggestions), and optionally enable deeper SMTP mailbox probing when you need stronger risk signals.

- Validate email **syntax** (including internationalized addresses)
- Check **DNS / MX** (and related domain status signals)
- Flag **disposable**, **free**, and **role/generic** addresses
- Suggest likely **domain typos** (e.g. `gmial.com` → `gmail.com`)
- Optionally run **SMTP Deep** RCPT probing (no message is sent)
- Detect **catch-all** behavior when Deep probing is enabled
- Export to **Excel / CSV / JSON**, or connect Make, n8n, Zapier, Python, or Apify MCP / API
- **Pay per event** — Actor start + each result; platform usage is included (you do not pay separate Apify usage)

> Important: results are hygiene and risk signals. This Actor does **not** prove mailbox ownership, guaranteed inbox delivery, marketing consent, or that a message will land in the inbox.

---

### What does the Email Validator do?

It turns a list of raw email strings into a clean Apify Dataset of structured validation rows.

You can:

1. Paste emails from CRM exports, lead lists, or forms
2. Keep **enableSMTP** off for Fast hygiene (recommended default)
3. Turn on **enableSMTP** only when you need Deep SMTP / catch-all signals
4. Cap how many addresses to process with `maxResults`
5. Download results or send them into your automation stack

No local setup or third-party email-API key is required to run the Actor on Apify.

---

### What data can you extract?

| Data point | Fast | SMTP Deep |
| --- | :---: | :---: |
| Original input + row index | ✅ | ✅ |
| Syntax / format validity | ✅ | ✅ |
| Domain + local-part parse | ✅ | ✅ |
| DNS / MX / domain status | ✅ | ✅ |
| Disposable / free / role flags | ✅ | ✅ |
| Domain typo suggestion | ✅ | ✅ |
| Risk level + reasons | ✅ | ✅ |
| SMTP RCPT status | — (`not_checked`) | ✅ |
| Catch-all signal | — | ✅ (optional) |
| Ownership / OTP / inbox guarantee | ❌ | ❌ |

Every run also writes a **RUN_SUMMARY** (counts, limits, finish time). Failed input validation writes **ERROR_SUMMARY**.

---

### What you can do with it

#### 1. Clean CRM and customer databases

Flag structurally invalid, disposable, or high-risk domains so you can review or remove bad contacts before syncing to sales tools.

#### 2. Improve lead-list hygiene before outreach

Assess scraped or purchased email lists before campaigns — reduce obvious bounce and spam-trap risk.

#### 3. Prepare email campaigns with clearer risk signals

Identify free vs business addresses, role inboxes (`info@`, `support@`), and catch-all domains before you send.

#### 4. Catch common domain typos

Surface likely misspellings so you can correct high-value contacts instead of silently failing delivery.

#### 5. Power automations and AI agents

Schedule the Actor or call it from Make, n8n, Zapier, Sheets, CRM tools, or Apify MCP / API — then pass Dataset rows downstream.

---

### More Actors like this

Looking for another **lead-hygiene / enrichment** tool, or a specialized scraper outside email validation? Use a dedicated Actor when one exists — structured fields, better coverage, usually lower cost.

#### Similar general tools
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)
- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper)

#### Prefer a specialized site scraper?

**Jobs & Freelance**
- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Upwork Jobs Scraper](https://apify.com/lentic_clockss/upwork-jobs-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)
- [Fiverr Gigs Scraper](https://apify.com/lentic_clockss/fiverr-programming-tech-gigs-scraper)
- [Bayt Jobs Scraper](https://apify.com/lentic_clockss/bayt-scraper)

**E-commerce**
- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [Costco Product Scraper](https://apify.com/lentic_clockss/costco-scraper)
- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)
- [SHEIN Product Scraper](https://apify.com/lentic_clockss/shein-scraper)
- [Temu Product Scraper](https://apify.com/lentic_clockss/temu-scraper)
- [Target Product Scraper](https://apify.com/lentic_clockss/target-scraper)

**Real Estate**
- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)
- [Idealista Scraper](https://apify.com/lentic_clockss/idealista-scraper)
- [realestate.com.au Scraper](https://apify.com/lentic_clockss/realestate-com-au-scraper)

**Travel & Stays**
- [Booking.com & Airbnb Scraper](https://apify.com/lentic_clockss/booking-airbnb-scraper)
- [Agoda Scraper](https://apify.com/lentic_clockss/agoda-scraper)
- [Trip.com Scraper](https://apify.com/lentic_clockss/trip-com-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)

**Social & Content**
- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [YouTube Shorts Scraper](https://apify.com/lentic_clockss/youtube-shorts-scraper)

**Ads Intelligence**
- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [TikTok Ads Scraper](https://apify.com/lentic_clockss/tiktok-ads-top-ads-actor)

**Local & Maps**
- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

→ See the full catalog in [Related Actors](#related-actors) below, or browse [apify.com/lentic_clockss](https://apify.com/lentic_clockss).

---

### How to validate emails (no code required)

1. Click **Try for free** on this Actor page  
2. Paste addresses into **emails**  
3. Leave **enableSMTP** off for Fast mode (recommended)  
4. Optionally turn on **enableSMTP** / **checkCatchAll** for Deep signals  
5. Click **Start** — open the **Dataset** tab when the run finishes  

Start with a small batch (`maxResults: 5–20`) to confirm fields, then scale up.

**Download as Excel, CSV, or JSON.** Or connect the Dataset to your tools via Apify integrations / API.

---

### Example input

#### Fast (default)

```json
{
  "emails": [
    "ceo@apple.com",
    "user@mailinator.com",
    "a@gmial.com"
  ],
  "maxResults": 100,
  "enableSMTP": false,
  "concurrency": 10
}
````

#### Deep SMTP (optional)

```json
{
  "emails": [
    "info@example.com"
  ],
  "maxResults": 5,
  "enableSMTP": true,
  "checkCatchAll": true
}
```

<details>
<summary>Example output fields (JSON)</summary>

```json
{
  "input": "user@mailinator.com",
  "inputIndex": 0,
  "email": "user@mailinator.com",
  "domain": "mailinator.com",
  "localPart": "user",
  "syntaxValid": true,
  "valid": false,
  "domainStatus": "mx",
  "mxRecords": ["mail.mailinator.com"],
  "disposable": true,
  "freeProvider": false,
  "roleAccount": false,
  "suggestion": null,
  "riskLevel": "high",
  "reasons": ["syntax_ok", "disposable_domain"],
  "smtpStatus": "not_checked",
  "catchAll": null,
  "error": null
}
```

</details>

***

### How much does it cost?

This Actor uses **pay-per-event** pricing:

| Event | Price |
| --- | --- |
| Actor Start (`apify-actor-start`) | **$0.005** per start |
| Result (`apify-default-dataset-item`) | **$0.50 / 1,000** emails (**$0.0005** each) |

**Platform usage costs are included** — you do **not** pay separate Apify compute usage on top of the event prices above.

#### Example cost estimates

| Emails processed | Approx. event cost\* |
| --- | --- |
| 100 | ~$0.055 |
| 1,000 | ~$0.505 |
| 10,000 | ~$5.005 |

\*Assumes one Actor start plus `$0.0005` per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one).

Free Apify credit can cover a small test run — try `maxResults: 5` first.

#### Free Apify plan limits (set by this Actor's developer)

| Limit | Free Apify plan | Paid Apify plan |
| --- | --- | --- |
| Runs of this Actor | **10** total | Unlimited |
| Results per run | **1,000** | Up to schema max (100,000) |

These caps are set by the Actor developer, **not Apify**. If the free-run quota is reached, the run finishes successfully with a clear status message (`FREE_TIER_LIMIT`) instead of a cryptic platform error.

***

### Tips for best results

- Use Fast mode for large CRM cleanups (recommended **100–5,000** emails)
- Keep Deep SMTP batches small (**2–50**) — probes are slower and more network-sensitive
- Treat `valid=true` as “passed hygiene checks,” not “will deliver to inbox”
- Review `riskLevel`, `reasons`, `disposable`, and `smtpStatus` together
- Do not use Deep probing for abusive mailbox enumeration

***

### FAQ

#### Does `valid=true` mean the email will deliver?

No. It means the address passed the checks you enabled (syntax / DNS / lists, and optionally SMTP signals). Delivery still depends on the provider, content, reputation, and recipient filters.

#### Does SMTP Deep send an email?

No. Deep mode only probes mailbox acceptance signals (RCPT). No message body is sent.

#### Can SMTP results be timeout or blocked?

Yes. Some networks or providers rate-limit or block SMTP probes. When that happens, Fast fields still return and `smtpStatus` reflects the probe outcome honestly (`timeout`, `blocked`, `temp_error`, etc.).

#### Does this prove mailbox ownership?

No. It does not replace OTP, magic-link, or other ownership verification.

#### Can I use this for marketing consent / anti-spam compliance?

No. Validation is not consent. Keep your own lawful basis, opt-in records, and suppression lists.

#### Do I need an external email API key?

No. You only need Apify to run the Actor.

***

### Integrations

Use the Dataset with:

- Apify API / MCP
- Make, Zapier, n8n
- Google Sheets, Slack, CRM tools
- Any webhook or custom script that reads Apify Dataset items

***

### Related searches

email validation · bulk email verification · email checker · email verifier API · MX record check · disposable email detection · catch-all email · SMTP email verify · CRM email cleanup · lead list hygiene · free vs business email · role account detection

***

### Related Actors

All **77** public Actors from \[[lentic\_clockss](https://apify.com/lentic_clockss)]. Click a name to open the Store detail page.

#### Jobs & Freelance

- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Bayt Jobs Scraper](https://apify.com/lentic_clockss/bayt-scraper)
- [Fiverr Gigs Scraper](https://apify.com/lentic_clockss/fiverr-programming-tech-gigs-scraper)
- [Freelancer.com Scraper](https://apify.com/lentic_clockss/freelancer-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)
- [Himalayas Jobs Scraper](https://apify.com/lentic_clockss/himalayas-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Jobicy Remote Jobs Scraper](https://apify.com/lentic_clockss/jobicy-remote-jobs-scraper)
- [RemoteOK Jobs Scraper](https://apify.com/lentic_clockss/remoteok-all-jobs-scraper)
- [SEEK Jobs Scraper](https://apify.com/lentic_clockss/seek-scraper)
- [Upwork Jobs Scraper](https://apify.com/lentic_clockss/upwork-jobs-scraper)

#### Real Estate

- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [99.co Scraper](https://apify.com/lentic_clockss/ninetynine-co-sg-scraper)
- [Realtor.com Agents Scraper](https://apify.com/lentic_clockss/realtor-com-agents-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Bayut Scraper](https://apify.com/lentic_clockss/bayut-uae-scraper)
- [Craigslist Housing Scraper](https://apify.com/lentic_clockss/craigslist-housing-scraper)
- [Daft.ie Scraper](https://apify.com/lentic_clockss/daft-property-scraper)
- [Dot Property Scraper](https://apify.com/lentic_clockss/dot-property-th-scraper)
- [FINN.no Scraper](https://apify.com/lentic_clockss/finn-scraper)
- [Funda Scraper](https://apify.com/lentic_clockss/funda-scraper)
- [Hepsiemlak Scraper](https://apify.com/lentic_clockss/hepsiemlak-scraper)
- [Idealista Scraper](https://apify.com/lentic_clockss/idealista-scraper)
- [Immobiliare.it Scraper](https://apify.com/lentic_clockss/immobiliare-property-scraper)
- [ImmoScout24 Scraper](https://apify.com/lentic_clockss/immobilienscout24-scraper)
- [Naver Land Scraper](https://apify.com/lentic_clockss/naver-land-scraper)
- [OpenSooq Scraper](https://apify.com/lentic_clockss/opensooq-real-estate-scraper)
- [Otodom Scraper](https://apify.com/lentic_clockss/otodom-scraper)
- [Property Finder Scraper](https://apify.com/lentic_clockss/property-finder-uae-scraper)
- [PropertyGuru Scraper](https://apify.com/lentic_clockss/propertyguru-sg-scraper)
- [realestate.com.au Scraper](https://apify.com/lentic_clockss/realestate-com-au-scraper)
- [Realtor.ca Scraper](https://apify.com/lentic_clockss/realtor-ca-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)
- [SeLoger Scraper](https://apify.com/lentic_clockss/seloger-property-scraper)
- [SUUMO Scraper](https://apify.com/lentic_clockss/suumo-property-scraper)
- [Zillow Group Scraper](https://apify.com/lentic_clockss/zillow-group-scraper)

#### E-commerce

- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [E-commerce Scraper](https://apify.com/lentic_clockss/ecommerce-scraper)
- [1688 Global Product Search Scraper](https://apify.com/lentic_clockss/1688-global-scraper)
- [Allegro Scraper](https://apify.com/lentic_clockss/allegro-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [ASOS Product Scraper](https://apify.com/lentic_clockss/asos-scraper)
- [Cdiscount Product Scraper](https://apify.com/lentic_clockss/cdiscount-scraper)
- [Costco Product Scraper](https://apify.com/lentic_clockss/costco-scraper)
- [Coupang Product Scraper](https://apify.com/lentic_clockss/coupang-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)
- [Lazada Scraper](https://apify.com/lentic_clockss/lazada-ph-search-results-collector)
- [MercadoLibre Scraper](https://apify.com/lentic_clockss/mercadolibre-scraper)
- [Mercari Japan Scraper](https://apify.com/lentic_clockss/mercari-scraper)
- [Rakuten Japan Scraper](https://apify.com/lentic_clockss/rakuten-scraper)
- [SHEIN Product Scraper](https://apify.com/lentic_clockss/shein-scraper)
- [Target Product Scraper](https://apify.com/lentic_clockss/target-scraper)
- [Temu Product Scraper](https://apify.com/lentic_clockss/temu-scraper)
- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)

#### Travel & Stays

- [Booking.com & Airbnb Scraper](https://apify.com/lentic_clockss/booking-airbnb-scraper)
- [Agoda Scraper](https://apify.com/lentic_clockss/agoda-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Booking.com Hotels Scraper](https://apify.com/lentic_clockss/booking-hotels-scraper)
- [Despegar Scraper](https://apify.com/lentic_clockss/despegar-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)
- [Traveloka Scraper](https://apify.com/lentic_clockss/traveloka-scraper)
- [Travelstart Flights Scraper](https://apify.com/lentic_clockss/travelstart-scraper)
- [Trip.com Scraper](https://apify.com/lentic_clockss/trip-com-scraper)
- [TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper)

#### Social & Content

- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [YouTube Shorts Scraper](https://apify.com/lentic_clockss/youtube-shorts-scraper)
- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [Hacker News Scraper](https://apify.com/lentic_clockss/hacker-news-scraper)

#### Ads Intelligence

- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [Google Ads Transparency VN](https://apify.com/lentic_clockss/google-ads-transparency-center-vn)
- [TikTok Ads Scraper](https://apify.com/lentic_clockss/tiktok-ads-top-ads-actor)

#### Local & Maps

- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

#### General Tools

- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper)
- [Email Risk Validator](https://apify.com/lentic_clockss/email-risk-validator)
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)

→ Browse the full profile: [apify.com/lentic\_clockss](https://apify.com/lentic_clockss)

# Actor input Schema

## `emails` (type: `array`):

Email addresses to validate. Schema max 100,000; Fast recommended 100–5,000; Deep SMTP recommended ≤50.

## `maxResults` (type: `integer`):

Maximum output rows. Free-plan users capped at 1,000.

## `enableSMTP` (type: `boolean`):

When true, call the SMTP worker for RCPT probing (no email is sent). Requires WORKER\_AUTH. Results may be accepted/rejected/catch\_all/temp\_error/blocked/timeout.

## `checkCatchAll` (type: `boolean`):

When SMTP Deep is enabled, also RCPT a random local-part to detect catch-all domains.

## `concurrency` (type: `integer`):

Parallel Fast DNS validations (1–20).

## `dedupe` (type: `boolean`):

Skip later case-insensitive duplicates.

## `workerBaseUrl` (type: `string`):

Optional HTTPS override for the SMTP worker (must be allowlisted Cloud Run host).

## Actor input object example

```json
{
  "emails": [
    "ceo@apple.com",
    "user@mailinator.com"
  ],
  "maxResults": 1000,
  "enableSMTP": false,
  "checkCatchAll": true,
  "concurrency": 10,
  "dedupe": false
}
```

# Actor output Schema

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

Dataset of Fast (+ optional SMTP Deep) email assessments.

## `runSummary` (type: `string`):

No description

## `inputEcho` (type: `string`):

No description

## `errorSummary` (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 = {
    "emails": [
        "ceo@apple.com",
        "user@mailinator.com"
    ],
    "maxResults": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("lentic_clockss/email-risk-validator").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 = {
    "emails": [
        "ceo@apple.com",
        "user@mailinator.com",
    ],
    "maxResults": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("lentic_clockss/email-risk-validator").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "emails": [
    "ceo@apple.com",
    "user@mailinator.com"
  ],
  "maxResults": 1000
}' |
apify call lentic_clockss/email-risk-validator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lentic_clockss/email-risk-validator",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Email Validator - Bulk Checker, MX & Risk Signals",
        "description": "Bulk email verification for CRM and lead lists. Check syntax, MX, disposable/free/role domains, typo suggestions, and optional SMTP signals. Risk hygiene only — not ownership or inbox-delivery guarantee.",
        "version": "0.1",
        "x-build-id": "WS2tJCrVx9JM05p2f"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lentic_clockss~email-risk-validator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lentic_clockss-email-risk-validator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/lentic_clockss~email-risk-validator/runs": {
            "post": {
                "operationId": "runs-sync-lentic_clockss-email-risk-validator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/lentic_clockss~email-risk-validator/run-sync": {
            "post": {
                "operationId": "run-sync-lentic_clockss-email-risk-validator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "emails"
                ],
                "properties": {
                    "emails": {
                        "title": "Emails",
                        "minItems": 1,
                        "maxItems": 100000,
                        "type": "array",
                        "description": "Email addresses to validate. Schema max 100,000; Fast recommended 100–5,000; Deep SMTP recommended ≤50.",
                        "items": {
                            "type": "string",
                            "maxLength": 254
                        }
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum output rows. Free-plan users capped at 1,000.",
                        "default": 1000
                    },
                    "enableSMTP": {
                        "title": "Enable SMTP Deep probe",
                        "type": "boolean",
                        "description": "When true, call the SMTP worker for RCPT probing (no email is sent). Requires WORKER_AUTH. Results may be accepted/rejected/catch_all/temp_error/blocked/timeout.",
                        "default": false
                    },
                    "checkCatchAll": {
                        "title": "Check catch-all",
                        "type": "boolean",
                        "description": "When SMTP Deep is enabled, also RCPT a random local-part to detect catch-all domains.",
                        "default": true
                    },
                    "concurrency": {
                        "title": "DNS concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Parallel Fast DNS validations (1–20).",
                        "default": 10
                    },
                    "dedupe": {
                        "title": "Dedupe emails",
                        "type": "boolean",
                        "description": "Skip later case-insensitive duplicates.",
                        "default": false
                    },
                    "workerBaseUrl": {
                        "title": "Worker base URL override",
                        "type": "string",
                        "description": "Optional HTTPS override for the SMTP worker (must be allowlisted Cloud Run host)."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
