# Facebook Page Scraper - Email, Phone, Website Leads (`hasnainnisar67/facebook-page-scraper`) Actor

Scrape public Facebook business pages for email, phone, website, address, category, about, followers & likes. Bulk URLs, no login or Graph API. Ideal for B2B lead generation.

- **URL**: https://apify.com/hasnainnisar67/facebook-page-scraper.md
- **Developed by:** [Hasnain Nisar](https://apify.com/hasnainnisar67) (community)
- **Categories:** Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$4.99 / 1,000 page scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

The **Facebook Page Scraper** extracts contact details and business metadata from public [Facebook](https://www.facebook.com) business pages — email, phone, website, address, follower count, likes, category, and the about section — from a single page URL. Pass one URL or a bulk list and get clean, structured JSON with no Facebook login and no Graph API token. It's built for **B2B lead generation**, **local-business prospecting**, and **CRM enrichment**, turning any list of Facebook pages into ready-to-use outreach data.

### What does the Facebook Page Scraper Actor do?

The Facebook Page Scraper is a no-code lead-extraction tool that reads public Facebook business pages and returns each page's contact information and metadata as JSON, CSV, or Excel. It loads pages with a stealth browser, dismisses cookie banners, and harvests the visible contact data — so you get the real email, phone, and website rather than guessed values. Pass an array of URLs to enrich an entire prospect list in one run.

- **Extract emails from Facebook pages** — pull the primary contact email shown on each page
- **Extract phone numbers from Facebook pages** — captured from `tel:` links and visible text (E.164 + US/CA formats)
- **Find the business website** — the first real external link, with social URLs filtered out
- **Get the business address** — full street address when listed
- **Scrape follower and like counts** — for qualifying and prioritizing pages
- **Get business category and about section** — e.g. "Restaurant", "Software Company"
- **Bulk Facebook page scraping** — pass a list of URLs and run them in sequence
- **No Facebook login or Graph API token** — works on public pages

### What data can I extract from a Facebook page?

Each dataset record contains the following fields:

| Field | Description |
|-------|-------------|
| `url` | The Facebook page URL that was scraped |
| `name` | Page display name |
| `email` | Primary contact email shown on the page |
| `phone` | Phone number (E.164 / US-CA formats) |
| `website` | First non-social external website URL |
| `category` | Business category (e.g. "Sportswear Store") |
| `about` | Short business description / about text |
| `followers` | Current follower count (e.g. "39.5M") |
| `likes` | Total page likes |
| `address` | Full business street address when listed |
| `error` | Set with a clear reason if the page needs login or hits a checkpoint; otherwise `null` |

### How to scrape a Facebook page (step-by-step)

1. Open the Facebook Page Scraper on Apify and click **Try for free**.
2. Add one or more **Facebook page URLs** to `pageUrls` (page name or numeric page ID both work).
3. Keep the default **residential proxy** for accurate English-locale page content.
4. Click **Start** and let the actor load each page and harvest its contact data.
5. Review results in the dataset — name, email, phone, website, followers, and more per page.
6. Export to **JSON, CSV, Excel, or Google Sheets**, or pull results via the Apify API straight into your CRM.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `pageUrls` | array | — | One or more public Facebook business page URLs (e.g. `facebook.com/Nike`, `facebook.com/<page-id>`). Pages requiring login are skipped with an error. **Required.** |
| `proxyConfiguration` | object | Apify residential proxy | Routes through Apify Proxy. US residential is recommended for accurate English-locale content. |

Example input:

```json
{
    "pageUrls": [
        "https://www.facebook.com/Nike",
        "https://www.facebook.com/100064765432101",
        "https://www.facebook.com/dominoes"
    ]
}
````

### Output example

```json
{
    "url": "https://www.facebook.com/Nike",
    "name": "Nike",
    "email": "press@nike.com",
    "phone": "+1 800 806 6453",
    "website": "https://www.nike.com",
    "category": "Sportswear Store",
    "about": "Just Do It.",
    "followers": "39.5M",
    "likes": "39.4M",
    "address": "One Bowerman Drive, Beaverton, OR",
    "error": null
}
```

### Use cases

- **B2B lead generation** — extract email, phone, and website for cold outreach at scale.
- **Local business prospecting** — build lists of restaurants, gyms, salons, and service businesses.
- **CRM enrichment** — append Facebook-derived contact info to existing records.
- **Affiliate and partner research** — assemble lists of partner candidates in your niche.
- **Influencer outreach** — qualify pages by follower count before pitching.
- **Market research** — categorize and profile businesses across a region.

### Pricing

The Facebook Page Scraper runs on Apify's usage-based pricing — you pay for the compute units and residential proxy traffic each run uses, with no separate subscription. A typical page completes in 8–15 seconds (memory ~1 GB for Chromium), and a bulk run of 50 pages finishes in roughly 10 minutes. See the actor's **Pricing** tab for current rates and free-tier credits.

### Why this Facebook Page Scraper?

Meta's Graph API gates most page contact data behind tokens, permissions, and review. This actor skips all of that: it loads the public page like a real browser and extracts email via regex on rendered text, phone via `tel:` links with strict 7–15 digit validation, the website by enumerating external links and filtering out social URLs, and follower/like/about/category/address via tuned regex and DOM selectors with fallbacks. The result is accurate, structured lead data straight from public pages — no API approval needed.

### FAQ

#### Is it legal to scrape Facebook pages?

This actor only collects publicly available data from public business pages that anyone can view. Scraping public data is broadly permitted, but you are responsible for complying with Facebook's Terms of Service and applicable laws such as GDPR and CCPA when storing or using contact data — particularly for outreach and commercial use.

#### Do I need a Facebook login or Graph API token?

No. The actor works on public business pages without any login or Graph API token. Personal profiles, private pages, and login-walled pages cannot be scraped.

#### Why is the `email` field sometimes empty?

Many pages don't publish a contact email — some list only a phone number or a contact form. The actor extracts what is actually visible on the page; it does not guess or fabricate addresses.

#### How much does it cost to scrape Facebook pages?

It runs on Apify's pay-as-you-go pricing, so cost scales with the number of pages and proxy traffic. Small runs are inexpensive and the free tier covers testing. See the Pricing tab for exact figures.

#### How many pages can I scrape and how fast?

You can pass a bulk list of URLs; pages are processed one at a time in ~8–15 seconds each, so ~50 pages finish in about 10 minutes. Pace very large batches for reliability.

#### Can I export the leads to CSV, Excel, JSON, or Google Sheets?

Yes. Every dataset can be exported to JSON, CSV, Excel, XML, or Google Sheets, or pulled into your CRM via the Apify API.

#### Will scraping trigger a Facebook block?

Pages are loaded one at a time through residential proxies with stealth-mode Playwright. For very large batches we recommend pacing — Apify's compute pricing already discourages over-bursting.

### Related actors

- [Facebook Ads Library Scraper](https://apify.com/hasnainnisar67/facebook-ads-library-scraper) — spy on competitor ads
- [Google Maps Leads Scraper](https://apify.com/hasnainnisar67/google-maps-leads-scraper) — local business leads with emails and phones
- [LinkedIn Profile Scraper](https://apify.com/hasnainnisar67/linkedin-profile-scraper) — bulk LinkedIn profile data
- [Instagram Downloader](https://apify.com/hasnainnisar67/instagram-downloader) — download Instagram media
- [Twitter / X Scraper](https://apify.com/hasnainnisar67/twitter-scraper) — bulk tweet and profile scraping

### Support

Need an extra field or a custom output format for your CRM? Open an issue on the actor's **Issues** tab. Custom lead-extraction solutions and integrations are available on request.

# Actor input Schema

## `pageUrls` (type: `array`):

One or more public Facebook business page URLs (e.g. facebook.com/Nike, facebook.com/<page-id>). Pages requiring login will be skipped with an error.

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

Routes Playwright through Apify Proxy. Use US residential for accurate English-locale page content.

## Actor input object example

```json
{
  "pageUrls": [
    "https://www.facebook.com/Nike"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "pageUrls": [
        "https://www.facebook.com/Nike"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("hasnainnisar67/facebook-page-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 = {
    "pageUrls": ["https://www.facebook.com/Nike"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("hasnainnisar67/facebook-page-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 '{
  "pageUrls": [
    "https://www.facebook.com/Nike"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call hasnainnisar67/facebook-page-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Page Scraper - Email, Phone, Website Leads",
        "description": "Scrape public Facebook business pages for email, phone, website, address, category, about, followers & likes. Bulk URLs, no login or Graph API. Ideal for B2B lead generation.",
        "version": "0.1",
        "x-build-id": "EAakudmOK4blem8So"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/hasnainnisar67~facebook-page-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-hasnainnisar67-facebook-page-scraper",
                "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/hasnainnisar67~facebook-page-scraper/runs": {
            "post": {
                "operationId": "runs-sync-hasnainnisar67-facebook-page-scraper",
                "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/hasnainnisar67~facebook-page-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-hasnainnisar67-facebook-page-scraper",
                "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": [
                    "pageUrls"
                ],
                "properties": {
                    "pageUrls": {
                        "title": "Facebook page URLs",
                        "type": "array",
                        "description": "One or more public Facebook business page URLs (e.g. facebook.com/Nike, facebook.com/<page-id>). Pages requiring login will be skipped with an error.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Routes Playwright through Apify Proxy. Use US residential for accurate English-locale page content.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
