# Facebook Page Details Scraper (`fetch_cat/facebook-page-details-scraper`) Actor

Extract public Facebook Page details, contacts, engagement metrics, profile images, and lead-ready metadata from Page URLs or handles.

- **URL**: https://apify.com/fetch\_cat/facebook-page-details-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Social media, Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.95 / 1,000 page detail saveds

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Facebook Page Details Scraper

Extract public Facebook Page details, contacts, engagement metrics, profile images, and lead-ready metadata from Page URLs or handles.

Facebook Page Details Scraper turns a list of public Pages into one normalized record per Page. Use it for recurring lead generation, CRM enrichment, market research, competitor monitoring, and automated social intelligence workflows.

### At a glance

- **Input:** Facebook Page URLs or handles such as `NASA` or `https://www.facebook.com/Meta`.
- **Output:** One detail record per public Page.
- **Key data:** Page ID, name, description, public contact data, likes, followers, talking-about counts, image, rating, categories, and social links.
- **Exports:** JSON, CSV, Excel, XML, RSS, API, webhooks, and MCP through Apify datasets.
- **Access:** Public logged-out Page information only; no Facebook credentials are requested.

### Ready-to-run examples

Open a public example to inspect its input, run it, or reuse it as a task:

- [Export Facebook Brand Page Details](https://apify.com/fetch_cat/facebook-page-details-scraper/examples/facebook-brand-page-details)
- [Export Facebook Page Handles as Leads](https://apify.com/fetch_cat/facebook-page-details-scraper/examples/facebook-page-handles-to-leads)

### Example input

```json
{
  "pageUrls": [
    "https://www.facebook.com/NASA",
    "Meta"
  ],
  "maxItems": 2
}
```

### Example output

```json
{
  "input": "https://www.facebook.com/NASA",
  "url": "https://www.facebook.com/NASA/",
  "handle": "NASA",
  "pageId": "100044561550831",
  "name": "NASA - National Aeronautics and Space Administration",
  "title": "NASA - National Aeronautics and Space Administration",
  "description": "Explore the universe and discover our home planet.",
  "bio": null,
  "categories": [],
  "website": "https://www.nasa.gov/",
  "email": null,
  "phone": null,
  "address": null,
  "profileImageUrl": "https://scontent...fbcdn.net/...png",
  "likesCount": 28721135,
  "likesDisplay": "28,721,135 likes",
  "followersCount": null,
  "followersDisplay": null,
  "talkingAboutCount": 155816,
  "talkingAboutDisplay": "155,816 talking about this",
  "isVerified": null,
  "rating": null,
  "ratingCount": null,
  "socialLinks": [],
  "scrapedAt": "2026-09-06T00:00:00.000Z",
  "sourceStatus": "complete"
}
```

Values are returned only when they are visible on the public Page. Nullable fields are not inferred from unrelated viewer or proxy data.

### Who is it for?

This Actor is designed for sales and lead-generation teams, CRM operators, market researchers, social-media analysts, agencies, and developers who need repeatable public Facebook Page records.

### What you can do

- **Generate leads:** collect public websites, email addresses, phone numbers, and addresses shown on business Pages.
- **Enrich CRM records:** attach canonical Page URLs, Page IDs, names, descriptions, categories, and profile images.
- **Monitor competitors:** schedule recurring runs and compare public descriptions and engagement counts over time.
- **Research markets:** build structured Page datasets for brands, organizations, venues, nonprofits, and local businesses.
- **Power automations:** connect datasets to Google Sheets, n8n, Make, Zapier, webhooks, or your own application.
- **Use with AI agents:** run the Actor through Apify MCP and analyze normalized Page records in an agent workflow.

### Input settings

| Setting | JSON key | Description |
| --- | --- | --- |
| Facebook Pages | `pageUrls` | Public Page URLs or handles. Accepts up to 500 entries. |
| Start URLs | `startUrls` | Alternative Apify request-list input for full public Page URLs. |
| Maximum Pages | `maxItems` | Global output limit from 1 to 500; default is 10. |
| Proxy | `proxyConfiguration` | Optional Apify Proxy configuration for public Pages unavailable from direct access. |

Duplicate normalized Page URLs are processed once. Invalid hosts and URLs without a Page path are rejected before any network request.

### Output fields

| Field | Description |
| --- | --- |
| `input` | Original URL or handle supplied by the user. |
| `url` | Canonical public Facebook Page URL. |
| `handle` | Page handle parsed from the canonical URL. |
| `pageId` | Public Facebook Page/profile ID when visible. |
| `name`, `title` | Normalized Page name and full public title. |
| `description`, `bio` | Public Page description or intro text. |
| `categories` | Public Page categories when available. |
| `website` | Public external website shown by the Page. |
| `email`, `phone`, `address` | Public lead contact information when visible. |
| `profileImageUrl` | Public profile image URL. |
| `likesCount`, `likesDisplay` | Numeric and display versions of public Page likes. |
| `followersCount`, `followersDisplay` | Numeric and display versions of public followers. |
| `talkingAboutCount`, `talkingAboutDisplay` | Numeric and display versions of the public talking-about metric. |
| `isVerified` | `true` when an explicit public verification marker is visible; otherwise `null`. |
| `rating`, `ratingCount` | Public rating/review summary when visible. |
| `socialLinks` | Explicit public Instagram, LinkedIn, X, YouTube, Pinterest, or Telegram links. |
| `scrapedAt` | ISO timestamp for the record. |
| `sourceStatus` | `complete` or `partial`, depending on public-field availability. |

### Input recipes

#### Collect local-business leads

```json
{
  "pageUrls": [
    "https://www.facebook.com/example-business-one",
    "https://www.facebook.com/example-business-two"
  ],
  "maxItems": 10
}
```

#### Monitor known Pages

```json
{
  "startUrls": [
    { "url": "https://www.facebook.com/NASA" },
    { "url": "https://www.facebook.com/Meta" }
  ],
  "maxItems": 2
}
```

Schedule the second recipe weekly or monthly and compare records by `pageId` or `url`.

### Pricing

This Actor uses pay-per-event pricing:

- A small one-time `start` event is charged when a valid run begins.
- One `result` event is charged for each Facebook Page record saved.
- Invalid or unavailable inputs that do not produce records are not charged as results.
- Volume discounts depend on your Apify plan. See the live [Pricing tab](https://apify.com/fetch_cat/facebook-page-details-scraper/pricing) for current rates.

### API usage

#### JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/facebook-page-details-scraper').call({
  pageUrls: ['NASA', 'Meta'],
  maxItems: 2,
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/facebook-page-details-scraper').call(run_input={
    'pageUrls': ['NASA', 'Meta'],
    'maxItems': 2,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~facebook-page-details-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"pageUrls":["NASA","Meta"],"maxItems":2}'
```

### MCP and AI agents

Connect an AI client to the focused Apify MCP endpoint:

```text
https://mcp.apify.com?tools=fetch_cat/facebook-page-details-scraper
```

Add it with the Claude CLI:

```bash
claude mcp add apify https://mcp.apify.com?tools=fetch_cat/facebook-page-details-scraper
```

Or add this server configuration to an MCP-compatible client:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/facebook-page-details-scraper"
    }
  }
}
```

Example prompt: “Extract public contact and engagement details for these Facebook Pages and return a lead table.”

### Tips

- Start with two or three Page URLs before scaling a large list.
- Use canonical public Page URLs when available.
- Schedule recurring inputs to track changes over time.
- Join records using `pageId` when present and fall back to canonical `url`.
- Treat nullable contact fields as “not publicly visible,” not as evidence that the business has no contact method.

### Limits

- Only public Facebook Pages visible without logging in are supported.
- Private profiles, private groups, comments, reactions, and login-only details are out of scope.
- Age-gated, region-restricted, removed, or temporarily challenged Pages may not return a record.
- Facebook can vary public fields by Page and can change its public presentation.
- Contact details and ratings are returned only when explicitly present in public Page information.

### FAQ

**Does this require Facebook cookies, login, or an access token?**\
No. Do not provide Facebook credentials. The Actor works with information available on public Pages.

**Can I export Facebook Page leads to CSV or Excel?**\
Yes. Open the run dataset and select JSON, CSV, Excel, XML, RSS, or another Apify export format.

**Can I run it through an API or MCP?**\
Yes. Use the Apify REST API, JavaScript/Python clients, webhooks, schedules, or the focused MCP endpoint above.

**Why are some fields null?**\
Facebook does not expose every field on every logged-out Page. The Actor keeps unavailable values null instead of guessing.

**Why did a URL return no record?**\
The URL may not identify a public Page, or the Page may be removed, private, restricted, or unavailable to logged-out visitors.

**Is this the same as a Facebook posts scraper?**\
No. This Actor intentionally returns one Page-detail record per input. Use a dedicated post scraper when you need posts or comments.

### Related actors

- [Facebook Pages Scraper](https://apify.com/fetch_cat/facebook-pages-scraper)
- [Facebook Post Search Scraper](https://apify.com/fetch_cat/facebook-post-search-scraper)
- [Facebook Groups Search Scraper](https://apify.com/fetch_cat/facebook-groups-search-scraper)
- [Facebook Ads Library Scraper](https://apify.com/fetch_cat/facebook-ads-library-scraper)
- [Facebook URL to ID Scraper](https://apify.com/fetch_cat/facebook-url-to-id-scraper)

### Support

Open an issue from the Actor page if a public Page fails or a field looks wrong. Include the run URL or ID, input JSON, one example public Page URL, expected result, and actual dataset row.

### Privacy and responsible use

Use this Actor only for lawful public-data workflows. Respect applicable terms, privacy rules, and data-protection requirements. Avoid collecting or retaining unnecessary personal or sensitive information.

# Actor input Schema

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

Public Facebook Page URLs or handles to extract.

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

Alternative Apify request-list input.

## `maxItems` (type: `integer`):

Global maximum number of unique Page records.

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

Optional Apify Proxy configuration for public Pages unavailable from direct transport.

## Actor input object example

```json
{
  "pageUrls": [
    "https://www.facebook.com/NASA"
  ],
  "maxItems": 2
}
```

# Actor output Schema

## `overview` (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 = {
    "pageUrls": [
        "https://www.facebook.com/NASA"
    ],
    "maxItems": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/facebook-page-details-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/NASA"],
    "maxItems": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/facebook-page-details-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 '{
  "pageUrls": [
    "https://www.facebook.com/NASA"
  ],
  "maxItems": 2
}' |
apify call fetch_cat/facebook-page-details-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fetch_cat/facebook-page-details-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/hIHBXp0QaUuoG2lRO/builds/2ULahEausK0l3HoVC/openapi.json
