# All Social Media Email Scraper (`solid-scraper/all-social-media-email-scraper`) Actor

📩 All Social Media Email Scraper extracts verified email addresses from public social profiles using filters and keywords. Find targeted leads faster for sales, outreach, and marketing—save time, boost conversions, and scale effortlessly. 🚀

- **URL**: https://apify.com/solid-scraper/all-social-media-email-scraper.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (community)
- **Categories:** Lead generation, Social media, Automation
- **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

### All-in-One Social Media Email Scraper 📬

**All-in-One Social Media Email Scraper** helps you scrape emails from public social media sources using your chosen keywords and email-domain filters. If you’re looking for a **social media to email scraper**, a **social media email finder**, or a **lead generation email scraper** to build targeted outreach lists faster, this actor is built for that exact workflow—extracting email addresses from social media profiles, bios, and posts that relate to your keywords and filters, saving you hours of manual work.

Whether you’re a marketer, researcher, or data analyst, you can use this actor to support **email list building from social media** at scale with structured, export-friendly results.

***

### Why choose All-in-One Social Media Email Scraper?

| Feature | Benefit |
| --- | --- |
| ✅ **All-in-one social platform coverage (single actor run)** | Extract emails across many popular social media platforms by selecting your `platform` |
| ✅ **Keyword + email-domain targeting** | Uses your keywords and custom email domains to focus results on the contacts you care about |
| ✅ **Proxy support with fallback resilience** | Uses built-in proxy support for reliable scraping, including a fallback to a residential setup when needed |
| ✅ **Structured output rows per found email** | Produces consistent fields like `platform`, `email`, `title`, `url`, and `description` for easy import |
| ✅ **Scalable pagination with concurrency** | Collects more results efficiently by scraping multiple pages concurrently (high-level controlled concurrency) |
| ✅ **Resume support via progress tracking** | Resumes based on saved progress so you don’t lose work between runs |

***

### Key features

- 📌 **Keyword-led email discovery**: Finds relevant contact emails connected to your chosen keywords from social media pages
- 🎯 **Custom email domain filters**: Narrows results using `customDomains` (e.g., targeting `@gmail.com`, `@yahoo.com`, or other domains)
- 🌐 **Multi-platform selection**: Choose from many platforms (e.g., Instagram, LinkedIn, Twitter/X, Facebook, YouTube, and more)
- 🛡️ **Proxy resilience & fallback**: Includes proxy support and a fallback path when no emails are found for the selected setup
- 🔄 **Pagination that keeps going until limits**: Continues collecting until it hits `maxEmails` (or reaches its page limit per run)
- 💾 **Incremental dataset pushing**: Each discovered email is pushed immediately so results appear as the run proceeds
- 📊 **Deduplication to keep results unique**: Avoids re-adding the same email across the run using stored progress

***

### Input

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

```json
{
  "keywords": ["founder", "marketing"],
  "location": "Berlin",
  "platform": "LinkedIn",
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 50,
  "proxyConfiguration": {}
}
```

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `keywords` | Yes | A list of keywords to search for when looking for relevant social media bios and posts that may contain emails. |
| `location` | No | A location to filter results. Leave it empty to search without location filtering. |
| `platform` | No | Select which social media platform you want to target (e.g., `Instagram`, `LinkedIn`, `Twitter/X`, etc.). Defaults to `Instagram`. |
| `customDomains` | No | List of custom email domains to focus extraction on (the actor uses these to decide which emails to keep). Defaults to `["@gmail.com", "@yahoo.com"]`. |
| `maxEmails` | No | The maximum number of emails to collect. The actor stops once this limit is reached. Defaults to `20`. |
| `proxyConfiguration` | No | Proxy settings for the Actor (configure how proxying should work for the run). |

***

### Output

The actor saves each discovered email as a separate JSON row in the dataset.

```json
[
  {
    "platform": "Instagram",
    "site": "instagram.com",
    "keyword": "marketing",
    "title": "No data",
    "description": "No data",
    "url": "https://example.com/some-profile-page",
    "email": "contact@example.com",
    "proxyGroups": ["RESIDENTIAL"]
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `platform` | string | The platform selected for this run (from your `platform` input). |
| `site` | string | The website domain mapped from the selected platform. |
| `keyword` | string | The keyword currently being used when the email was found. |
| `title` | string | The result title text associated with the discovered email (may be `No data`). |
| `description` | string | The result description text where the email was extracted from (may be `No data`). |
| `url` | string | The URL tied to the search result being processed. |
| `email` | string | The extracted email address (deduplicated across the run). |
| `proxyGroups` | array | The proxy configuration group(s) used for that extraction attempt (as provided/used during the run). |

Notes:
This actor pushes data incrementally via `Actor.push_data(...)` as each email is found, which makes it ideal for workflows like **CRM lead email scraper** pipelines and ongoing list building.

***

### How to use All-in-One Social Media Email Scraper (via Apify Console)

1. **Open Apify Console**\
   Log in at [console.apify.com](https://console.apify.com) and navigate to the **Actors** tab.

2. **Find the actor**\
   Search for **All-in-One Social Media Email Scraper** and open the actor page.

3. **Configure your INPUT**\
   In the **INPUT** section, use the built-in form and set:
   `keywords` (required), `platform`, and optionally `location`, `customDomains`, and `maxEmails`.

4. **Set proxies (optional but recommended for scale)**\
   Use the **Proxy configuration** field if you want to control proxy behavior for your run.

5. **Run the actor**\
   Click **Run**. During the run, watch logs for progress as emails are found and pushed into the dataset.

6. **Monitor progress**\
   The actor can resume later based on saved progress, and it stops once it reaches your `maxEmails` limit (if set).

7. **Open results in the DATASET tab**\
   After completion, open the dataset output to view scraped rows with fields like `email`, `platform`, `keyword`, and `url`.

8. **Export for your workflow**\
   Export the dataset to JSON or CSV from Apify so you can load it into your outreach stack, **bulk email scraping tool** workflows, or analysis tools.

No coding required—get accurate, structured results in minutes with this **all in one social media email scraper**.

***

### Advanced features & SEO optimization

- 🧠 **Engineered for social media email finder workflows**: Designed specifically for extracting emails from social media profiles, bios, and posts relevant to your keywords
- 🎯 **Better targeting with email-domain filters**: Use `customDomains` to make this **email scraper for social media** output more actionable for outreach
- 🚦 **Timeout-aware, scalable runs**: Large searches or high `maxEmails` can take longer; for bigger batches, you can increase timeout in Run Options
- 🔎 **Structured “row per email” results**: Each extracted email is pushed immediately with context fields (`title`, `description`, `url`)—helpful for **website and social email scraping** style use cases
- 🔄 **Resume-friendly progress tracking**: If you pause and rerun, progress is saved so you don’t restart from scratch (great for **bulk email scraping tool** jobs)

***

### Best use cases

- 🚀 **B2B sales teams**: Build a targeted **CRM lead email scraper** list by combining niche keywords with the domains you want
- 🎓 **Market researchers**: Extract contact emails from public social profiles to support profiling, outreach, and lead scoring research
- 💼 **Recruiters**: Find emails for potential candidates by searching for role-related keywords and filtering by email domains
- 📣 **Influencer marketing managers**: Use a platform-focused run to **extract emails from social media** profiles for outreach campaigns
- 🧾 **Data analysts**: Combine `platform`, `keyword`, `url`, and extracted `email` fields for structured analysis of public contact availability
- 🛠️ **Developer workflows**: Feed dataset rows into your automation pipelines for enrichment, deduping, and downstream CRM updates
- 🧠 **Growth teams**: Quickly test outreach segments by running different `keywords` and comparing results at scale

***

### Technical specifications

- **Supported Input Formats**
  - ✅ Actor form / `input.json` object using: `keywords`, `location` (optional), `platform` (optional), `customDomains` (optional), `maxEmails` (optional), `proxyConfiguration` (optional)

- **Proxy Support**
  - ✅ Proxy configuration supported via `proxyConfiguration`
  - ✅ Includes proxy resilience and a fallback path when no emails are found

- **Retry Mechanism**
  - ✅ Built with resilience (includes retries and fallbacks when requests fail)

- **Dataset Structure**
  - ✅ Dataset rows are pushed incrementally as emails are discovered (each row includes `platform`, `site`, `keyword`, `title`, `description`, `url`, `email`, `proxyGroups`)

- **Rate Limits & Performance**
  - ✅ Uses controlled concurrency for page scraping (implemented with a semaphore for multiple concurrent requests)

- **Limitations**
  - ❌ Results depend on publicly available email content on pages related to your keywords and email-domain filters
  - ❌ Higher `maxEmails` does not guarantee you’ll reach that number—emails are found based on what’s present in public data

***

### FAQ

#### What platforms are supported by the All-in-One Social Media Email Scraper?

✅ You can choose from a wide set of platforms in the `platform` input, including popular options like Instagram, LinkedIn, Facebook, YouTube, Twitter/X, and many others listed in the actor’s platform selector.

#### How does keyword filtering work?

✅ The actor uses the `keywords` you provide to look for relevant public social media profile content (such as bios and posts) that may contain email addresses related to those keywords.

#### Can I restrict results to specific email domains?

✅ Yes. Use `customDomains` to provide the email domains you want the actor to keep. This is especially helpful when building a **lead generation email scraper** list for specific org types or regions.

#### What does `maxEmails` do?

✅ `maxEmails` sets a cap on how many unique emails the actor will collect. The scraper stops once this limit is reached, helping you control run time and scraping cost.

#### Do I need to set proxies?

✅ It’s optional, but recommended for reliability—especially for larger searches. The actor supports `proxyConfiguration` and includes resilience/fallback behavior when no results appear.

#### What output will I get?

✅ The dataset includes one row per found email with fields: `platform`, `site`, `keyword`, `title`, `description`, `url`, `email`, and `proxyGroups`.

#### Can I resume a run if it stops early?

✅ Yes. The actor saves progress so it can resume based on stored cursor state and already seen emails.

#### Is this actor extracting emails from private accounts?

❌ No. This actor works with **publicly accessible sources** only and looks for emails present in publicly visible social content related to your keywords and filters.

***

### Support & feature requests

If you’re using this **All-in-One Social Media Email Scraper** for outreach or research, we’d love to hear how it’s working for you.

- 💡 **Feature Requests**: For example, CSV export enhancements, additional filtering options, or more customization for what gets included in the dataset rows.
- 📧 **Contact**: Send your message to <dataforleads@gmail.com>

Your feedback directly shapes what we build next for **social media email finder** workflows.

***

- *The **All-in-One Social Media Email Scraper** is a comprehensive, SEO-optimized way to extract email leads from public social media sources—at scale.*
- *Run it with smart keywords and domain filters to turn social profiles into actionable outreach lists faster.*

***

### Disclaimer

This tool only accesses **publicly accessible sources**. It does not access private profiles, authenticated data, or password-protected content. Legal compliance (including GDPR, CCPA, applicable spam regulations, and each platform’s Terms of Service) is the user’s responsibility.

If you need a data removal request, contact us at <dataforleads@gmail.com>.

Use this **All-in-One Social Media Email Scraper** responsibly, ethically, and for legitimate purposes only.

# Actor input Schema

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

A list of keywords to search for.

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

Location to filter search results.

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

Select platform.

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

List of custom email domains

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

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

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

Configure proxies for this Actor.

## Actor input object example

```json
{
  "keywords": [
    "founder",
    "marketing"
  ],
  "location": "",
  "platform": "Instagram",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "keywords": [
        "founder",
        "marketing"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/all-social-media-email-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": [
        "founder",
        "marketing",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("solid-scraper/all-social-media-email-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "keywords": [
    "founder",
    "marketing"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ]
}' |
apify call solid-scraper/all-social-media-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/AVwMATdgJoAiX3qPk/builds/odCqLg4O5ETcten7F/openapi.json
