# Extract contacts & social links from any site (`lofomachines/contact-extractor`) Actor

Paste one or more website URLs and get every email address, phone number, and social media profile delivered in a clean, ready-to-use spreadsheet.

- **URL**: https://apify.com/lofomachines/contact-extractor.md
- **Developed by:** [Lofomachines](https://apify.com/lofomachines) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.99 / 1,000 websites

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 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 Information Extractor – Find Emails, Phones & Social Media From Any Website

Stop copying contact details by hand. Paste one or more website URLs and get every email address, phone number, and social media profile delivered in a clean, ready-to-use spreadsheet — in minutes.

Works on any website, in any language, including sites built with modern JavaScript frameworks. No coding required.

---

### What data does the Contact Extractor collect?

| Data | Examples |
|---|---|
| 📧 **Email addresses** | `hello@company.com`, `press@brand.com` |
| 📞 **Phone numbers** | `+1 (555) 123-4567`, `+39 02 1234567` |
| 📘 **Facebook** | Page URL |
| 📸 **Instagram** | Profile URL |
| 🐦 **Twitter / X** | Profile URL |
| 💼 **LinkedIn** | Company or personal profile URL |
| ▶️ **YouTube** | Channel URL |
| 🎵 **TikTok** | Profile URL |
| 📌 **Pinterest** | Profile URL |
| 💬 **WhatsApp** | Chat link |
| ✈️ **Telegram** | Channel or group URL |
| 🟢 **WeChat** | Official account link |
| 🔴 **Weibo** | Profile URL |
| 🎬 **Douyin** | Profile URL |
| 🎮 **Bilibili** | Channel URL |
| 🌸 **Xiaohongshu (RED)** | Profile URL |
| 🌐 **40+ more platforms** | VK, GitHub, Discord, Spotify, Reddit, Substack… |

Every platform gets its own column in the output. Platforms with no data appear as empty — no noise.

---

### How to extract contacts from a website

#### Step 1 — Paste the URLs

Enter one or more website URLs in the **Website URLs** field. You can add as many as you need — each one is processed separately and produces its own row in the results.

#### Step 2 — Click Start

That's it. The extractor automatically:
- finds the contact page, about page, legal page, and any other page likely to have contact details
- detects the type of website and adapts its approach accordingly
- searches in 15+ languages to make sure nothing is missed

#### Step 3 — Download the results

When the run finishes, open the **Output** tab and download your contacts as **JSON**, **CSV**, or **Excel** — ready to import into any CRM, spreadsheet, or outreach tool.

---

### Who uses this tool?

#### 🏢 Sales & B2B lead generation
Build targeted prospect lists with verified emails and direct phone numbers. Skip manual research and spend more time selling.

#### 📣 Marketing & outreach
Find the right contact for press, partnership, or influencer enquiries. Get email addresses and social profiles in one place.

#### 🔍 Market research & competitive intelligence
Discover which social channels competitors use, how they present contact information, and what communication platforms they support in different markets.

#### 🌍 International business development
The extractor recognises contact pages written in Chinese, Japanese, Arabic, Russian, and 10+ other languages — and supports all major regional social platforms including Weibo, Douyin, Kuaishou, VKontakte, and more.

#### 🗄️ CRM & database enrichment
Automatically enrich company records with up-to-date contact details and social profiles. Feed results directly into HubSpot, Salesforce, Airtable, or Google Sheets via the Apify API or built-in integrations.

---

### Output example

```json
{
  "sourceUrl": "https://example.com",
  "emails": ["hello@example.com", "press@example.com"],
  "phones": ["+1 (555) 123-4567"],
  "linkedin": ["https://linkedin.com/company/example"],
  "instagram": ["https://instagram.com/example"],
  "twitter":   ["https://twitter.com/example"],
  "youtube":   ["https://youtube.com/@example"],
  "facebook":  null,
  "weibo":     null
}
````

***

### How much does it cost?

The tool runs on Apify's pay-per-usage model. Most websites cost well under **$0.10** per run — often just a few cents. Larger or more complex websites may cost slightly more.

You can monitor usage in real time from the Apify Console and set spending limits to stay in control of your budget.

***

### Frequently asked questions

#### Does it work on any website?

Yes. The extractor automatically adapts to any website — whether it's a simple company page or a complex single-page application built with React, Vue, or Angular.

#### Can I extract contacts from multiple websites at once?

Yes. Enter as many URLs as you need in the **Website URLs** field. Each one is processed in sequence and returns its own row in the dataset.

#### Does it find contacts beyond the homepage?

Yes. It automatically discovers contact pages, about pages, legal pages, press pages, and team pages — checking over 100 known patterns across 15+ languages — so you get contacts that are buried deep in the site, not just what's on the front page.

#### Which social media platforms are supported?

All major global platforms: Facebook, Instagram, Twitter/X, LinkedIn, YouTube, TikTok, Pinterest, Snapchat, WhatsApp, Telegram, Discord, Reddit, GitHub, Twitch, Vimeo, Spotify, SoundCloud, Medium, Substack — plus all major Chinese and Russian platforms: Weibo, WeChat, Douyin, Bilibili, Xiaohongshu (RED), Kuaishou, Kwai, QQ, VKontakte, Odnoklassniki, and more.

#### Is there an API?

Yes. Every Apify actor can be triggered via the [Apify API](https://docs.apify.com/api/v2) from any language — Python, JavaScript, PHP, and more. Results are available as JSON or can be pushed directly to Google Sheets, Zapier, Make, or Airtable.

#### What if a website blocks automated tools?

The extractor uses advanced techniques to access websites reliably. For websites with very aggressive protection, try running the actor multiple times or contact us for a custom solution.

***

### Connect with your existing tools

- **Google Sheets** — export contacts directly with the Apify → Sheets integration
- **Zapier / Make** — trigger automated workflows when a run completes
- **Airtable** — push contact records into a base automatically
- **HubSpot / Salesforce** — enrich CRM records via REST API
- **Python / Node.js / PHP** — call the actor programmatically using the Apify client

***

### Need a custom solution?

Need to extract contacts at scale, add custom fields, or integrate with a specific platform? Open an issue in the **Issues** tab or reach out directly — we're happy to help.

# Actor input Schema

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

One or more website URLs to extract contact information from. Each URL is processed separately and produces one output record.

## Actor input object example

```json
{
  "startUrls": [
    "https://example.com",
    "https://another-company.com"
  ]
}
```

# 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 = {
    "startUrls": [
        "https://example.com"
    ]
};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Extract contacts & social links from any site",
        "description": "Paste one or more website URLs and get every email address, phone number, and social media profile delivered in a clean, ready-to-use spreadsheet.",
        "version": "1.0",
        "x-build-id": "Up0B18knaq61rcqHQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lofomachines~contact-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lofomachines-contact-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/lofomachines~contact-extractor/runs": {
            "post": {
                "operationId": "runs-sync-lofomachines-contact-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/lofomachines~contact-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-lofomachines-contact-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": "Website URLs",
                        "type": "array",
                        "description": "One or more website URLs to extract contact information from. Each URL is processed separately and produces one output record.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
