# Contact Details Scraper (`kawsar/contact-details-scraper`) Actor

Professional Email Extractor and Contact Details Scraper that finds emails, phones, and social links on any website for lead generation. It automates business data collection so you can build high-quality outreach lists for sales and recruitment without manual work or complex tools.

- **URL**: https://apify.com/kawsar/contact-details-scraper.md
- **Developed by:** [Kawsar](https://apify.com/kawsar) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 87.5% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Contact Details Scraper: Professional E-mail Extractor & Lead Generation Tool

![Contact Details Scraper Cover](https://i.imgur.com/5fSb4ml.png)

The **Contact Details Scraper** is a high-performance **e mail extractor** and **email scraper** designed to help you automate your **lead generation** process. Whether you need a **linkedin email scraper**, an **instagram email scraper**, or a tool to **scrape website for emails**, this actor provides a reliable solution for extracting contact information at scale.

This tool acts as a **bulk email extractor** that crawls websites to find hidden email addresses, phone numbers, and social media profiles. It's the ultimate **email scraping tool** for marketers, sales teams, and recruiters who need to build high-quality contact lists without manual work.

### What data does this actor extract?
Our **email extractor from website** doesn't just stop at emails. It gathers a comprehensive suite of contact details:
- **Emails**: High-accuracy **email address extractor** for professional and personal addresses.
- **Phone Numbers**: Extracts numbers from text and `tel:` links.
- **LinkedIn Profiles**: Works as a **linkedin email extractor** to find company and personal profiles.
- **Instagram Profiles**: Integrated **instagram email scraper** logic for social discovery.
- **Facebook Pages**: **Facebook email extractor** capabilities for business pages.
- **Twitter/X, YouTube, TikTok, and Pinterest**: Full social media coverage.

### Why use this Contact Details Scraper?
If you've been looking for the **best email scraper** or a **free email extractor online**, you know how hit-or-miss they can be. This scraper is built on **python** and **playwright**, making it more robust than a simple **email extractor chrome extension**. 

#### Key Benefits:
- **Bulk Email Extraction**: Use it as a **web email extractor** to process hundreds of sites in one run.
- **Single Page Mode**: Drop in 100+ URLs and get contact details from each page — no unnecessary crawling.
- **Lead Generation**: Perfect for finding **business email scraper** targets and **email leads extractor** data.
- **Stay on Domain**: Unlike a generic **web mail extractor**, you can force this tool to stay within a specific site's boundaries.
- **High-Speed HTTP Mode**: Scrape thousands of pages in minutes using our optimized **python email scraper** engine.
- **Optional Browser Support**: Enable the **Playwright** browser for JavaScript-heavy sites that block simple scrapers.

### URL Input Formats
You can enter URLs in **any common format** — the scraper will automatically normalize them:

| You enter | Scraper uses |
|-----------|-------------|
| `https://www.example.com` | `https://www.example.com` |
| `http://www.example.com` | `http://www.example.com` |
| `www.example.com` | `https://www.example.com` |
| `example.com` | `https://example.com` |

No need to worry about adding `https://` or `www.` — just paste your list of domains and go.

### Two Crawling Modes

#### 🔹 Single Page Mode (default: ON)
Only visits the **exact URLs** you provide. If you input 100 domains, the scraper visits exactly those 100 pages and extracts contact details from each one. No link following, no going deeper.

**Best for:** Bulk lead lists, processing a CSV of company websites, targeted outreach.

#### 🔹 Deep Crawl Mode (Single Page OFF)
Follows links within each website up to the configured depth. Great for discovering contact pages, about pages, and team pages that aren't on the homepage.

**Best for:** Thorough research on a smaller number of websites.

### Use cases
- **Sales & Outreach**: Use it as an **email leads extractor** to find potential clients for your cold email campaigns.
- **Recruitment**: A powerful **linkedin email scraper github** alternative to find candidate contact info.
- **Marketing Research**: Scrape **facebook email scraper** data or **instagram email scraper** links to find influencers.
- **SEO & Content**: Find contact details for guest posting and backlink outreach.

### How to use the Contact Details Scraper
1. **Paste your URLs**: Enter your target websites in any format (full URLs, domains, with or without www).
2. **Choose Mode**: Keep "Single Page Only" ON for bulk lists, or turn it OFF to crawl deeper.
3. **Configure Proxies**: Essential for a **web page email extractor** to avoid being blocked.
4. **Run and Download**: Export your data in JSON, CSV, or Excel formats.

### Input Configuration
| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `target_sites` | array | — | URLs to scrape. Accepts any format. |
| `single_page_only` | boolean | `true` | Only scrape the given URLs, no deeper crawling. |
| `page_limit` | number | `100` | Maximum pages to visit. |
| `crawl_depth` | number | `1` | Link depth (ignored in Single Page mode). |
| `stay_on_site` | boolean | `true` | Stay on same domain (ignored in Single Page mode). |
| `extract_from_iframes` | boolean | `false` | Extract from IFRAMEs (Browser mode only). |
| `use_browser` | boolean | `false` | Use Playwright for JS-heavy sites. |
| `proxyConfiguration` | object | Apify Proxy | Proxy settings. |

### Results
The actor stores its results into the default dataset associated with the actor run. You can then download the results in formats such as JSON, HTML, CSV, XML, or Excel. For each page crawled, the following contact information is extracted (examples shown):

![Sample Screenshot](https://i.imgur.com/Fv4A59j.png)

#### Example Output
```json
{
  "source_url": "https://apify.com/contact",
  "scrape_depth": 0,
  "initial_target": "https://apify.com/contact",
  "emails": [
    "hello@apify.com",
    "support@apify.com"
  ],
  "phones": [
    "+420 123 456 789"
  ],
  "facebook_links": [
    "https://www.facebook.com/apifytech"
  ],
  "twitter_links": [
    "https://x.com/apify"
  ],
  "instagram_links": [
    "https://www.instagram.com/apify"
  ],
  "linkedin_links": [
    "https://www.linkedin.com/company/apify"
  ],
  "youtube_links": [
    "https://www.youtube.com/apify"
  ],
  "tiktok_links": [
    "https://www.tiktok.com/@apifyoffice"
  ]
}
````

### FAQ

**Is this a free email extractor?**
You can run this on Apify using their free tier credits, making it a great **free email scraper** alternative for small batches.

**How does it compare to an email extractor chrome extension?**
Most **chrome email scraper** tools only scan the page you are currently viewing. This actor is a full-scale **web scraping for email addresses** tool that can crawl thousands of pages in the background.

**Can it scrape LinkedIn for emails?**
Yes, it identifies LinkedIn profiles and can be used as a **linkedin email scraper** for public profiles and company pages.

**Is it better than a bulk email extractor software?**
Since it's cloud-based on Apify, you don't need to **download email extractor** software or deal with installation. It's an **online email extractor** that works anywhere.

**Does it work as a facebook email extractor?**
Yes, it can find email addresses listed on public Facebook pages and groups, acting as a reliable **facebook group email extractor**.

### Contact & Support

If you need a custom **email scraping service** or have questions about this **email extractor tool**, feel free to reach out via the Apify platform.

![Contact Details Scraper CTA](https://i.imgur.com/vih6S3C.png)

# Actor input Schema

## `target_sites` (type: `array`):

Enter the URLs you want to extract contact details from. Accepts any format: https://example.com, http://example.com, www.example.com, or just example.com.

## `single_page_only` (type: `boolean`):

When enabled, only scrapes the exact URLs you provide. No link following, no deeper pages. Perfect for bulk lists of 100+ URLs where you just want each page's contact info.

## `page_limit` (type: `integer`):

The maximum number of pages to crawl. In Single Page mode, this is simply how many of your input URLs get processed.

## `crawl_depth` (type: `integer`):

How many levels deep should the scraper follow links? Only applies when Single Page mode is OFF. Level 0 = target URL only, Level 1 = target + its direct links.

## `stay_on_site` (type: `boolean`):

If enabled, the scraper won't follow links to external websites. Only applies when Single Page mode is OFF.

## `extract_from_iframes` (type: `boolean`):

Search for contact details inside embedded frames. Only works when Browser mode is enabled.

## `use_browser` (type: `boolean`):

Enable for JavaScript-heavy websites. Slower and more expensive, but handles dynamic content.

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

Use proxies to avoid being blocked while scraping.

## Actor input object example

```json
{
  "target_sites": [
    {
      "url": "https://apify.com"
    }
  ],
  "single_page_only": false,
  "page_limit": 100,
  "crawl_depth": 1,
  "stay_on_site": true,
  "extract_from_iframes": false,
  "use_browser": false,
  "proxyConfiguration": {
    "useApifyProxy": 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 = {
    "target_sites": [
        {
            "url": "https://apify.com"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kawsar/contact-details-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 = { "target_sites": [{ "url": "https://apify.com" }] }

# Run the Actor and wait for it to finish
run = client.actor("kawsar/contact-details-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 '{
  "target_sites": [
    {
      "url": "https://apify.com"
    }
  ]
}' |
apify call kawsar/contact-details-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Contact Details Scraper",
        "description": "Professional Email Extractor and Contact Details Scraper that finds emails, phones, and social links on any website for lead generation. It automates business data collection so you can build high-quality outreach lists for sales and recruitment without manual work or complex tools.",
        "version": "0.0",
        "x-build-id": "A88baQurYGVOQd0Ic"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kawsar~contact-details-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kawsar-contact-details-scraper",
                "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/kawsar~contact-details-scraper/runs": {
            "post": {
                "operationId": "runs-sync-kawsar-contact-details-scraper",
                "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/kawsar~contact-details-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-kawsar-contact-details-scraper",
                "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": [
                    "target_sites"
                ],
                "properties": {
                    "target_sites": {
                        "title": "Websites to Scrape",
                        "type": "array",
                        "description": "Enter the URLs you want to extract contact details from. Accepts any format: https://example.com, http://example.com, www.example.com, or just example.com.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "single_page_only": {
                        "title": "Single Page Only (No Deep Crawl)",
                        "type": "boolean",
                        "description": "When enabled, only scrapes the exact URLs you provide. No link following, no deeper pages. Perfect for bulk lists of 100+ URLs where you just want each page's contact info.",
                        "default": false
                    },
                    "page_limit": {
                        "title": "Maximum Pages to Scrape",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "The maximum number of pages to crawl. In Single Page mode, this is simply how many of your input URLs get processed.",
                        "default": 100
                    },
                    "crawl_depth": {
                        "title": "Link Depth (ignored in Single Page mode)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "How many levels deep should the scraper follow links? Only applies when Single Page mode is OFF. Level 0 = target URL only, Level 1 = target + its direct links.",
                        "default": 1
                    },
                    "stay_on_site": {
                        "title": "Stay on Same Domain",
                        "type": "boolean",
                        "description": "If enabled, the scraper won't follow links to external websites. Only applies when Single Page mode is OFF.",
                        "default": true
                    },
                    "extract_from_iframes": {
                        "title": "Extract from IFRAMEs (Browser mode only)",
                        "type": "boolean",
                        "description": "Search for contact details inside embedded frames. Only works when Browser mode is enabled.",
                        "default": false
                    },
                    "use_browser": {
                        "title": "Use Browser (Playwright)",
                        "type": "boolean",
                        "description": "Enable for JavaScript-heavy websites. Slower and more expensive, but handles dynamic content.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Use proxies to avoid being blocked while scraping.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
