# Website Emails, Phone & Social Media Scraper - Contact Details (`scrapido/website-emails-phone-social-media-scraper`) Actor

📇 Website Emails, Phone & Social Media Scraper extracts full contact profiles from bulk URL lists. 🔓 Decodes hidden addresses and merges duplicates per domain. 🚀 Ideal for agencies building enriched outreach databases.

- **URL**: https://apify.com/scrapido/website-emails-phone-social-media-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (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 $2.50 / 1,000 results

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

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

### Website Emails, Phone & Social Media Scraper

**Website Emails, Phone & Social Media Scraper** helps you collect website contact information at scale—emails, phone numbers, and social profile links—so you don’t have to do slow, manual research across hundreds of pages. It’s built for data harvesting, lead generation automation, and cleaner CRM enrichment using website contact form scraper workflows.

***

### What is Website Emails, Phone & Social Media Scraper? 🔍

**Website Emails, Phone & Social Media Scraper** is an Apify actor that automatically scrapes contact details from websites you provide. It targets each website domain and extracts email addresses, phone numbers (when enabled), and social media profile links (when enabled). This makes it ideal for marketers, sales teams, recruiters, and data analysts who need an email scraper-style workflow without spending hours hunting for contact pages. The result is structured data for automated website data extraction and contact information extraction—turning public web data into actionable lead generation automation outputs.

***

### What Data Does a Website Emails & Social Media Scraper Collect? 📊

It captures the core contact data you need for outreach and enrichment: a domain record, a homepage URL, and arrays for emails and phone numbers, plus a social media section when available.

| Data Category | Field Name | Description | Available |
|---|---|---|---|
| Contact | `emails` | Email addresses publicly found on the website | ✅ Always (may be empty) |
| Navigation | `homepage_url` | The website homepage URL for the scraped domain | ✅ Always |
| Contact | `phone_numbers` | Phone numbers publicly found on the website (only if phone extraction is enabled) | ✅ Always (may be empty) |
| Social | `social_media` | Social media profile links found on the website (only if social extraction is enabled) | ✅ Always (may be empty) |
| Identity | `domain` | The domain extracted from your provided target URL(s) | ✅ Always |

***

### Types of Data I Can Extract with Website Emails, Phone & Social Media Scraper 🗂️

You can use Website Emails, Phone & Social Media Scraper to gather contact data in a few practical categories:

**Contact Data**

- Email addresses
- Phone numbers (when `enablePhoneExtraction` is enabled)

**Social Media Data**

- Social media profile links (when `enableSocialMediaExtraction` is enabled)

**Export-Ready Records**

- Structured JSON rows per domain with `domain`, `homepage_url`, `emails`, `phone_numbers`, and `social_media`

**Lead Generation Automation**

- A consistent output format for CRM import, web scraping tools pipelines, and data harvesting workflows

***

#### Key Features of Website Emails, Phone & Social Media Scraper ⚡

| Feature | Benefit |
|---|---|
| ✅ **Email, Phone, and Social Extraction Options** | Toggle `enablePhoneExtraction` and `enableSocialMediaExtraction` based on your lead generation automation needs |
| ✅ **Proxy Support** | Built-in proxy support for reliable scraping and fewer interruptions |
| ✅ **Domain-Based Scraping** | You supply target website URLs; the actor extracts domains and scrapes each one |
| ✅ **Structured Dataset Output** | Results are pushed to an Apify dataset with consistent field names for easy downstream use |
| ✅ **Deduplication of Social Links** | Social profile links are deduplicated by normalized URL |
| ✅ **Resilience for Real-World Sites** | Includes robustness for handling domain-level errors without failing the whole run |
| ✅ **Clean, CRM-Friendly Format** | Output arrays for `emails` and `phone_numbers`, plus `social_media` objects ready for processing |

***

### Website Emails, Phone & Social Media Scraper User Guide 📖

#### Required Input Fields

Use the Apify input form or provide an `input.json` file. Below is a realistic example using the schema defaults.

```json
{
  "targetUrls": [
    { "url": "https://apify.com" }
  ],
  "enablePhoneExtraction": true,
  "enableSocialMediaExtraction": true,
  "proxySettings": {
    "useApifyProxy": true
  }
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `targetUrls` | array | ✅ Yes | — | List of target website URLs to scrape for contact information |
| `enablePhoneExtraction` | boolean | No | `true` | If enabled, the scraper will also extract phone numbers found on the pages |
| `enableSocialMediaExtraction` | boolean | No | `true` | If enabled, the scraper will detect and extract social media profile links (e.g., LinkedIn, Twitter, Facebook) |
| `proxySettings` | object | No | — | Configuration for proxies. Using residential proxies is highly recommended to avoid blocking. Includes `proxy support` |

***

#### Output Format (Apify Dataset) 📦

The actor pushes one dataset item per scraped domain. Use the dataset schema below as the source of truth.

```json
{
  "domain": "example.com",
  "homepage_url": "https://example.com",
  "emails": [
    {
      "email": "contact@example.com",
      "confidence_score": 86.4,
      "source_url": "https://example.com/contact",
      "source_type": "body",
      "validation_status": "unknown"
    },
    {
      "email": "sales@example.com",
      "confidence_score": 78.2,
      "source_url": "https://example.com/about",
      "source_type": "footer",
      "validation_status": "unknown"
    }
  ],
  "phone_numbers": [
    {
      "phone": "+1 (415) 555-0134",
      "formatted": "+14155550134",
      "source_url": "https://example.com/contact"
    }
  ],
  "social_media": [
    {
      "platform": "linkedin",
      "url": "https://www.linkedin.com/company/example-inc/",
      "source_url": "https://example.com"
    },
    {
      "platform": "twitter",
      "url": "https://twitter.com/example_inc",
      "source_url": "https://example.com/about"
    }
  ]
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `domain` | Domain | text | The domain extracted from your provided target URL(s) |
| `homepage_url` | Homepage | link | Homepage URL for the scraped domain |
| `emails` | Email Addresses | array | Array of extracted email address objects found on the website |
| `phone_numbers` | Phone Numbers | array | Array of extracted phone number objects found on the website |
| `social_media` | Social Media | object | Extracted social media links (deduplicated) as returned by the actor |

***

### Solving Real Problems with Website Emails, Phone & Social Media Scraper 💼

- 🎯 **Cold Outreach at Scale** — Build a contact list for lead generation automation without manual page-by-page research
- 📣 **CRM Enrichment** — Add emails and phone numbers to existing records as part of data harvesting
- 🔬 **Business Discovery** — Identify which companies publicly list contact channels for outreach and partnerships
- 🤝 **Sales Enablement** — Speed up initial prospect research by pulling publicly available contact information
- ⚙️ **Automation-Friendly Workflows** — Feed the structured output into your pipelines using web scraping tools integrations
- 🧩 **Multi-Channel Leads** — Combine email and phone discovery with social media profile scraping for stronger targeting

***

### Why Choose Our Website Emails, Phone & Social Media Scraper? 🏆

- 🛡️ **Reliable proxy-enabled scraping** — Uses your proxy settings to support smoother scraping across real websites
- 🔄 **Configurable extraction** — Enable or disable phone and social extraction depending on your campaign goals
- 📊 **Dataset-first output** — Results are pushed to an Apify dataset with consistent field ordering for easy export
- 🔗 **Cleaner social link handling** — Social profile links are deduplicated, helping you avoid repeated contacts

***

### How Many Results Can You Scrape? 📈

This actor processes each provided target domain and saves a structured dataset record per domain. The practical number of emails and phone numbers depends on what the website publicly lists and whether `enablePhoneExtraction` / `enableSocialMediaExtraction` are enabled. If you provide multiple target URLs, you’ll receive multiple dataset items—one for each scraped domain.

***

### Legal Guidelines for Scraping Website ⚖️

This actor collects information only from **publicly available sources**. It does not access private accounts or restricted content. You are responsible for complying with applicable laws and each website’s Terms of Service, including privacy and anti-spam regulations. Use this tool for legitimate business purposes such as contact information extraction and CRM enrichment. For data-removal requests, contact: <scrapidocontact@gmail.com>.

***

### FAQ — Website Emails, Phone & Social Media Scraper ❓

#### How Does the Website Emails, Phone & Social Media Scraper Work?

You provide `targetUrls`, and the actor extracts domains and scrapes each website for publicly listed contact information. It then pushes structured results into your Apify dataset, including `emails`, `phone_numbers`, and `social_media` (depending on your enabled options).

#### What Happens If Phone Extraction Is Disabled?

If you set `enablePhoneExtraction` to `false`, the dataset items will still be created per domain, but the `phone_numbers` array may be empty because phone number extraction is turned off.

#### What Happens If Social Media Extraction Is Disabled?

If you set `enableSocialMediaExtraction` to `false`, social profile discovery is disabled for the run. The output will still include the `social_media` field, but it may be empty.

#### Can I Use This for Lead Generation Automation?

Yes. The actor’s dataset output is designed for downstream workflows like lead generation automation and CRM enrichment—so you can take the structured emails, phone numbers, and social links and integrate them into your outreach process.

#### Where Do I Find the Results?

The actor pushes results to an Apify dataset. Each dataset item corresponds to a scraped `domain` and includes `homepage_url`, `emails`, `phone_numbers`, and `social_media`.

#### How Can I Request Data Removal?

If you need data removal, contact <scrapidocontact@gmail.com>. Include enough context for the request so the team can locate the relevant output.

***

### Final Word ✉️

Website Emails, Phone & Social Media Scraper turns publicly listed contact channels into structured dataset rows—so you can move from manual research to automated website contact information extraction. Run it on your target domains and export-ready data arrives in your dataset.

# Actor input Schema

## `targetUrls` (type: `array`):

List of target website URLs to scrape for contact information.

## `enablePhoneExtraction` (type: `boolean`):

If enabled, the scraper will also extract phone numbers found on the pages.

## `enableSocialMediaExtraction` (type: `boolean`):

If enabled, the scraper will detect and extract social media profile links (e.g., LinkedIn, Twitter, Facebook).

## `validateEmails` (type: `boolean`):

Run DNS/MX validation and confidence scoring on every email found, and include the results (confidence score, validation status, role-based/catch-all flags) in the output.

## `proxySettings` (type: `object`):

Configuration for proxies. Using residential proxies is highly recommended to avoid blocking.

## Actor input object example

```json
{
  "targetUrls": [
    {
      "url": "https://apify.com"
    }
  ],
  "enablePhoneExtraction": true,
  "enableSocialMediaExtraction": true,
  "validateEmails": false,
  "proxySettings": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "targetUrls": [
        {
            "url": "https://apify.com"
        }
    ],
    "proxySettings": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/website-emails-phone-social-media-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 = {
    "targetUrls": [{ "url": "https://apify.com" }],
    "proxySettings": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/website-emails-phone-social-media-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "targetUrls": [
    {
      "url": "https://apify.com"
    }
  ],
  "proxySettings": {
    "useApifyProxy": true
  }
}' |
apify call scrapido/website-emails-phone-social-media-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/website-emails-phone-social-media-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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