# Facebook Page Contact Scraper (`lergassy/facebook-page-contact-scraper`) Actor

\[$6/1K pages with contacts] E-mails and phones from Facebook Pages: the page's public contacts, plus the e-mail from the business website when the page has none, with Instagram, WhatsApp and other links. Pages without contacts are free.

- **URL**: https://apify.com/lergassy/facebook-page-contact-scraper.md
- **Developed by:** [Matvey](https://apify.com/lergassy) (community)
- **Categories:** Lead generation, Social media, Agents
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $4.20 / 1,000 page with contacts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**Facebook Page Contact Scraper** takes a list of **Facebook Page URLs** and returns their **public e-mail, phone, website, address and social links** (Instagram, WhatsApp, TikTok, YouTube, X, LinkedIn). When a page shows no e-mail, the Actor opens the **business website** — homepage and one contact page — and takes the e-mail from there.

**$0.006 per page with a contact.** Pages without an e-mail or phone are **free**. No Facebook account, no cookies, no login, no start fee.

### What is Facebook Page Contact Scraper?

Local businesses often keep Facebook as their main page, and many put their e-mail and phone right in the intro. Many others only link their website. This Actor collects both in one pass, so a list of Facebook pages — from Google Maps, a directory or a competitor's followers — becomes an outreach list. You pay only for rows you can actually use.

### What is in every row

| Field | Meaning |
|---|---|
| `email`, `emails`, `emailSource` | Best e-mail, all e-mails found, and whether it came from Facebook or the website |
| `phone` | Phone from the page |
| `website`, `address`, `latitude`, `longitude` | Where the business is |
| `instagram`, `whatsapp`, `tiktok`, `youtube`, `x`, `linkedin` | Social links from the page and the website |
| `name`, `category`, `followers`, `rating`, `hours` | Context for your outreach |
| `pageUrl`, `pageId`, `username` | The page |

### How much does it cost?

| Event | Price |
|---|---|
| Page with an e-mail or phone | **$0.006** |

- The website lookup is included.
- Pages without contacts: **$0** — left out, or listed for free if you switch **Only pages with contacts** off.
- **Count only e-mails as a contact** on: pages with a phone but no e-mail are free too.
- Pages that fail or stay behind the login wall: **$0**.

#### Bulk export: what 50,000 rows actually cost

This Actor is built for bulk jobs — thousands of pages in one run, or a weekly schedule. There is **no
fee per run, no fee per page visit and no proxy charge**: you pay for the rows you keep.

| Job | This Actor | Most-used Actor in this category |
|---|---|---|
| 50,000 pages, all with contacts | **$300** | $650 |
| 50,000 pages, 60% with contacts | **$180** | $650 |

Checked on the Apify Store on 23 September 2026 against the Actor with the most monthly users for Facebook page contacts
($0.013 per page, contacts or not). Some Actors here ask less per row — this table compares against the one buyers actually use most.

### How to use it in three steps

1. Paste Facebook page URLs or usernames — one per line.
2. Keep **Look for the e-mail on the website** on for the most e-mails.
3. Press **Start**, then download JSON, CSV or Excel — or send the rows to your CRM through n8n, Make or Zapier.

### ⬇️ Input

```json
{
  "pages": ["https://www.facebook.com/balizoopark", "shakeshack", "katzsdeli"],
  "searchWebsite": true,
  "onlyWithContacts": true
}
```

### ⬆️ Output

```json
{
  "type": "page",
  "input": "potatoheadbali",
  "name": "Potato Head",
  "pageUrl": "https://www.facebook.com/potatoheadbali",
  "category": "Beach Resort",
  "email": "seminyak@potatohead.co",
  "emails": [
    "seminyak@potatohead.co",
    "hello@mineral.co.id"
  ],
  "emailSource": "facebook",
  "phone": "+62 361 6207979",
  "website": "https://seminyak.potatohead.co/",
  "address": "Jalan Petitenget no. 51B, Seminyak, Badung, Indonesia, Bali",
  "instagram": "https://www.instagram.com/potatoheadbali",
  "youtube": "https://www.youtube.com/channel/UCMms6Vm88v3Kll9Rrj5Bahg",
  "linkedin": "https://www.linkedin.com/company/potatohead",
  "whatsapp": null,
  "followers": 187502,
  "rating": "92% recommend (34,504 reviews)",
  "hasContact": true,
  "charged": true,
  "scrapedAt": "2026-09-23T12:22:11.815Z"
}
```

### Use cases

#### Local business outreach

Restaurants, hotels, clinics, gyms — Facebook pages from Google Maps become e-mail and WhatsApp lists.

#### Agency prospecting

Businesses with a Facebook page but a weak website: e-mail, phone and Instagram in one row.

#### CRM enrichment

Add e-mail, phone and socials to the Facebook URLs you already have.

#### AI sales agents

Through the Apify MCP server an agent can turn a list of pages into contacts and draft the first message.

### Integrations

Every run is available through the Apify API, and the Actor works out of the box with n8n, Make, Zapier, Google Sheets, HubSpot (via Zapier/Make) and the Apify MCP server.

### FAQ

**Do I need a Facebook account or cookies?** No. Nothing is logged in.

**How many pages have a contact?** For local businesses usually well over half; big brands often publish only a website. You pay only for pages where something was found.

**Where does the e-mail come from?** `emailSource` says: `facebook` (the page intro) or `website` (the business site).

**Do you verify e-mails?** No — they are the addresses the business published.

**Is this legal?** The Actor reads information that businesses publish for customers. Use it in line with Facebook's terms, anti-spam rules and data protection law (GDPR and similar).

# Actor input Schema

## `pages` (type: `array`):

Page URLs, usernames or page ids, one per line — <b>https://www.facebook.com/nike</b>, <b>shakeshack</b>, <b>facebook.com/profile.php?id=100057548120354</b>. Thousands per run.

## `searchWebsite` (type: `boolean`):

When the page shows no e-mail, open the business website (homepage and one contact page) and take the e-mail and social links from there. Included in the price.

## `onlyWithContacts` (type: `boolean`):

Leave out pages without an e-mail or phone. When off, they are listed too — and still free.

## `requireEmail` (type: `boolean`):

On: a page with a phone but no e-mail counts as 'no contact' — not delivered and not charged.

## `concurrency` (type: `integer`):

How many pages to open at the same time.

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

Every page is opened on a fresh Apify datacenter address — Facebook shows public pages to new visitors. Pick residential only if many pages come back with the login wall.

## Actor input object example

```json
{
  "pages": [
    "https://www.facebook.com/nike",
    "https://www.facebook.com/balizoopark",
    "https://www.facebook.com/shakeshack"
  ],
  "searchWebsite": true,
  "onlyWithContacts": true,
  "requireEmail": false,
  "concurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One row per Facebook Page with an e-mail or phone, plus website and social links.

# 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 = {
    "pages": [
        "https://www.facebook.com/nike",
        "https://www.facebook.com/balizoopark",
        "https://www.facebook.com/shakeshack"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("lergassy/facebook-page-contact-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 = {
    "pages": [
        "https://www.facebook.com/nike",
        "https://www.facebook.com/balizoopark",
        "https://www.facebook.com/shakeshack",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("lergassy/facebook-page-contact-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "pages": [
    "https://www.facebook.com/nike",
    "https://www.facebook.com/balizoopark",
    "https://www.facebook.com/shakeshack"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call lergassy/facebook-page-contact-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lergassy/facebook-page-contact-scraper"
        }
    }
}
```

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5NWOiqfAfw5IrSlz7/builds/pfwwSg4ajT9J8atkO/openapi.json
