Facebook Pages Scraper
Pricing
from $0.07 / 1,000 facebook page or post records
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
Maintained by CommunityActor 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/NASAhttps://www.facebook.com/MetaNASAMeta
The actor skips pages that Facebook does not expose publicly to logged-out visitors.
What data can you extract?
| Field | Description |
|---|---|
recordType | page or post |
input | Original URL or handle you entered |
url | Canonical Facebook Page URL |
handle | Facebook Page handle when parseable |
pageId | Numeric Page/profile ID when visible |
name | Page name |
title | Full page title |
description | Public description/about text |
category | Page category when visible |
website | Public external website when visible |
phone | Public phone number when visible |
email | Public email address when visible |
address | Public address when visible |
likesText | Likes text as shown publicly |
likesCount | Parsed likes count when possible |
followersText | Followers text when visible |
followersCount | Parsed followers count when possible |
talkingAboutText | Public talking-about text |
talkingAboutCount | Parsed talking-about count |
profileImageUrl | Public profile image URL |
coverImageUrl | Public cover image URL when visible |
postUrl | Public post URL for post records |
postId | Post ID when parseable |
text | Post text when visible |
timestampText | Post timestamp text when visible |
timestampIso | Parsed timestamp when available |
mediaUrls | Visible media URLs |
reactionCount | Visible reaction count |
commentCount | Visible comment count |
shareCount | Visible share count |
scrapedAt | ISO 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 run | Records saved | Estimated BRONZE cost |
|---|---|---|
| Quick test | 10 records | ~$0.0062 |
| Small monitoring list | 100 records | ~$0.0173 |
| Larger export | 1,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
- Open the actor on Apify.
- Add Facebook Page URLs in Facebook Page URLs.
- Optionally add handles in Facebook Page handles or URLs.
- Choose whether to include visible public post links.
- Set the maximum posts per Page.
- Click Start.
- 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
maxPostsPerPageto0if 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 ApifyClientimport osclient = 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:
- Save a Page list in actor input.
- Create a weekly schedule.
- Send the dataset to Google Sheets or your data warehouse.
- 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.
Related scrapers
Explore other actors by the same publisher:
- https://apify.com/fetch_cat/google-search-results-scraper
- https://apify.com/fetch_cat/google-maps-reviews-scraper
- https://apify.com/fetch_cat/github-repositories-search-scraper
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.