Facebook Pages Scraper avatar

Facebook Pages Scraper

Pricing

from $0.07 / 1,000 facebook page or post records

Go to Apify Store
Facebook Pages Scraper

Facebook Pages Scraper

Extract public Facebook Page metadata, follower/like text, contact fields, profile images, and visible public post links from Page URLs or handles.

Pricing

from $0.07 / 1,000 facebook page or post records

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract public Facebook Page profile metadata and visible public post links from Facebook Page URLs or handles.

Facebook Pages Scraper helps social media, brand monitoring, lead generation, and competitive intelligence teams turn public Facebook Page information into a clean Apify dataset.

What does Facebook Pages Scraper do?

Facebook Pages Scraper collects public information from Facebook Pages that are visible without logging in.

It can save:

  • 📘 Page name and canonical Facebook URL
  • 🆔 Page ID when visible
  • 🔗 Page handle
  • 📝 Public description/about text
  • 👥 Like and engagement text when visible
  • 🖼️ Profile image URL
  • 🌐 Public website, phone, and email when visible
  • 🧾 Recent public post links when Facebook exposes them in logged-out HTML
  • ⏱️ Scrape timestamp for every record

The actor is designed for public Page monitoring, not private Facebook data.

Who is it for?

Brand and social media teams

Track owned and competitor Facebook Pages in a repeatable spreadsheet-friendly format.

Lead generation teams

Collect public business Page metadata such as websites, emails, and phone numbers when those details are visible on the Page.

Competitive intelligence analysts

Export Page names, descriptions, image URLs, and engagement text for recurring market snapshots.

Agencies and consultants

Create simple client reports from lists of public Facebook Page URLs or handles.

Why use this actor?

  • ✅ Simple input: paste Page URLs or handles
  • ✅ Public-data only: no Facebook login, cookies, or tokens
  • ✅ Normalized output: stable field names for exports and integrations
  • ✅ Batch friendly: process multiple Pages in one run
  • ✅ Apify native: datasets, API, scheduling, webhooks, and integrations included

What Facebook Pages can it scrape?

Use public Facebook Pages such as:

  • https://www.facebook.com/NASA
  • https://www.facebook.com/Meta
  • NASA
  • Meta

The actor skips pages that Facebook does not expose publicly to logged-out visitors.

What data can you extract?

FieldDescription
recordTypepage or post
inputOriginal URL or handle you entered
urlCanonical Facebook Page URL
handleFacebook Page handle when parseable
pageIdNumeric Page/profile ID when visible
namePage name
titleFull page title
descriptionPublic description/about text
categoryPage category when visible
websitePublic external website when visible
phonePublic phone number when visible
emailPublic email address when visible
addressPublic address when visible
likesTextLikes text as shown publicly
likesCountParsed likes count when possible
followersTextFollowers text when visible
followersCountParsed followers count when possible
talkingAboutTextPublic talking-about text
talkingAboutCountParsed talking-about count
profileImageUrlPublic profile image URL
coverImageUrlPublic cover image URL when visible
postUrlPublic post URL for post records
postIdPost ID when parseable
textPost text when visible
timestampTextPost timestamp text when visible
timestampIsoParsed timestamp when available
mediaUrlsVisible media URLs
reactionCountVisible reaction count
commentCountVisible comment count
shareCountVisible share count
scrapedAtISO timestamp of extraction

How much does it cost to scrape Facebook Pages?

This actor uses pay-per-event pricing.

You pay a small $0.005 run-start fee and then a per-record fee for each Facebook Page or visible post record saved to the dataset. The current BRONZE per-record price is $0.00012252 (about $0.12 per 1,000 records), with lower prices on higher Apify usage tiers.

Example runRecords savedEstimated BRONZE cost
Quick test10 records~$0.0062
Small monitoring list100 records~$0.0173
Larger export1,000 records~$0.1275

Free-plan users can run small tests affordably because the actor only charges for records it actually saves. Exact charges can vary slightly by Apify tier and the number of public Pages/posts Facebook exposes during the run.

How to use Facebook Pages Scraper

  1. Open the actor on Apify.
  2. Add Facebook Page URLs in Facebook Page URLs.
  3. Optionally add handles in Facebook Page handles or URLs.
  4. Choose whether to include visible public post links.
  5. Set the maximum posts per Page.
  6. Click Start.
  7. Download results from the dataset as JSON, CSV, Excel, XML, or RSS.

Input example

{
"startUrls": [
{ "url": "https://www.facebook.com/NASA" },
{ "url": "https://www.facebook.com/Meta" }
],
"pageUrls": ["NatGeo"],
"includePosts": true,
"maxPostsPerPage": 5,
"proxyConfiguration": { "useApifyProxy": false }
}

Output example

{
"recordType": "page",
"input": "https://www.facebook.com/NASA",
"url": "https://www.facebook.com/NASA",
"handle": "NASA",
"pageId": "100044561550831",
"name": "NASA - National Aeronautics and Space Administration",
"description": "Explore the universe and discover our home planet. There's space for everybody. ✨",
"likesText": "28,636,250 likes",
"likesCount": 28636250,
"talkingAboutText": "114,817 talking about this",
"talkingAboutCount": 114817,
"profileImageUrl": "https://...",
"scrapedAt": "2026-06-22T00:00:00.000Z"
}

Input settings

Facebook Page URLs

Use this field for full Facebook Page URLs. It supports Apify's request-list input editor.

Facebook Page handles or URLs

Use this field for a simple list of handles or URLs. A handle like NASA is converted to https://www.facebook.com/NASA.

Include visible public posts

When enabled, the actor saves public post link records if Facebook exposes them in the logged-out Page HTML.

Maximum posts per Page

Controls how many visible public post records can be saved per Page.

Proxy configuration

Most tests should start with no proxy or datacenter proxy. Use residential proxy only if your target region receives a Facebook login prompt or blocked response.

Tips for best results

  • Use Page URLs, not personal profiles.
  • Keep first tests small: two or three Pages.
  • Use public Pages that are visible in a browser without logging in.
  • Set maxPostsPerPage to 0 if you only need Page profile records.
  • Re-run on a schedule for recurring Page monitoring.

Limits and caveats

Facebook changes public logged-out markup frequently.

Some fields may be null even when they appear to logged-in users. This happens when Facebook does not expose those fields to anonymous visitors.

This actor does not bypass logins, privacy settings, CAPTCHAs, or access controls.

Integrations

Use Apify integrations to send Facebook Page data to:

  • Google Sheets for social media reporting
  • Slack for competitor monitoring alerts
  • Make or Zapier for lead workflows
  • Webhooks for internal data pipelines
  • Apify datasets for scheduled exports

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/facebook-pages-scraper').call({
pageUrls: ['NASA'],
includePosts: true,
maxPostsPerPage: 5
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/facebook-pages-scraper').call(run_input={
'pageUrls': ['NASA'],
'includePosts': True,
'maxPostsPerPage': 5,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~facebook-pages-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"pageUrls":["NASA"],"includePosts":true,"maxPostsPerPage":5}'

MCP server usage

You can use this actor through the Apify MCP server.

Claude Code or Claude Desktop tool URL:

https://mcp.apify.com/?tools=fetch_cat/facebook-pages-scraper

Claude Code setup command:

$claude mcp add apify-facebook-pages "https://mcp.apify.com/?tools=fetch_cat/facebook-pages-scraper"

Claude Desktop MCP JSON configuration:

{
"mcpServers": {
"apify-facebook-pages": {
"url": "https://mcp.apify.com/?tools=fetch_cat/facebook-pages-scraper"
}
}
}

Example prompts:

  • "Scrape the public Facebook Page metadata for NASA and Meta."
  • "Export Facebook Page profile images and descriptions for this competitor list."
  • "Run Facebook Pages Scraper weekly and summarize changed descriptions."

Scheduling

Use Apify schedules to monitor a list of Pages daily, weekly, or monthly.

A common workflow is:

  1. Save a Page list in actor input.
  2. Create a weekly schedule.
  3. Send the dataset to Google Sheets or your data warehouse.
  4. Compare changes over time.

Data quality notes

The actor normalizes obvious numeric text such as likes and talking-about counts.

If Facebook returns abbreviated counts such as 1.2M, the actor converts them to numbers where possible.

Raw display text is kept in separate fields so you can audit the original public wording.

Legality

This actor is intended for public Facebook Page information that is visible without logging in.

You are responsible for using the data lawfully, respecting Facebook's terms, and complying with privacy, data protection, and intellectual property rules that apply to your use case.

Do not use this actor for private data, restricted data, account-only data, or data that you are not allowed to process.

FAQ

Can I scrape private Facebook data?

No. This actor is for public Facebook Page data visible without logging in.

Do I need Facebook cookies or an access token?

No. The actor does not request credentials, cookies, app tokens, or user tokens.

Troubleshooting

Why did a Page return no data?

The Page may be private, unavailable in your region, redirected to login, age-restricted, or temporarily blocked for logged-out visitors.

Try another public Page or enable Apify Proxy in the input.

Why are some fields empty?

Facebook often shows different data to logged-in users than it exposes publicly. Empty fields mean the data was not visible in the public logged-out response.

Why are there fewer post records than requested?

Post records are saved only when Facebook exposes public post links in logged-out HTML. Set maxPostsPerPage higher only after confirming posts are visible for your Pages.

Explore other actors by the same publisher:

Support

If a public Facebook Page does not work as expected, include the Page URL, your actor input, and the run ID when reporting the issue.

Changelog

0.1

Initial public Facebook Page profile scraper with optional visible public post link records.