# Email Finder - B2B Contact Scraper (Hunter.io Alt) (`miccho27/email-finder`) Actor

Find email addresses, phone numbers, and social links from any website. Homepage-only or deep scan modes. Extracts company info from JSON-LD. Bulk processing, JSON/CSV export. From $0.01/domain. For B2B lead gen and sales prospecting.

- **URL**: https://apify.com/miccho27/email-finder.md
- **Developed by:** [Tatsuya Mizuno](https://apify.com/miccho27) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 12 total users, 5 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Email Finder - Free No-Code B2B Contact Scraper (Alternative to Hunter.io, Snov.io, FindThatLead)

Find email addresses, phone numbers, and social media links from any website -- no API keys, no monthly subscription. Perfect for lead generation, sales prospecting, and business directory enrichment. The best free alternative to Hunter.io, Snov.io, FindThatLead, and Lusha.

### Who Is This For?

- **Sales teams & SDRs** -- Build prospect contact lists from company websites before outreach
- **Growth hackers** -- Scrape contact info at scale for cold email campaigns
- **Recruiters** -- Find hiring manager emails and company social profiles from career pages
- **Market researchers** -- Collect contact data across an industry for analysis
- **Freelancers** -- Find decision-maker emails on prospect websites to pitch services

### Features

- **Email Extraction** -- Finds all email addresses with smart filtering (removes false positives like image@2x, noreply, etc.)
- **Phone Detection** -- Extracts phone numbers from text and `tel:` links
- **Social Media Links** -- Detects Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, GitHub
- **Company Info** -- Extracts organization data from JSON-LD structured data (name, address, description)
- **Deep Scan** -- Optionally crawls /contact, /about, /team pages for more comprehensive results
- **Anti-Detection** -- Browser-like headers and random delays to avoid blocking
- **Zero Configuration** -- No API keys, no developer accounts, no signup required

### Pricing -- Free to Start

| Tier | Cost | What You Get |
|------|------|-------------|
| **Free trial** | $0 | Apify free tier includes monthly compute credits |
| **Pay per site** | ~$0.01-0.05/website | Only pay for actual Apify compute used |
| **vs. Hunter.io** | Saves $49-399/mo | Same contact discovery from public sources |
| **vs. Snov.io** | Saves $39-199/mo | No credit system, unlimited scans |
| **vs. Lusha** | Saves $39-69/mo | No per-contact pricing |

### Quick Start (3 Steps)

1. **Click "Try for free"** on this Actor's page in Apify Store
2. **Paste website URLs** you want to scan for contact info (see examples below)
3. **Click "Start"** and download results as JSON, CSV, or Excel

### How It Compares to Paid Email Finders

| Feature | This Actor (FREE) | Hunter.io ($49/mo) | Snov.io ($39/mo) | FindThatLead ($49/mo) | Lusha ($39/mo) |
|---------|-------------------|-------------------|------------------|----------------------|----------------|
| Email extraction | Yes | Yes | Yes | Yes | Yes |
| Phone numbers | Yes | No | No | No | Yes |
| Social media links | 7 platforms | No | LinkedIn only | No | LinkedIn only |
| Company info (JSON-LD) | Yes | No | No | No | No |
| Deep scan (/contact, /about) | Yes | No | No | No | No |
| API/automation | Yes (Apify API) | Yes | Yes | Yes | Yes |
| Bulk processing | Unlimited | 25-500 credits/mo | 50-5000 credits/mo | Plan-limited | 5-100 credits/mo |
| Cloud-based | Yes | Yes | Yes | Yes | Browser extension |
| API keys required | None | Yes | Yes | Yes | Yes |
| Monthly cost | $0 (pay per run) | $49-399 | $39-199 | $49-399 | $39-69 |

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `urls` | string[] | required | Websites to scan for contact info |
| `scanDepth` | string | `"homepage"` | `"homepage"` (fast) or `"deep"` (also scans /contact, /about, /team pages) |
| `includePhones` | boolean | `true` | Extract phone numbers |
| `includeSocial` | boolean | `true` | Extract social media links |

#### Example Input -- Single Website

```json
{
  "urls": [
    "https://example.com"
  ],
  "scanDepth": "deep",
  "includePhones": true,
  "includeSocial": true
}
````

#### Example Input -- Bulk Lead Generation

```json
{
  "urls": [
    "https://company-a.com",
    "https://company-b.com",
    "https://company-c.com",
    "https://company-d.com",
    "https://company-e.com"
  ],
  "scanDepth": "deep",
  "includePhones": true,
  "includeSocial": true
}
```

### Output Example

```json
{
  "domain": "example.com",
  "emails": ["info@example.com", "sales@example.com", "support@example.com"],
  "emailCount": 3,
  "phones": ["+1-555-123-4567", "+1-555-987-6543"],
  "socialLinks": {
    "linkedin": "https://www.linkedin.com/company/example",
    "twitter": "https://twitter.com/example",
    "facebook": "https://www.facebook.com/example",
    "instagram": "https://www.instagram.com/example",
    "github": "https://github.com/example"
  },
  "companyInfo": {
    "name": "Example Inc.",
    "description": "Leading provider of example services",
    "address": "123 Main St, San Francisco, CA"
  },
  "pagesScanned": [
    "https://example.com",
    "https://example.com/contact",
    "https://example.com/about"
  ]
}
```

### Output Fields

| Field | Description |
|-------|-------------|
| `domain` | Website domain |
| `emails` | Array of found email addresses |
| `emailCount` | Number of unique emails found |
| `phones` | Array of phone numbers (when `includePhones: true`) |
| `socialLinks` | Object with social media URLs (when `includeSocial: true`) |
| `companyInfo` | Organization name, description, address from JSON-LD structured data |
| `pagesScanned` | URLs that were scanned |

### Real-World Use Cases

#### 1. Cold Email Outreach Pipeline

Upload a CSV of prospect websites, run this Actor in bulk, and feed results into your email outreach tool (Instantly, Mailshake, Lemlist) via Apify integrations.

#### 2. CRM Enrichment

Enrich your CRM records with missing email, phone, and social data. Schedule weekly runs to keep contact info fresh.

#### 3. Competitor Contact Research

Scan competitor websites to identify key contacts, social channels, and company structure from their /about and /team pages.

#### 4. Business Directory Building

Scrape hundreds of business websites in a niche to build a contact database. Export to Google Sheets for a free lead database.

#### 5. Freelancer Prospect Discovery

Find decision-maker emails on potential client websites. Use deep scan to check /about and /team pages for personal email addresses.

### FAQ

**Q: How does this compare to Hunter.io?**

A: Hunter.io uses a proprietary database of verified emails, so it may find emails not published on the website itself. This Actor extracts only what's publicly visible on the website (HTML, structured data, linked pages). For most B2B prospecting, website-published contacts are sufficient and this approach costs nothing per month.

**Q: Does deep scan slow down the process?**

A: Deep scan adds 2-5 seconds per website since it checks additional pages (/contact, /about, /team). For bulk runs, the extra time is minimal and significantly increases email discovery rates.

**Q: How are false positive emails filtered?**

A: The Actor filters out common non-email patterns (image@2x.png, noreply@, wixpress, sentry, cloudflare addresses, etc.) and validates email format before including in results.

**Q: Can I schedule this to run regularly?**

A: Yes. Use Apify's built-in scheduler to run daily or weekly. Combine with webhooks to push new contacts to your CRM, Google Sheets, or Slack automatically.

**Q: What social platforms are detected?**

A: Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, and GitHub. Links are extracted from page HTML, footer sections, and structured data.

**Q: Can I export results to CSV or Google Sheets?**

A: Yes. Apify datasets can be exported as JSON, CSV, Excel, or pushed directly to Google Sheets, Slack, email, or any webhook endpoint.

# Actor input Schema

## `urls` (type: `array`):

List of website URLs to scan for contact information. Enter company homepages for best results (e.g., 'https://stripe.com'). Bulk processing supported.

## `scanDepth` (type: `string`):

'homepage' scans only the main page (fast). 'deep' also scans /contact, /about, /team, /impressum pages for more complete results.

## `includePhones` (type: `boolean`):

Extract phone numbers from scanned pages.

## `includeSocial` (type: `boolean`):

Extract social media profile URLs (Facebook, Twitter, LinkedIn, Instagram, YouTube, TikTok, GitHub).

## Actor input object example

```json
{
  "urls": [
    "https://stripe.com",
    "https://shopify.com"
  ],
  "scanDepth": "homepage",
  "includePhones": true,
  "includeSocial": true
}
```

# 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 = {
    "urls": [
        "https://stripe.com",
        "https://shopify.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("miccho27/email-finder").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 = { "urls": [
        "https://stripe.com",
        "https://shopify.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("miccho27/email-finder").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 '{
  "urls": [
    "https://stripe.com",
    "https://shopify.com"
  ]
}' |
apify call miccho27/email-finder --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Email Finder - B2B Contact Scraper (Hunter.io Alt)",
        "description": "Find email addresses, phone numbers, and social links from any website. Homepage-only or deep scan modes. Extracts company info from JSON-LD. Bulk processing, JSON/CSV export. From $0.01/domain. For B2B lead gen and sales prospecting.",
        "version": "1.0",
        "x-build-id": "Bzao5LFnb6d60xBIn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/miccho27~email-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-miccho27-email-finder",
                "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/miccho27~email-finder/runs": {
            "post": {
                "operationId": "runs-sync-miccho27-email-finder",
                "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/miccho27~email-finder/run-sync": {
            "post": {
                "operationId": "run-sync-miccho27-email-finder",
                "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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Website URLs",
                        "type": "array",
                        "description": "List of website URLs to scan for contact information. Enter company homepages for best results (e.g., 'https://stripe.com'). Bulk processing supported.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "scanDepth": {
                        "title": "Scan Depth",
                        "enum": [
                            "homepage",
                            "deep"
                        ],
                        "type": "string",
                        "description": "'homepage' scans only the main page (fast). 'deep' also scans /contact, /about, /team, /impressum pages for more complete results.",
                        "default": "homepage"
                    },
                    "includePhones": {
                        "title": "Include Phone Numbers",
                        "type": "boolean",
                        "description": "Extract phone numbers from scanned pages.",
                        "default": true
                    },
                    "includeSocial": {
                        "title": "Include Social Links",
                        "type": "boolean",
                        "description": "Extract social media profile URLs (Facebook, Twitter, LinkedIn, Instagram, YouTube, TikTok, GitHub).",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
