# Website Contact & Social Media Extractor (`onescales/website-contact-social-media-extractor`) Actor

Extract emails, phone numbers, and social media profiles from any list of URLs. Supports 15+ platforms including LinkedIn, Twitter/X, Instagram, Facebook, TikTok, YouTube, WhatsApp, Telegram, Discord, and more. Perfect for lead generation, CRM enrichment, and bulk contact discovery.

- **URL**: https://apify.com/onescales/website-contact-social-media-extractor.md
- **Developed by:** [One Scales](https://apify.com/onescales) (community)
- **Categories:** Lead generation, SEO tools, Social media
- **Stats:** 9 total users, 7 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

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

**Website Contact & Social Media Extractor** pulls emails, phone numbers, and social media profiles from any list of URLs in one run. Whether you're building a lead list, enriching a CRM, auditing site contact pages, or running bulk prospecting — this tool gives you every contact signal a page exposes, structured and ready to export.

Unlike simple email scrapers, this actor uses a full headless Chrome browser (Puppeteer) so it works on JavaScript-rendered pages, and it extracts 15+ contact types including LinkedIn, Twitter/X, Instagram, Facebook, TikTok, YouTube, WhatsApp, Telegram, Discord, Pinterest, Snapchat, Threads, Reddit, and more — all in one pass.

**Use cases include:**
- **Lead generation** — scrape contact pages, team pages, or landing pages across hundreds of domains in one run
- **CRM enrichment** — add missing emails, phones, and social profiles to existing lead lists
- **Outreach research** — find the right social channels and email addresses before reaching out
- **Site audits** — discover which social platforms sites are active on
- **Agency prospecting** — bulk-check potential client sites for contact completeness
- **Partnership discovery** — identify social profiles and direct contacts for partnership outreach

---

### Features

- **15+ contact types** — emails, confirmed phones, uncertain phones, LinkedIn, Twitter/X, Instagram, Facebook, YouTube, TikTok, Pinterest, Discord, Telegram, WhatsApp, Snapchat, Threads, Reddit
- **JavaScript-rendered pages** — uses headless Chrome via Puppeteer, not just static HTML
- **iFrame support** — optionally scans iFrames embedded in the page for additional contacts
- **Confirmed vs uncertain phones** — `phones` contains numbers from `tel:` links (high confidence); `phonesUncertain` contains numbers extracted from plain text (may include false positives)
- **Resource blocking** — images, CSS, and fonts are blocked for faster, cheaper runs
- **Proxy support** — residential proxy by default for reliable access across sites
- **Budget capping** — automatically caps URLs processed to stay within your configured budget
- **Bulk-ready** — handles 1 to 10,000+ URLs

---

### How to Use

#### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `startUrls` | Request list | Yes | Pages to scrape. Accepts plain URLs or Apify request list format. |
| `checkIframes` | Boolean | No | Also extract contacts from embedded iFrames. Default: `true`. |
| `proxyConfiguration` | Object | No | Proxy settings. Residential proxy is recommended and set by default. |

**Example input:**

```json
{
    "startUrls": [
        { "url": "https://onescales.com" }
    ],
    "checkIframes": true,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
````

#### Output

One row per URL. Every row includes:

| Field | Description |
|---|---|
| `url` | The scraped page URL |
| `domain` | Root domain extracted from the URL |
| `emails` | Confirmed email addresses (from `mailto:` links and regex) |
| `phones` | Confirmed phone numbers (from `tel:` links) |
| `phonesUncertain` | Phone numbers extracted from plain text (may have false positives) |
| `linkedIns` | LinkedIn profile URLs |
| `twitters` | Twitter/X profile URLs |
| `instagrams` | Instagram profile URLs |
| `facebooks` | Facebook profile URLs |
| `youtubes` | YouTube channel URLs |
| `tiktoks` | TikTok profile URLs |
| `pinterests` | Pinterest profile URLs |
| `discords` | Discord server or user URLs |
| `telegrams` | Telegram channel or user URLs |
| `whatsapps` | WhatsApp contact URLs |
| `snapchats` | Snapchat profile URLs |
| `threads` | Threads profile URLs |
| `reddits` | Reddit profile or subreddit URLs |

**Example output row:**

```json
{
    "url": "https://onescales.com",
    "domain": "onescales.com",
    "emails": ["hello@onescales.com"],
    "phones": [],
    "phonesUncertain": [],
    "linkedIns": ["https://www.linkedin.com/company/onescales"],
    "twitters": ["https://twitter.com/onescales"],
    "instagrams": [],
    "facebooks": [],
    "youtubes": [],
    "tiktoks": [],
    "pinterests": [],
    "discords": [],
    "telegrams": [],
    "whatsapps": [],
    "snapchats": [],
    "threads": [],
    "reddits": []
}
```

***

### Tips

- **Contact pages extract better** — point the actor at `/contact`, `/about`, or `/team` pages for the richest results
- **iFrames** — some sites embed contact widgets or social feeds in iFrames. Keep `checkIframes: true` unless you're confident your targets don't use them
- **JavaScript-heavy sites** — the actor uses full Chrome, so content loaded via JavaScript is handled automatically

***

### Support

For bugs, feature requests, or questions — reach us at https://docs.google.com/forms/d/e/1FAIpQLSfsKyzZ3nRED7mML47I4LAfNh\_mBwkuFMp1FgYYJ4AkDRgaRw/viewform?usp=dialog

### Related Keywords

email extractor, email scraper, contact extractor, website email extractor, website email scraper, phone number extractor, contact scraper, contact phone number, contact email, social media scraper, bulk email finder, social media extractor, phone number extractor, lead generation, lead scraper, CRM enrichment, website scraper, contact page scraper, bulk email finder, email finder, social profile finder, outreach tool, prospecting tool, actor, AI, API, apify, at scale, automated, automation, batch, bulk, checker, converter, crawler, CSV, dataset, detector, downloader, Excel, export, exporter, extractor, fetcher, finder, generator, Google Sheets, HTML, ifttt, instant, JSON, lookup, make, make.com, mass, MCP, monitor, n8n, no-code, no API key required, parser, PDF, pipeline, report, scanner, schedule, scheduled, scraper, spreadsheet, tool, validator, webhook, workflow, XML, zapier

# Actor input Schema

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

Pages to scrape for contact and social media information.

## `checkIframes` (type: `boolean`):

Also extract contacts from iFrames embedded in the page.

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

Proxy settings for the crawler. Residential proxy is recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://onescales.com"
    }
  ],
  "checkIframes": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `contactResults` (type: `string`):

All extracted contact and social media data.

# 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://onescales.com"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("onescales/website-contact-social-media-extractor").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://onescales.com" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("onescales/website-contact-social-media-extractor").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://onescales.com"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call onescales/website-contact-social-media-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Website Contact & Social Media Extractor",
        "description": "Extract emails, phone numbers, and social media profiles from any list of URLs. Supports 15+ platforms including LinkedIn, Twitter/X, Instagram, Facebook, TikTok, YouTube, WhatsApp, Telegram, Discord, and more. Perfect for lead generation, CRM enrichment, and bulk contact discovery.",
        "version": "1.0",
        "x-build-id": "VgWjLyEWKN1TdQgt3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/onescales~website-contact-social-media-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-onescales-website-contact-social-media-extractor",
                "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/onescales~website-contact-social-media-extractor/runs": {
            "post": {
                "operationId": "runs-sync-onescales-website-contact-social-media-extractor",
                "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/onescales~website-contact-social-media-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-onescales-website-contact-social-media-extractor",
                "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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Pages to scrape for contact and social media information.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "checkIframes": {
                        "title": "Check iFrames",
                        "type": "boolean",
                        "description": "Also extract contacts from iFrames embedded in the page.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for the crawler. Residential proxy is recommended."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
