Facebook Page Posts Scraper
Pricing
$19.99/month + usage
Facebook Page Posts Scraper
📘 Facebook Page Posts Scraper extracts posts from public Pages — text, timestamps, reactions, comments count, shares, links & media. 🔎 Structured data for social listening, competitor analysis & content research. 📊 Export CSV/JSON. 🚀 For marketers, analysts & researchers.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeMesh
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Facebook Page Posts Scraper
Facebook Page Posts Scraper is a production-ready Apify actor that lets you scrape Facebook page posts at scale — extracting post text, timestamps, engagement counts, reaction breakdowns, links, and media previews from public Pages — then streaming structured data to your dataset for export. Built for marketers, developers, data analysts, and researchers, this Facebook page posts scraper tool focuses on reliable Facebook page posts export and clean, analysis-ready output, enabling social listening, competitor benchmarking, and content research workflows at scale. 🚀
What data / output can you get?
You’ll get one dataset row per post (streamed live as they’re collected) and a short summary row per page when that page finishes. The post rows include rich metadata and media signals commonly needed for analysis with a Facebook page content scraper or Facebook page feed scraper.
| Data type | Description | Example value |
|---|---|---|
| recordType | Row discriminator (“post” or “page_summary”) | "post" |
| profileUrl | Canonical page URL for the post’s source | "https://www.facebook.com/RealMadrid/" |
| post_id | Post identifier (when available) | "123456789012345" |
| type | Primary attachment type (photo/video) | "photo" |
| url | Direct post/permalink URL (when available) | "https://www.facebook.com/.../posts/..." |
| message | Post text (message/caption) | "Matchday highlights are live now!" |
| postCreatedAt | ISO-8601 timestamp in UTC (Z) | "2026-04-06T09:15:12Z" |
| postCreatedAtUnix | Unix timestamp (seconds) | 1764935712 |
| comments_count | Total number of comments | 42 |
| reactions_count | Total reactions across types | 1289 |
| reshare_count | Number of shares | 67 |
| reactions | Per-reaction breakdown | {"like": 950, "love": 210, "wow": 32, ...} |
| author | Posting page actor info | {"id":"10001","name":"Club","url":"..."} |
| image | Primary image (when present) | {"uri":"https://...%22,%22height%22:720,%22width%22:720} |
| video | Video id/URL placeholder (if present) | {"id":"98765","uri":"https://..."} |
| album_preview | Album preview (if applicable) | {"count":3,"images":[{"uri":"..."}]} |
| video_files | Discovered video URLs (by quality) | {"hd":"https://...%22,%22sd%22:%22https://..."} |
| video_thumbnail | Video preview thumbnail | {"uri":"https://..."} |
| external_url | Linked external URL (if any) | "https://example.com/article" |
| attached_event | Attached event (if any) | {"id":"", "name":"", "url":""} |
| attached_post | Nested/reshared post meta | {"post_id":"", "url":"", "message":""} |
| attached_post_url | Canonical URL for attached post | "https://www.facebook.com/.../posts/..." |
| scrapedAt | When this post was processed | "2026-04-06T09:38:02Z" |
Bonus: After each page finishes, a “page_summary” row is added with postsCollected, maxPostsPerProfile, and any error message. You can export everything to CSV, JSON, or Excel directly from Apify. Perfect for teams that need a Facebook page posts downloader or Facebook page posts extraction tool with clean, reliable structure.
Key features
-
🔒 Residential-only routing (built-in)
Always uses Apify residential proxies for every request. Proxy group/type choices are ignored by design; only settings like country apply when supported — ideal for stable Facebook page posts scraping software at scale. -
📥 Live dataset streaming
One row per post is pushed as soon as it’s collected, plus a page summary row when each page completes — great for real-time pipelines and a Facebook page post archiver workflow. -
📅 Flexible time filters
Narrow by startDate and endDate using absolute dates (YYYY-MM-DD) or relative windows like “7 days”, “2 weeks”, “1 month”, “1 year” — so you can extract posts from Facebook pages within exactly the timeframe you need. -
🔢 Per-page cap for speed & depth
Set maxPostsPerProfile between 1 and 5,000 per page to control run duration versus history depth — a practical control for any Facebook page posts crawler. -
🧱 Structured media & engagement
Get message text, timestamps, reactions_count, comments_count, reshare_count, full reaction breakdowns, author info, images, video placeholders/files, album previews, external links, and more — a robust Facebook page post data scraper output. -
🧑💻 Developer-friendly on Apify
Integrate via Apify’s datasets and exports. Build automations for Facebook page posts export to CSV/JSON and connect to your dashboards or data lakes. -
✅ Public Pages only, no login
Designed for public Facebook Pages; no authentication required — a reliable Facebook page posts timeline scraper without risky logins. -
🧭 Input flexibility
Paste full page URLs or just the page name/slug (e.g., “YourPage”) — the actor normalizes inputs to canonical Facebook page URLs.
How to use Facebook Page Posts Scraper - step by step
- 🔑 Create or log in to your Apify account.
- 🧭 Open the “Facebook Page Posts Scraper” actor on Apify.
- 🔗 Add targets in startUrls — use full URLs like “https://www.facebook.com/YourPage/” or just “YourPage”.
- 🔢 Set maxPostsPerProfile (1–5000) to control how many posts per page to collect.
- 📅 (Optional) Add startDate and/or endDate. Use absolute “YYYY-MM-DD” or relative values like “7 days”, “2 weeks”, “1 month”, “1 year”, or “0 days” (through end of today).
- 🌐 Enable Use Apify Proxy in proxyConfiguration. Residential proxies are required and always enforced; optionally set a country (when supported).
- ▶ Start the run. Posts will stream into the dataset live; you’ll see logs for each saved post.
- 💾 Export results from the dataset to JSON, CSV, or Excel — or connect to your workflow.
Pro Tip: Use relative dates (e.g., “7 days”) for rolling windows in recurring schedules. This makes your Facebook page posts extractor hands-free for ongoing monitoring.
Use cases
| Use case name | Description |
|---|---|
| Social listening & brand tracking | Monitor public Page posts to quantify reactions_count, comments_count, and reshare_count, and spot shifts in audience sentiment. |
| Competitor content benchmarking | Compare messaging, posting cadence, and engagement across competitors using a Facebook page feed scraper for structured insights. |
| Content research & planning | Analyze post types (photo/video), themes, and external_url usage to inform your editorial calendar. |
| Historical archiving | Build a structured archive of public Page posts for audit trails using a Facebook page post extractor that preserves timestamps and media previews. |
| Campaign measurement | Track campaign posts over a defined date range to quantify performance deltas quickly. |
| Data pipeline ingestion | Automate Facebook page posts export to CSV/JSON for BI tools, data lakes, or ML preprocessing. |
| Academic & policy research | Collect public discourse across Pages with reaction breakdowns for quantitative studies. |
Why choose Facebook Page Posts Scraper?
This tool prioritizes precision, stability, and clean, structured data — a dependable Facebook page posts scraping software alternative to brittle extensions.
- 🎯 Accurate, structured output tuned for analysis (message, timestamps, engagement, media).
- 🛡 Residential-only proxy routing for resilient collection at scale.
- ⚙️ Flexible time filters (absolute/relative) for precise time-window queries.
- 📈 Scales from a few pages to deep history per target (1–5,000 posts per page).
- 🧩 Developer-friendly on Apify with reliable dataset exports (CSV, JSON, Excel).
- 🔐 Public pages only, no login or cookies required.
- 🔁 Live per-post streaming enables near real-time workflows.
In short: a production-ready Facebook page posts scraper for teams that value reliability, structure, and repeatability over manual copy/paste or unstable tools.
Is it legal / ethical to use Facebook Page Posts Scraper?
Yes — when done responsibly. This actor collects publicly available content from Facebook Pages and does not access private profiles or authenticated data.
Guidelines for compliant use:
- Only target public Pages and respect Facebook’s Terms of Service.
- Use data ethically and transparently; avoid misuse or spam.
- Ensure compliance with data protection laws (e.g., GDPR, CCPA).
- Consult your legal team for edge cases or jurisdiction-specific requirements.
Input parameters & output format
Example input JSON
{"startUrls": ["https://www.facebook.com/RealMadrid/","YourPage"],"maxPostsPerProfile": 50,"startDate": "7 days","endDate": "0 days","proxyConfiguration": {"useApifyProxy": true,"apifyProxyCountry": "US"}}
Parameters (from input schema):
- startUrls (array, required): Paste one or more Facebook page links (full URL) or just the page name/slug. Example: "https://www.facebook.com/YourPage/" or "YourPage". Default: none.
- maxPostsPerProfile (integer, optional): Cap how many posts to collect for each page (1–5000). Default: 20.
- startDate (string, optional): Include posts on or after this moment. Accepts absolute "YYYY-MM-DD" or relative (“7 days”, “2 weeks”, “1 month”, “1 year”). Default: none.
- endDate (string, optional): Include posts on or before this moment. Accepts absolute or relative (e.g., “0 days” = through end of today). Default: none.
- proxyConfiguration (object, optional in schema; required in practice): Apify Proxy with residential access. This actor always routes via residential IPs; group/type choices are ignored. Country (if available) may be applied. UI prefill: {"useApifyProxy": true}.
Compatibility note: The actor also accepts legacy aliases startUrl and max_posts_per_profile if present.
Output format
The dataset contains two row types:
- Post rows (recordType = "post") — one per collected post.
{"recordType": "post","profileUrl": "https://www.facebook.com/RealMadrid/","post_id": "123456789012345","type": "photo","url": "https://www.facebook.com/RealMadrid/posts/123456789012345/","message": "Matchday highlights are live now!","postCreatedAt": "2026-04-06T09:15:12Z","postCreatedAtUnix": 1764935712,"comments_count": 42,"reactions_count": 1289,"reshare_count": 67,"reactions": {"angry": 0,"care": 12,"haha": 7,"like": 950,"love": 300,"sad": 3,"wow": 17},"author": {"id": "100063543614476","name": "Real Madrid C.F.","url": "https://www.facebook.com/RealMadrid/","profile_picture_url": "https://example.com/pic.jpg"},"image": {"uri": "https://example.com/image.jpg","height": 720,"width": 720},"video": { "id": "", "uri": "" },"album_preview": {"count": 1,"images": [{ "uri": "https://example.com/image.jpg", "height": 720, "width": 720 }]},"video_files": {},"video_thumbnail": {"uri": "https://example.com/thumb.jpg","height": 720,"width": 720},"external_url": "https://example.com/article","attached_event": { "id": "", "name": "", "url": "" },"attached_post": { "post_id": "", "url": "", "message": "" },"attached_post_url": "","scrapedAt": "2026-04-06T09:38:02Z"}
- Page summary rows (recordType = "page_summary") — one per page when it finishes.
{"recordType": "page_summary","profileUrl": "https://www.facebook.com/RealMadrid/","postsCollected": 50,"maxPostsPerProfile": 50,"startDate": "7 days","endDate": "0 days","error": null}
Notes:
- “post” rows always include recordType and profileUrl, plus the fields listed above. Some media-related fields may be empty or defaulted (e.g., video, video_files, external_url) depending on the post.
- “page_summary” rows provide per-page status and configuration context.
FAQ
Do I need to log in to scrape posts from Facebook Pages?
No. The actor targets public Pages and does not require login or cookies. It functions as a Facebook page posts scraper for public content only.
Are residential proxies required?
Yes. Every run uses Apify residential proxies for all requests. Proxy group/type selections are ignored; only settings like country (if available) apply.
Can I limit the number of posts per Page?
Yes. Use maxPostsPerProfile to cap collection between 1 and 5,000 posts per page. Lower limits run faster; higher limits dig deeper history.
How do date filters work?
Set startDate and/or endDate using absolute dates (YYYY-MM-DD) or relative windows like “7 days”, “2 weeks”, “1 month”, “1 year”. “0 days” on endDate means through the end of today.
What fields are included for each post?
Each post row includes message, timestamps (ISO and Unix), comments_count, reactions_count, reshare_count, reaction breakdowns, author info, and media previews (image/video/album), plus external_url and attached entities when available.
Does it scrape comments content?
No. It collects comments_count totals but does not extract comment text or threads.
Can I use page names instead of full URLs?
Yes. You can paste a page name/slug (e.g., “YourPage”) and the actor will normalize it to a canonical Facebook page URL.
How do I export the results?
Open the run’s dataset in Apify and export to JSON, CSV, or Excel. This makes it easy to integrate with BI dashboards and downstream pipelines.
Closing thoughts
Facebook Page Posts Scraper is built for fast, reliable extraction of public Facebook Page posts with clean, structured output for analysis. With residential-only routing, flexible date filters, and live per-post streaming, it’s ideal for marketers, developers, analysts, and researchers who need a dependable Facebook page posts extractor for ongoing monitoring and insights. Use Apify’s dataset exports to automate Facebook page posts export to CSV/JSON, or wire it into your data pipeline for scheduled social listening. Start extracting smarter, structured insights from public Facebook Pages today.

