# 🌐 Any Website B2B Email Scraper (`scraper-engine/anywebsite-b2b-emails-scraper`) Actor

🌐 Any Website B2B Email Scraper extracts verified business emails from any website. 🚀 Automate lead gen, sales prospecting & outreach with fast, accurate scraping—no manual searching. 🧠 Perfect for B2B marketing & research teams.

- **URL**: https://apify.com/scraper-engine/anywebsite-b2b-emails-scraper.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## 🌐 Any Website B2B Email Scraper

**Automatically discover verified business emails from Any Website any publicly indexed web pages** using automated public web discovery — no Any Website login required, no API keys needed.

> 📊 **Tier Rating:** TIER 2 — Good

***

### 🚀 Why Choose This Actor?

- ⚡ **Fast & Efficient** — Uses browser impersonation (not a full headless browser) for maximum speed with minimal resource usage
- 🎯 **B2B Focused** — 29 pre-built search patterns specifically engineered to find corporate emails (not Gmail/Yahoo noise)
- 🔒 **Reliable Connection Handling** — Automatic retry logic keeps collection running smoothly
- 📊 **Live Results** — Each email is saved to your dataset in real time as it's discovered
- 🌍 **Location Targeting** — Filter results by city, region, or country for hyper-local prospecting
- 🔑 **Multi-Keyword** — Process dozens of industries/niches in a single run

***

### ✨ Key Features

- 🏢 **B2B Mode** — Corporate email discovery (contact@, info@, team@, domain-specific)
- 👤 **Personal Mode** — Broader discovery including all email types
- 🎨 **29 Pattern Templates** — From booking emails to sponsorship inquiries
- 🔄 **Smart Deduplication** — Each email address appears only once in your results
- 📍 **Geographic Filtering** — Target specific cities or regions
- 🌐 **Platform Locked to Any Website** — Optimized search queries for any website domain
- ⚡ **Jitter Delays** — Human-like request timing to avoid detection
- 📈 **Real-Time Progress** — Live status updates and per-result logging

***

### 📥 Input Configuration

```json
{
  "keywords": ["marketing", "restaurants", "fitness"],
  "platform": "example.com",
  "location": "London",
  "mode": "b2b",
  "maxEmails": 50,
  "maxEmailsPerPattern": 15,
  "patterns": ["email_for_bookings", "bio_email_basic", "contact_at_domain"],
  "proxyConfiguration": { "useApifyProxy": false }
}
```

| Field | Type | Description |
|-------|------|-------------|
| `keywords` | `array` | 🔑 Industries/niches to search (required) |
| `platform` | `string` | 🌐 Platform domain (default: `example.com`) |
| `location` | `string` | 📍 City/region filter (optional, leave empty for global) |
| `mode` | `string` | 🎯 `b2b` (corporate emails) or `personal` (all types) |
| `maxEmails` | `integer` | 📊 Total email cap (1–50000, default: 10) |
| `maxEmailsPerPattern` | `integer` | 🔢 Per-pattern cap in B2B mode (default: 15) |
| `selectedPatterns` | `array` | 🎨 Specific patterns (empty = all 29 patterns) |
| `proxyConfiguration` | `object` | 🔒 Proxy settings (default: recommended configuration) |

***

### 📤 Output Format

Each discovered email is saved as a row in the Apify dataset:

```json
{
  "email": "info@example-business.com",
  "leadType": "b2b",
  "pattern": "email_for_bookings",
  "keyword": "marketing",
  "location": "London",
  "network": "any website domain",
  "title": "For bookings email info@example-business.com",
  "description": "Professional marketing agency serving London businesses...",
  "url": "https://www.any website domain/...",
  "scraped_at": "2026-05-25T15:00:00Z"
}
```

| Field | Description |
|-------|-------------|
| `email` | ✅ The discovered business email address |
| `leadType` | 🏷️ `b2b` or `personal` |
| `pattern` | 🎨 B2B search pattern that found this email |
| `keyword` | 🔑 Keyword used in the search |
| `location` | 📍 Location filter applied |
| `network` | 🌐 Platform (e.g., any website domain) |
| `title` | 📋 Result title containing the email |
| `description` | 📝 Snippet text describing the result |
| `url` | 🔗 Source Any Website page URL |
| `scraped_at` | ⏰ UTC timestamp when the email was found |

***

### 🎨 Available B2B Patterns

| Pattern | What It Finds |
|---------|--------------|
| `email_for_bookings` | 📅 Booking & reservation emails |
| `bio_email_basic` | 📧 Bio email mentions with emoji |
| `job_applications` | 💼 Hiring & careers emails |
| `email_direct_mention` | 📬 Direct "email us at" posts |
| `contact_at_domain` | 🏢 `info@`, `contact@`, `hello@`, etc. |
| `business_development` | 🤝 B2B & partnership emails |
| `careers_hiring` | 👥 Recruitment contacts |
| `hr_recruitment` | 🏭 HR department emails |
| `customer_service` | 🎧 Support & help desk emails |
| `sponsor_me` | 💰 Sponsorship opportunity emails |
| `professional_services` | 🔧 Agency & consulting contacts |
| `bio_email_emoji_extended` | 💌 📩 📮 Emoji email mentions |
| `dm_or_email` | 💬 DM or email CTA posts |
| + 16 more | ... |

***

### 🚀 How to Use (Apify Console)

1. 🔐 Log in at [console.apify.com](https://console.apify.com) → **Actors**
2. 🔍 Find **Any Website B2B Email Scraper** and click it
3. ⚙️ Configure your inputs:
   - Add your target keywords (e.g., `marketing`, `restaurants`)
   - Set your location (e.g., `London`, `New York`)
   - Choose mode: `B2B` for corporate emails
   - Set max emails (e.g., `100`)
4. ▶️ Click **Start**
5. 📊 Watch real-time logs as emails are discovered
6. 📋 Open the **Output** tab to see your results table
7. 📁 Export to **JSON / CSV / Excel**

***

### 🔒 Reliability

The actor automatically retries transient connection issues so a single hiccup does not interrupt your run — failed requests are retried before being skipped, and collection continues with the next query.

***

### 🎯 Best Use Cases

- 🌐 **Universal Lead Generation** — Find B2B emails from any public website
- 📍 **Geo-Targeted Prospecting** — Target businesses in specific cities or regions
- 🤝 **Cross-Platform Discovery** — Search any domain or niche for contact emails
- 📧 **Email List Building** — Build verified B2B email lists from any platform
- 🔍 **Market Research** — Identify and contact businesses across the web

***

### ⚠️ Legal & Ethical Notice

- This actor only collects data from **publicly available**, indexed web sources
- Users can target any publicly indexed website by specifying the domain in the `platform` field.
- Users are responsible for compliance with **GDPR, CAN-SPAM, CCPA**, and applicable laws
- Do not use collected emails for spam or unsolicited bulk messaging
- Review Any Website's Terms of Service and applicable third-party terms before use

***

### ❓ Frequently Asked Questions

**Q: Does this need a Any Website account?**
A: No — it searches publicly indexed Any Website content.

**Q: Will it find private account emails?**
A: No — only publicly indexed Any Website content is searched.

**Q: How many emails can I collect per run?**
A: Up to 50,000 per run. Run multiple times for larger lists.

**Q: What makes B2B mode different?**
A: B2B mode filters out Gmail, Yahoo, Outlook, and other personal email domains, returning only corporate/domain-specific emails.

**Q: Do I need Apify proxies?**
A: Proxies are recommended and enabled by default for the most reliable results.

***

### 📞 Support & Feedback

- 🐛 Report issues in the **Issues** tab
- 💡 Feature requests welcome
- ⭐ If this actor saves you time, please leave a review!

# Actor input Schema

## `keywords` (type: `array`):

🔎 Search terms for Any Website via Google (e.g. marketing, fitness, real estate). ✨ Add one or many keywords.

## `mode` (type: `string`):

👤 personal = Gmail/Outlook discovery | 🏢 b2b = corporate email patterns

## `customDomains` (type: `array`):

👤 Personal mode: filter results to these domains (e.g. @gmail.com, @outlook.com). ⏭️ Ignored in B2B mode.

## `patterns` (type: `array`):

🏢 B2B only: 📂 empty list runs all patterns; or name specific keys from b2b\_patterns.py (e.g. email\_for\_bookings, bio\_email\_basic).

## `platform` (type: `string`):

📱 Choose any target platform for email discovery — all 83 platforms supported.

## `location` (type: `string`):

🗺️ Geographic filter added to search queries (e.g. London, New York). 🌍 Leave empty for global results.

## `maxEmails` (type: `integer`):

🎯 Maximum number of emails to collect across all keywords and patterns.

## `maxEmailsPerPattern` (type: `integer`):

📈 Cap emails collected per B2B search pattern (🏢 B2B mode only).

## `useProxy` (type: `boolean`):

✅ Enable proxy for Google Search requests. ⭐ Recommended: on for best results.

## `proxyConfiguration` (type: `object`):

🔧 Optional proxy override when 🛡️ Use Apify Proxy is enabled. 🎯 Leave as default for best performance.

## Actor input object example

```json
{
  "keywords": [
    "marketing"
  ],
  "mode": "b2b",
  "customDomains": [
    "@outlook.com",
    "@gmail.com"
  ],
  "patterns": [
    "email_for_bookings",
    "bio_email_basic",
    "contact_at_domain",
    "business_development"
  ],
  "platform": "Instagram.com",
  "location": "",
  "maxEmails": 10,
  "maxEmailsPerPattern": 15,
  "useProxy": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}
```

# 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 = {
    "keywords": [
        "marketing"
    ],
    "customDomains": [
        "@outlook.com",
        "@gmail.com"
    ],
    "patterns": [
        "email_for_bookings",
        "bio_email_basic",
        "contact_at_domain",
        "business_development"
    ],
    "location": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/anywebsite-b2b-emails-scraper").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 = {
    "keywords": ["marketing"],
    "customDomains": [
        "@outlook.com",
        "@gmail.com",
    ],
    "patterns": [
        "email_for_bookings",
        "bio_email_basic",
        "contact_at_domain",
        "business_development",
    ],
    "location": "",
}

# Run the Actor and wait for it to finish
run = client.actor("scraper-engine/anywebsite-b2b-emails-scraper").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 '{
  "keywords": [
    "marketing"
  ],
  "customDomains": [
    "@outlook.com",
    "@gmail.com"
  ],
  "patterns": [
    "email_for_bookings",
    "bio_email_basic",
    "contact_at_domain",
    "business_development"
  ],
  "location": ""
}' |
apify call scraper-engine/anywebsite-b2b-emails-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraper-engine/anywebsite-b2b-emails-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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