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

Scrape Facebook Page details from page links: name, followers, verified badge, category, bio, email, phone, website, address, hours, price range, rating and Instagram, X, YouTube, LinkedIn links. No login.

- **URL**: https://apify.com/parsebird/facebook-page-details-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 page details

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 Details Scraper

Facebook Page Details Scraper turns a list of [Facebook](https://www.facebook.com) Page links into one row of Page details each: name, follower count, verified badge, category, bio, confirmed owner, email, phone, website, address with map coordinates, opening hours, price range, services, rating, and links to the Page's Instagram, X (Twitter), YouTube, LinkedIn, Pinterest, Telegram, TikTok, Threads, and Snapchat accounts.

<table><tr>
<td style="border-left:4px solid #1877F2;padding:12px 16px;font-weight:600">
Paste up to 500 Facebook Page links, usernames, or IDs and get flat, spreadsheet-ready rows with 40+ fields per Page, including contact details from the Page's About tab, plus a clear error row for every link that can't be read. No Facebook login, cookies, or API key.
</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="3" style="padding:10px 14px;background:#1877F2;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">ParseBird Facebook Suite</span>
<span style="color:#D8E6FD;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Pages, posts, groups, reviews, ads &amp; media</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-user-posts-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook User Posts Scraper</a><br>
<span style="color:#78716C;font-size:11px">Posts from profiles and Pages</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-page-video-downloader" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Page Video Downloader</a><br>
<span style="color:#78716C;font-size:11px">Every video on a Page, MP4 links</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-media-downloader" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Media Downloader</a><br>
<span style="color:#78716C;font-size:11px">HD/SD links for videos, reels, photos</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-group-posts-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Public Group Posts Scraper</a><br>
<span style="color:#78716C;font-size:11px">Group posts, reactions, photos</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-group-profile-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Group Profile Scraper</a><br>
<span style="color:#78716C;font-size:11px">Group profiles, admins &amp; rules</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Page Reviews Scraper</a><br>
<span style="color:#78716C;font-size:11px">Recommendations, tags, comments</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-group-posts-comments-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Group Posts &amp; Comments Scraper</a><br>
<span style="color:#78716C;font-size:11px">Group posts with comments &amp; replies</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-ads-library-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Meta | Facebook Ads Library Scraper</a><br>
<span style="color:#78716C;font-size:11px">Ad Library ads, EU reach &amp; payers</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-reels-play-count-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Reels Play Count Scraper</a><br>
<span style="color:#78716C;font-size:11px">Exact plays for reels &amp; videos</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-group-insights-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Group Insights Scraper</a><br>
<span style="color:#78716C;font-size:11px">Group members, growth &amp; activity</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/facebook-marketplace-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Facebook Marketplace Scraper</a><br>
<span style="color:#78716C;font-size:11px">Listings, prices, sellers &amp; cars</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:33%;background:#E7F0FE">
<a href="https://apify.com/parsebird/facebook-page-details-scraper" style="color:#1877F2;text-decoration:none;font-weight:700;font-size:13px">Facebook Page Details Scraper</a><br>
<span style="color:#1877F2;font-size:11px;font-weight:600">You are here</span>
</td>
</tr>
</table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```text
Use Apify Actor parsebird/facebook-page-details-scraper to get details of Facebook Pages. Example with ApifyClient (Python): client.actor("parsebird/facebook-page-details-scraper").call(run_input={"pageUrls":["https://www.facebook.com/NASA"]}). Input: pageUrls array of strings (required; facebook.com/<page name> links, including links to a Page's tabs or posts, m./web. facebook.com links, profile.php?id= links, /pages/<name>/<id> and /people/<name>/<id> links, bare usernames and numeric IDs; up to 500 per run; the same Page entered twice is saved once); showVerifiedBadge boolean (default true; false leaves isVerified null); proxyConfiguration object (optional). Output: one flat row per Page with status "public": title, name, url, inputUrl, userId, adPageId (Ads Library page ID), image, imageAlt, isVerified, confirmedOwnerLabel, description (Facebook's meta description), bio, category [string, e.g. "Page","Deli"], followersCount, followersDisplay, followingCount, likesCount, likesDisplay, talkingAboutCount, checkinsCount, isBusinessPageActive, businessHours, businessPrice, businessPriceLevel (1-4), businessServices, email, emails [string], phone, phones [string], whatsapp, website, websites [string], address, mapsUrl, latitude, longitude, rating (e.g. "98% recommend (52,488 reviews)"), ratingCount, ratingRecommendPercent, languages [string], instagram, linkedin, pinterest, telegram, twitter, youtube, tiktok, threads, snapchat (URLs or null), socialLinks [{network, username, url}], scrapedAt (ISO). Failed inputs give a row with status "error", error, errorCode (400 invalid link, 403 login wall, 404 not available, 429/503 rate limited), inputUrl, scrapedAt; error rows are not charged. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.
```

### What is Facebook Page Details Scraper?

**Facebook Page Details Scraper** is a **Facebook Page data extraction tool** that reads a Page the way a logged-out visitor sees it: the Page header, the **Intro** card, and the **About › Contact and basic info** tab. For every Page link you give it, you get the **exact follower count**, the **verified badge**, the **category**, the **bio**, the **confirmed owner** Facebook lists on the Intro card, every **email, phone number, and website** the Page lists, the **address with latitude and longitude**, **opening hours**, **price range**, **services**, the **recommendation rating**, and the Page's **other social accounts**.

It works as a **Facebook Pages API alternative** for Page metadata: no Facebook account, cookies, or Graph API app review is needed. It also reads public profiles of people, such as creators and public figures. To try it, open the Actor, keep the two prefilled Pages, and click **Start**.

### What can Facebook Page Details Scraper do?

- 📇 **Collect contact details**: every email, phone number, WhatsApp number, and website listed on the Page.
- 📍 **Get the location**: the street address, a map link, and latitude and longitude.
- 👥 **Measure audience size**: exact followers, "talking about this," check-ins ("were here"), and likes where Facebook shows them.
- ✅ **Check trust signals**: verified badge, confirmed Page owner, and the "% recommend" rating with its review count.
- 🏪 **Read business info**: opening hours, price range, services such as "Dine-in · Outdoor seating," and category.
- 🔗 **Find social accounts**: Instagram, X (Twitter), YouTube, LinkedIn, Pinterest, Telegram, TikTok, Threads, and Snapchat links, each as its own column plus a combined `socialLinks` list.
- 🧾 **Batch hundreds of Pages**: up to 500 links, usernames, or IDs per run. Each Page that fails gets its own error row with a reason and code.
- ⏱️ **Automate it**: run on a schedule with [Apify schedules](https://docs.apify.com/platform/schedules), call it through the [Apify API](https://docs.apify.com/api/v2), or send results to Google Sheets, Make, Zapier, Slack, and more with [integrations](https://apify.com/integrations).
- 📁 **Export anywhere**: JSON, CSV, Excel, HTML, or XML.

### What data can you extract from Facebook Pages?

| Field | Description |
|-------|-------------|
| `name`, `title`, `url` | Page name, Facebook's page title (often with the city), and the Page link |
| `userId`, `adPageId` | The Page's profile ID and its Page ID used by the [Meta Ad Library](https://www.facebook.com/ads/library/) |
| `image`, `imageAlt` | Profile picture URL and its alt text |
| `isVerified` | `true` when the Page shows Facebook's verified badge |
| `confirmedOwnerLabel` | The organisation Facebook confirms is responsible for the Page |
| `bio`, `description` | The Page's intro text, and Facebook's meta description with counts |
| `category` | Page type and category, e.g. `["Page", "Deli"]` |
| `followersCount`, `followersDisplay` | Exact followers, e.g. `964474`, and Facebook's text "964K followers" |
| `talkingAboutCount`, `checkinsCount`, `likesCount` | "Talking about this," "were here," and likes (when shown) |
| `email`, `emails`, `phone`, `phones`, `whatsapp` | First and all emails and phones, and the WhatsApp number |
| `website`, `websites` | The Page's main website and every listed link |
| `address`, `mapsUrl`, `latitude`, `longitude` | Street address, map link, and coordinates |
| `businessHours`, `businessPrice`, `businessPriceLevel`, `businessServices` | Opening hours text, price range (e.g. `$$` and `2`), and services |
| `rating`, `ratingCount`, `ratingRecommendPercent` | e.g. "98% recommend (52,488 reviews)", `52488`, `98` |
| `instagram`, `twitter`, `youtube`, `linkedin`, `pinterest`, `telegram`, `tiktok`, `threads`, `snapchat` | Profile links on other networks |
| `socialLinks` | Every social account as `{network, username, url}` |
| `status`, `inputUrl`, `scrapedAt` | `public`, the value you entered, and the scrape time |

Rows for inputs that fail have `status: "error"`, `error` (the reason), `errorCode`, `inputUrl`, and `scrapedAt`.

### How to scrape Facebook Page details

1. Open [Facebook Page Details Scraper](https://apify.com/parsebird/facebook-page-details-scraper) and click **Start** or **Try for free**.
2. In **Page URLs**, paste one Page link per line, such as `https://www.facebook.com/NASA`. Usernames like `katzsdeli` and numeric IDs also work.
3. Leave **Include verified badge** on to get `isVerified`.
4. Click **Start**. Each Page takes a few seconds, and Pages run in parallel.
5. Open the **Output** tab. The **Page overview**, **Contact information**, **Engagement**, **Social media links**, and **Business information** views each show one group of fields.
6. Export the results as JSON, CSV, Excel, HTML, or XML, or get them through the API.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `pageUrls` | array of strings | **Yes** | — | Page links, usernames, or numeric IDs. Up to 500 per run |
| `showVerifiedBadge` | boolean | No | `true` | Add `isVerified` to each row. Off leaves it empty |
| `proxyConfiguration` | object | No | — | Optional. The Actor picks its own network route |

**Which Page links work?** `facebook.com/<page name>` links, including links to a Page's About, photos, or posts tabs, `m.facebook.com` and `web.facebook.com` links, `profile.php?id=` links, old `/pages/<name>/<id>` and `/people/<name>/<id>` links, bare usernames such as `katzsdeli` or `@katzsdeli`, and numeric IDs. The same Page entered in different forms is saved and charged once. Group, event, and Marketplace links aren't Pages and get an error row.

### Input / Output

**Example input**

```json
{
    "pageUrls": [
        "https://www.facebook.com/katzsdeli",
        "https://www.facebook.com/NASA",
        "pythonclcoding"
    ],
    "showVerifiedBadge": true
}
```

**Example output** (a real row; the image URL is shortened)

```json
{
  "title": "Katz's Delicatessen | New York NY",
  "name": "Katz's Delicatessen",
  "url": "https://www.facebook.com/katzsdeli",
  "inputUrl": "https://www.facebook.com/katzsdeli",
  "userId": "100064806517961",
  "adPageId": "89033874836",
  "image": "https://scontent-iad3-1.xx.fbcdn.net/v/t39.30808-1/347587684_597250122171933_7563996541647...",
  "imageAlt": "Katz's Delicatessen",
  "isVerified": false,
  "status": "public",
  "confirmedOwnerLabel": "KATZ DELICATESSEN OF HOUSTON STREET INC",
  "description": "Katz's Delicatessen, New York. 964,474 followers · 55,492 talking about this · 530,200 were here. New York City's most iconic deli.",
  "bio": "New York City's most iconic deli.",
  "category": ["Page", "Deli"],
  "followersCount": 964474,
  "followersDisplay": "964K followers",
  "followingCount": 0,
  "likesCount": null,
  "likesDisplay": null,
  "talkingAboutCount": 55492,
  "checkinsCount": 530200,
  "isBusinessPageActive": false,
  "businessHours": "Open now",
  "businessPrice": "$$",
  "businessPriceLevel": 2,
  "businessServices": "Dine-in · Outdoor seating · In-store pickup",
  "email": "cs@katzsdelicatessen.com",
  "emails": ["cs@katzsdelicatessen.com"],
  "phone": "(212) 254-2246",
  "phones": ["(212) 254-2246"],
  "whatsapp": null,
  "website": "http://katzsdelicatessen.com/",
  "websites": ["http://katzsdelicatessen.com/"],
  "address": "205 E Houston St, New York, NY, United States, 10002",
  "mapsUrl": "https://maps.google.com/maps?q=40.72222000%2C-73.98751000%28205+E+Houston+St%2C+New+York%2C+NY%2C+United+States%2C+New+York%29&hl=en",
  "latitude": 40.72222,
  "longitude": -73.98751,
  "rating": "98% recommend (52,488 reviews)",
  "ratingCount": 52488,
  "ratingRecommendPercent": 98,
  "languages": [],
  "instagram": "https://www.instagram.com/katzsdeli",
  "linkedin": null,
  "pinterest": null,
  "telegram": null,
  "twitter": null,
  "youtube": null,
  "tiktok": null,
  "threads": null,
  "snapchat": null,
  "socialLinks": [
    { "network": "instagram", "username": "katzsdeli", "url": "https://www.instagram.com/katzsdeli" }
  ],
  "scrapedAt": "2026-10-25T14:05:00.839Z"
}
```

**Example error row**

```json
{
  "status": "error",
  "error": "This Facebook page isn't available: it may not exist, or it is restricted (for example by age or country) or only visible to logged-in users",
  "errorCode": 404,
  "inputUrl": "https://www.facebook.com/thisdoesnotexist12345xyz",
  "scrapedAt": "2026-10-25T13:45:40.112Z"
}
```

Download results from the **Output** tab in JSON, CSV, Excel, HTML, or XML.

### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run = client.actor("parsebird/facebook-page-details-scraper").call(
    run_input={
        "pageUrls": [
            "https://www.facebook.com/katzsdeli",
            "https://www.facebook.com/NASA",
        ],
    }
)

for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    if row["status"] == "public":
        print(row["name"], row["followersCount"], row["email"], row["phone"], row["website"])
    else:
        print("Failed:", row["inputUrl"], row["error"])
```

### JavaScript API example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });

const run = await client.actor('parsebird/facebook-page-details-scraper').call({
    pageUrls: ['katzsdeli', 'https://www.facebook.com/pythonclcoding'],
    showVerifiedBadge: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items
    .filter((p) => p.status === 'public')
    .forEach((p) => console.log(p.name, p.category, p.address, p.instagram, p.rating));
```

See the [Python client docs](https://docs.apify.com/api/client/python/) and [JavaScript client docs](https://docs.apify.com/api/client/js/) for more options.

### Use cases

- **Lead generation**: turn a list of local business Pages into emails, phone numbers, websites, and addresses.
- **Data enrichment**: add follower counts, categories, and social links to a CRM or spreadsheet of brands.
- **Influencer and brand research**: compare audience size, verified status, and "talking about this" across Pages.
- **Local business monitoring**: track ratings, review counts, hours, and price range over time with scheduled runs.
- **Ad research**: get each Page's `adPageId` to look up its ads in the Meta Ad Library.
- **Link checking**: find removed or restricted Pages in a list. Each one gets an error row.

### How it works

1. You paste Page links, usernames, or IDs.
2. The Actor opens each Page and its **About › Contact and basic info** tab as a logged-out visitor.
3. It merges the two into one flat row, turning text such as "964,474 followers" into numbers, and saves an error row for any input it can't read.

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

**What is the price per Facebook Page?**

The Actor uses pay-per-event pricing: you pay for each Page saved. Compute and proxy usage are included in the event price, so there is no separate usage bill.

| Event | Free plan | Bronze | Silver | Gold |
|-------|-----------|--------|--------|------|
| `page-scraped` | $0.00699 (**$6.99 / 1,000**) | $0.00599 (**$5.99 / 1,000**) | $0.00549 (**$5.49 / 1,000**) | $0.00499 (**$4.99 / 1,000**) |

One `page-scraped` event is one successful Page row. Error rows are free, and a Page entered twice is charged once. The prefilled two-Page run costs about $0.014 on the Free plan, and 100 Pages cost about $0.70. Apify's free plan includes monthly platform credits you can use to try the Actor. You can also set a maximum cost per run; the Actor stops when it reaches it.

### Is it legal to scrape Facebook Pages?

**Is scraping Facebook Page data legal?**

The Actor only reads Page information that Facebook shows to anyone without logging in. Scraping publicly available data is generally legal in many jurisdictions, but contact details and the names on personal profiles can be personal data protected by laws such as GDPR and CCPA. Have a legitimate reason to collect the data, respect [Facebook's Terms](https://www.facebook.com/terms.php), and check with a lawyer if you're unsure. Read more in Apify's guide: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

### Other Facebook scrapers and related Actors

| Actor | Best for |
|-------|----------|
| [Facebook User Posts Scraper](https://apify.com/parsebird/facebook-user-posts-scraper) | Posts from public Facebook profiles and Pages |
| [Facebook Page Reviews Scraper](https://apify.com/parsebird/facebook-reviews-scraper) | Reviews and recommendations on Facebook Pages |
| [Facebook Page Video Downloader](https://apify.com/parsebird/facebook-page-video-downloader) | Videos from a Page's Videos tab with MP4 links |
| [Meta | Facebook Ads Library Scraper](https://apify.com/parsebird/facebook-ads-library-scraper) | Ads from the Meta Ad Library with EU reach and payer data |
| [Facebook Group Insights Scraper](https://apify.com/parsebird/facebook-group-insights-scraper) | Member counts, growth, and activity of Facebook groups |
| [Facebook Group Profile Scraper](https://apify.com/parsebird/facebook-group-profile-scraper) | Group profiles with admins and rules |
| [Facebook Media Downloader](https://apify.com/parsebird/facebook-media-downloader) | HD and SD links for single videos, reels, and photos |
| [Facebook Reels Play Count Scraper](https://apify.com/parsebird/facebook-reels-play-count-scraper) | Exact play counts for reels and videos |

### FAQ

**Why are email, phone, or social links empty for some Pages?**
The Actor returns what the Page itself lists. Many large brands, such as Coca-Cola, list only a website, while local businesses usually list a phone, email, address, and hours. Empty fields are `null` or `[]`.

**Why does `likesCount` show null?**
Facebook shows followers, not likes, on Pages today; in our tests no Page showed a likes figure, so `likesCount` was empty. It's filled only if Facebook shows likes for a Page.

**Why is `businessPrice` shown as `$$` in one run and `££` in another?**
Facebook draws the price range with a currency symbol based on where the visitor appears to be, so the same Page can show `$$` from a US IP and `££` from elsewhere. The Actor returns Facebook's text as is. Use `businessPriceLevel`, the same range as a number from 1 to 4, to compare Pages.

**Does it work for personal profiles?**
Yes, for public profiles such as creators and public figures. Their `category` starts with `Profile` instead of `Page`, and fields that only Pages have, like the confirmed owner, stay empty.

**What do the error codes mean?**
`400` means the input isn't a Facebook Page link, username, or ID. `404` means Facebook says the Page isn't available: it doesn't exist, or it's restricted by age or country, or only logged-in users can see it. `403` means Facebook showed a login page instead of the Page. `429` or `503` means Facebook kept limiting requests after several retries; run those Pages again later. Error rows are free.

**How exact are the follower numbers?**
`followersCount` comes from Facebook's exact count (e.g. `964474`), while `followersDisplay` keeps Facebook's rounded text ("964K followers").

**Can it search for Pages by keyword or scrape Page posts?**
No. It reads details from the Page links you give it. For posts, use [Facebook User Posts Scraper](https://apify.com/parsebird/facebook-user-posts-scraper).

**Can I run it on a schedule or from my app?**
Yes. Use [Apify schedules](https://docs.apify.com/platform/schedules), call it from the [API tab](https://apify.com/parsebird/facebook-page-details-scraper/api), or connect it to Make, Zapier, Google Sheets, or Slack through [integrations](https://apify.com/integrations).

**Where can I report issues or request a field?**
Open the **Issues** tab on the Actor page with your input and run ID.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/facebook-page-details-scraper/changelog.md

# Actor input Schema

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

Add Facebook Page links, one per line, such as https://www.facebook.com/NASA. profile.php?id= links, m.facebook.com links, page usernames and numeric page IDs also work. Up to 500 pages per run.

## `showVerifiedBadge` (type: `boolean`):

Add whether each page shows Facebook's verified badge (isVerified). Turn it off to leave isVerified empty.

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

No proxy setup is needed. The Actor picks its own network route and switches to Apify Proxy when Facebook limits requests.

## Actor input object example

```json
{
  "pageUrls": [
    "https://www.facebook.com/pythonclcoding",
    "https://www.facebook.com/NASA"
  ],
  "showVerifiedBadge": true
}
```

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

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/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/pythonclcoding",
        "https://www.facebook.com/NASA",
    ] }

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/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/8MT7AuEnfVIYrCSVE/builds/90dHRbRuai7getEVA/openapi.json
