# Extract Emails Contacts And Socials From Any Website (`solid-scraper/extract-emails-contacts-and-socials-from-any-website`) Actor

🔎 Extract emails, contacts & socials from any website with a fast, accurate scraper. Perfect for lead gen, outreach, agencies & sales teams—save hours and find verified details instantly. 🚀

- **URL**: https://apify.com/solid-scraper/extract-emails-contacts-and-socials-from-any-website.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (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 $1.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

### Extract Emails Contacts And Socials From Any Website 🔍

**Extract Emails Contacts And Socials From Any Website** automatically extracts email addresses, phone numbers, and social media links from the websites you provide. Whether you’re a marketer building new outreach lists, a researcher running OSINT-style contact enrichment, or a data analyst cleaning lead sources, this actor helps you turn public web information into structured contact data—at scale, without manually hunting through pages one by one.

***

### Why choose Extract Emails Contacts And Socials From Any Website?

| Feature | Benefit |
| --- | --- |
| ✅ **All-in-one contact extraction** | Extract emails, phone numbers, and social media profile links in one run |
| ✅ **Configurable extraction options** | Turn phone number and social media extraction on or off to match your workflow |
| ✅ **Built-in proxy support** | Uses proxy configuration to improve reliability and reduce blocks |
| ✅ **Reliability-focused scraping** | Includes retries and fallbacks for resilience when pages are hard to access |
| ✅ **Structured dataset output** | Saves consistent fields like `domain`, `homepage_url`, `emails`, `phone_numbers`, and `social_media` |
| ✅ **Designed for bulk domain input** | Accepts multiple website URLs or domains in a single execution |

***

### Key features

- 📄 **Website URL or Domain input support**: Accepts `https://example.com` or `example.com` and normalizes each entry into a domain to scrape.
- ✉️ **Email extraction for contact enrichment**: Collects extracted emails and stores them with confidence and source metadata.
- 📞 **Optional phone numbers extraction**: Extracts phone numbers alongside emails when enabled.
- 🌐 **Optional social profile extraction**: Extracts social media profile links and deduplicates them by normalized URL.
- 🧩 **Clean, consistent JSON results**: Produces one structured record per domain with `emails`, `phone_numbers`, and `social_media` sections.
- 🛡️ **Proxy configuration support**: Works with proxy settings to help you scrape reliable public web data.
- 🔄 **Resilience for real-world pages**: Includes retries and fallbacks to keep results flowing even when some pages are difficult.

***

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "startUrls": [
    { "url": "https://example.com" },
    { "url": "example.org" }
  ],
  "extractPhoneNumbers": true,
  "extractSocialMedia": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `startUrls` | ✅ | A list of website URLs or domains to scrape (for example `https://example.com` or `example.com`). |
| `extractPhoneNumbers` | ❌ | When `true`, the actor extracts phone numbers from pages along with emails. Default is `true`. |
| `extractSocialMedia` | ❌ | When `true`, the actor extracts social media profile links (Facebook, Twitter, LinkedIn, Instagram, etc.). Default is `true`. |
| `proxyConfiguration` | ❌ | Proxy and browser configuration. Residential proxies are recommended for better success rates. |
| • `proxyConfiguration.proxy support` | ❌ | Set `true` to use Apify proxy configuration (prefilled as `true`). |

***

### Output

After execution, the actor pushes each scraped domain result to the Apify **dataset** in JSON format. Each dataset row contains a single object with the fields below.

```json
{
  "domain": "example.com",
  "homepage_url": "https://example.com",
  "emails": [
    {
      "email": "contact@example.com",
      "confidence_score": 82.5,
      "source_url": "https://example.com/contact",
      "source_type": "contact_page",
      "validation_status": "unknown"
    }
  ],
  "phone_numbers": [
    {
      "phone": "+1 555 123 4567",
      "formatted": "+15551234567",
      "source_url": "https://example.com/contact"
    }
  ],
  "social_media": [
    {
      "platform": "linkedin",
      "url": "https://www.linkedin.com/company/example",
      "source_url": "https://example.com"
    }
  ]
}
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `domain` | string | The domain being scraped. |
| `homepage_url` | string | The actor-generated homepage URL in the form `https://{domain}`. |
| `emails` | array | Extracted email objects (each includes `email`, `confidence_score`, `source_url`, `source_type`, and `validation_status`). |
| `phone_numbers` | array | Extracted phone number objects (each includes `phone`, `formatted`, and `source_url`). |
| `social_media` | array | Extracted social media profile objects (each includes `platform`, `url`, and `source_url`). |
| `validation_status` | string | Included inside each email record; indicates the email’s validation status (e.g., `unknown`). |

***

### How to use Extract Emails Contacts And Socials From Any Website (via Apify Console)

1. **Open Apify Console**\
   Sign in at https://console.apify.com and go to the Actors page.

2. **Find the actor**\
   Search for **Extract Emails Contacts And Socials From Any Website** and open the actor details page.

3. **Add your start URLs/domains**\
   In the **INPUT** panel, provide `startUrls` as an array of objects with a `url` field (e.g., `https://example.com` or `example.com`).

4. **Choose what to extract**\
   Keep `extractPhoneNumbers` and `extractSocialMedia` enabled if you need both contact types, or disable one to reduce noise.

5. **Set proxy options (recommended for reliability)**\
   In **Proxy and browser configuration**, decide whether to use `proxyConfiguration.proxy support`.

6. **Run the actor**\
   Click **Run**. Watch logs to see which domains are being processed and whether any domains hit errors.

7. **Review results in the dataset**\
   After completion, open the dataset view to see one JSON record per domain, including `emails`, `phone_numbers`, and `social_media`. Export to JSON/CSV from the dataset UI if needed.

No coding required—get structured email and social link data from any website in minutes. 🚀

***

### Advanced features & SEO optimization

- 🔎 **Engineered-for-purpose extraction**: Built specifically for “Extract Emails Contacts And Socials From Any Website” workflows, including lead generation from website URLs.
- 🌐 **Flexible input normalization**: Handles both full URLs and plain domains, then outputs a consistent `homepage_url` per domain.
- 💾 **Structured output for automation**: Dataset rows always follow the same high-level shape (`domain`, `homepage_url`, `emails`, `phone_numbers`, `social_media`) so you can plug results into CRM or analysis pipelines.
- 🛡️ **Reliability via proxy support**: Uses your proxy configuration to improve success rates when websites are restrictive.
- 🧠 **Social deduplication**: Social profile entries are deduplicated by normalized URL, helping keep your export cleaner.

***

### Best use cases

- 📈 **Lead generation from websites extract emails**: Build targeted lists by extracting emails contacts and phone numbers from company domains.
- 🧑‍🔬 **OSINT tool to extract emails and socials from websites**: Gather publicly available contact signals and social links for research workflows.
- 📣 **Website email harvesting for lead generation**: Turn contact pages, team pages, and footer-style contact areas into usable outreach data.
- 🏢 **B2B enrichment for marketers**: Enrich CRM records with emails and social profiles extracted from website domains.
- 📊 **Data analysts cleaning contact sources**: Normalize domain-level results into consistent arrays for downstream processing.
- 🧩 **Automation engineers integrating exports**: Feed extracted emails and social profiles into pipelines that require structured, per-domain JSON output.

***

### Technical specifications

- **Supported input formats**
  - ✅ `startUrls` accepts a list of website URLs or domains (each item provides a `url` string).
  - ✅ Accepts both `https://example.com` and `example.com`-style entries (actor normalizes to `https://{domain}` for output).

- **Proxy support**
  - ✅ Supports `proxyConfiguration` and `proxyConfiguration.proxy support` for improved scraping reliability.

- **Retry mechanism**
  - ✅ Includes retries and fallbacks for resilience when pages are hard to access.

- **Dataset structure**
  - ✅ One dataset record per input domain containing:
    - `domain`, `homepage_url`, `emails`, `phone_numbers`, `social_media`

- **Rate limits & performance**
  - ✅ Internally limits pages per domain to a fixed maximum of `max_pages = 10`.

- **Limitations**
  - ❌ Only public contact information is extracted; results depend on what the website exposes publicly.

***

### FAQ

#### What does Extract Emails Contacts And Socials From Any Website extract?

✅ It extracts email addresses, phone numbers, and social media profile links from the websites you provide via `startUrls`. You can enable or disable phone and social extraction using `extractPhoneNumbers` and `extractSocialMedia`.

#### Do I need to provide full URLs or can I submit domains?

✅ You can submit either. `startUrls` accepts website URLs or domains like `https://example.com` or `example.org`, and the actor normalizes output using `homepage_url` as `https://{domain}`.

#### Where can I find the extracted results?

✅ Results are pushed to the Apify dataset. Each row corresponds to one `domain` and includes `emails`, `phone_numbers`, and `social_media`.

#### Does the actor validate emails?

✅ Email validation behavior is controlled internally via a fixed configuration (`validate_emails = False` in the actor entry point). The dataset still includes `validation_status` inside each email record.

#### Can I scrape without phone numbers or social links?

✅ Yes. Set `extractPhoneNumbers` to `false` to skip phone extraction, or set `extractSocialMedia` to `false` to skip social profile extraction.

#### Does it support proxies?

✅ Yes. You can configure `proxyConfiguration`, including `proxyConfiguration.proxy support`, to improve success rates when scraping public web data.

#### What if a domain fails to scrape?

❌ In case of an error scraping a domain, the actor still pushes a dataset entry with the same top-level structure (`domain`, `homepage_url`, and empty `emails`, `phone_numbers`, `social_media`) for that domain.

#### Is this meant for bulk lead generation?

✅ Yes. This “web scraper to extract emails and contacts” style actor is built for running across multiple domains in one job, producing structured JSON you can export and use for outreach at scale.

***

### Support & feature requests

Have questions about **Extract Emails Contacts And Socials From Any Website** or want improvements (for example, CSV export enhancements, additional fields, or custom output formatting)?

- 💡 **Feature Requests**: Tell us what you want to extract next—like expanding social metadata or adding more contact detail fields to the dataset.
- 📧 **Contact**: Email us at <dataforleads@gmail.com> for support and feedback.

Your requests help shape the roadmap—thank you for building with us! 🙌

***

### *Extract Emails Contacts And Socials From Any Website* — Final thoughts

*If you’re after a reliable, SEO-friendly actor that extracts emails, phone numbers, and social links from any website, this is built for your workflow.* Get results fast with structured output designed for lead generation and OSINT-style enrichment at scale. 🚀

***

### Disclaimer

**This actor accesses only publicly accessible sources.** It does not access private profiles, authenticated content, or password-protected data. You are responsible for complying with applicable laws and regulations (including GDPR/CCPA), spam and anti-abuse rules, and each website’s terms of service while using the extracted data.

For data-removal requests, contact <dataforleads@gmail.com>.

Please use **Extract Emails Contacts And Socials From Any Website** responsibly, ethically, and for legitimate purposes only.

# Actor input Schema

## `startUrls` (type: `array`):

List of website URLs or domains to scrape (e.g., https://example.com or example.com).

## `extractPhoneNumbers` (type: `boolean`):

Extract phone numbers from pages along with emails.

## `extractSocialMedia` (type: `boolean`):

Extract social media profile links (Facebook, Twitter, LinkedIn, Instagram, etc.).

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

Select proxy settings. Residential proxies recommended for better success rates.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://apify.com"
    }
  ],
  "extractPhoneNumbers": true,
  "extractSocialMedia": true,
  "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 = {
    "startUrls": [
        {
            "url": "https://apify.com"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/extract-emails-contacts-and-socials-from-any-website").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 = {
    "startUrls": [{ "url": "https://apify.com" }],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("solid-scraper/extract-emails-contacts-and-socials-from-any-website").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 '{
  "startUrls": [
    {
      "url": "https://apify.com"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call solid-scraper/extract-emails-contacts-and-socials-from-any-website --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solid-scraper/extract-emails-contacts-and-socials-from-any-website",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/uKHyeH5Xhh7vraiyG/builds/8I8bdBh6fdBRcO4fz/openapi.json
