# Bulk Email Verifier (`codescraper/bulk-email-verifier`) Actor

Instantly verify the deliverability status and quality score of each email in your list. This tool also identifies disposable domains, role-based emails, and checks MX records to ensure list hygiene. Give detailed results in json and other formats. Remember to exports All Fields not just Overview.

- **URL**: https://apify.com/codescraper/bulk-email-verifier.md
- **Developed by:** [CodeScraper](https://apify.com/codescraper) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 24 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$6.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## 🔗 Bulk Email Verifier – Validate and Analyze Emails

This **Apify actor** verifies email addresses and returns detailed insights about deliverability, quality, sender info, domain info, risk, and breaches Using Abstract Api Email Reputation Api keys.
It supports single emails or lists of emails, validates MX/SMTP records, and provides a quality score for each address.

---

### 🚀 What It Does

The actor processes each email address and returns a comprehensive profile including:

- 📧 **Email Info:** Address, Deliverability Status, Score, and Role/Disposable flags
- 🛡️ **Validation:** Format, SMTP, and MX record checks
- 🏢 **Sender Info:** Provider, Organization, First/Last Name (if available)
- 🌐 **Domain Info:** Domain age, registrar, registration/expiry dates, TLD risk
- ⚠️ **Risk Assessment:** Address & domain risk status
- 🔓 **Breaches:** Total breaches, dates, and breached domains

### ⚡ It handles

- ✅ Bulk email lists or single addresses
- 🔄 Automatic MX & SMTP verification
- 🛡️ Risk & breach checks for informed decision making

---

### 🔑 Using Your Own Abstract API Key (Optional)

providing your own API key allows higher request limits:

- Go to Abstract API Email Reputation: https://app.abstractapi.com/api/email-reputation/tester

- Sign up for a free account or log in if you already have one.

- Your key will be auto generated check section email-reputation. make sure you are at this link
  https://app.abstractapi.com/api/email-reputation/tester

- Copy the key named as Primary Key.

- Free tier allows 100 email validations per month.

- You can upgrade to paid plans for additional requests.

- Add the key to the Your API Key field when running the actor.

⚠️ If no key is provided, the actor will automatically use its own keys. Remember if actor ran out of
api key credits you need to enter your own api key

### ⚙️ Input Configuration

| Field    | Type  | Description                               | Default Example                          |
| -------- | ----- | ----------------------------------------- | ---------------------------------------- |
| `emails` | Array | Enter a list of email addresses to verify | `["test@gmail.com", "info@company.com"]` |

---

### 🧩 Example Input

```json
{
  "emails": ["compiledcurious@gmail.com", "example@mycompany.com"]
  "Your API Key(Optional)": "YOUR_ABSTRACT_API_KEY_HERE"
}
````

***

### 📊 Example Output

```json
[
  {
    "email_address": "compiledcurious@gmail.com",
    "success": true,
    "summary": {
      "status": "deliverable",
      "score": "0.95",
      "is_disposable": false,
      "is_role": false,
      "mx_records": [
        "gmail-smtp-in.l.google.com",
        "alt1.gmail-smtp-in.l.google.com",
        "alt2.gmail-smtp-in.l.google.com",
        "alt3.gmail-smtp-in.l.google.com",
        "alt4.gmail-smtp-in.l.google.com"
      ],
      "domain": "gmail.com"
    },
    "raw": {
      "email_deliverability": {
        "status": "deliverable",
        "status_detail": "valid_email",
        "is_format_valid": true,
        "is_smtp_valid": true,
        "is_mx_valid": true,
        "mx_records": [
          "gmail-smtp-in.l.google.com",
          "alt1.gmail-smtp-in.l.google.com",
          "alt2.gmail-smtp-in.l.google.com",
          "alt3.gmail-smtp-in.l.google.com",
          "alt4.gmail-smtp-in.l.google.com"
        ]
      },
      "email_quality": {
        "score": "0.95",
        "is_free_email": true,
        "is_username_suspicious": false,
        "is_disposable": false,
        "is_catchall": false,
        "is_subaddress": false,
        "is_role": false,
        "is_dmarc_enforced": true,
        "is_spf_strict": false,
        "minimum_age": null
      },
      "email_sender": {
        "first_name": null,
        "last_name": null,
        "email_provider_name": "Google",
        "organization_name": "Gmail",
        "organization_type": "commercial"
      },
      "email_domain": {
        "domain": "gmail.com",
        "domain_age": 11044,
        "is_live_site": true,
        "registrar": "MarkMonitor Inc.",
        "registrar_url": "https://markmonitor.com",
        "date_registered": "1995-08-13",
        "date_last_renewed": "2024-07-11",
        "date_expires": "2025-08-12",
        "is_risky_tld": false
      },
      "email_risk": {
        "address_risk_status": "low",
        "domain_risk_status": "low"
      },
      "email_breaches": {
        "total_breaches": 0,
        "date_first_breached": null,
        "date_last_breached": null,
        "breached_domains": []
      }
    }
  }
]
```

***

### 🧠 Features

- 📧 Verify **single or multiple emails**
- 🛡️ Checks **deliverability** (format, SMTP, MX)
- 🔍 Provides **quality analysis** (free, disposable, catch-all, role)
- 🏢 Extracts **sender info** (provider, organization, first/last name)
- 🌐 Retrieves **domain details** (age, registrar, registration & expiry, TLD risk)
- ⚠️ Risk & breach assessment for informed decisions
- 📊 Returns **MX records** and **summary score**

***

### 💡 Use Cases

- **Sales & Outreach:** Verify prospect email lists
- **Marketing:** Ensure deliverable emails for campaigns
- **Security:** Identify risky, disposable, or role-based addresses
- **Data Enrichment:** Add email quality & domain info to datasets

***

### 🧑‍💻 Developer Info

**Author:** [codescraper](mailto:codescraper011@gmail.com)

***

### 🏷️ Tags

`bulk-email-verifier` . `email-verification` · `email-validation` . `email-scraper` · `data-validation` · `email-quality` · `risk-assessment` · `apify` · `automation`

# Actor input Schema

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

A list of email addresses you want to validate. Paste one email per line.

## `userApiKey` (type: `string`):

Check Information section of this actor to know how to get your API key. If you provide your own Abstract API key, it will be used first before falling back to the Actor's keys. Remember if the actor ran out of API keys credits, it will fail unless you provide your own key here.and you can get muliple free API keys by signing up for multiple free accounts.Each free account provides 100 free API credits per month. you can also upgrade to a paid plan to get more API credits. keep an eye on the log of each run to see how many API keys limits reached and how many API keys were used during the run.

## Actor input object example

```json
{
  "emails": [
    "codescraper011@gmail.com"
  ]
}
```

# 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": [
        "codescraper011@gmail.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codescraper/bulk-email-verifier").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": ["codescraper011@gmail.com"] }

# Run the Actor and wait for it to finish
run = client.actor("codescraper/bulk-email-verifier").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": [
    "codescraper011@gmail.com"
  ]
}' |
apify call codescraper/bulk-email-verifier --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bulk Email Verifier",
        "description": "Instantly verify the deliverability status and quality score of each email in your list. This tool also identifies disposable domains, role-based emails, and checks MX records to ensure list hygiene. Give detailed results in json and other formats. Remember to exports All Fields not just Overview.",
        "version": "1.0",
        "x-build-id": "T5m5otKKqtllOWjHQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/codescraper~bulk-email-verifier/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-codescraper-bulk-email-verifier",
                "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/codescraper~bulk-email-verifier/runs": {
            "post": {
                "operationId": "runs-sync-codescraper-bulk-email-verifier",
                "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/codescraper~bulk-email-verifier/run-sync": {
            "post": {
                "operationId": "run-sync-codescraper-bulk-email-verifier",
                "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 to Validate",
                        "type": "array",
                        "description": "A list of email addresses you want to validate. Paste one email per line.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "userApiKey": {
                        "title": "Your API Key",
                        "type": "string",
                        "description": "Check Information section of this actor to know how to get your API key. If you provide your own Abstract API key, it will be used first before falling back to the Actor's keys. Remember if the actor ran out of API keys credits, it will fail unless you provide your own key here.and you can get muliple free API keys by signing up for multiple free accounts.Each free account provides 100 free API credits per month. you can also upgrade to a paid plan to get more API credits. keep an eye on the log of each run to see how many API keys limits reached and how many API keys were used during the run."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
