Facebook Page Posts Scraper avatar

Facebook Page Posts Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Facebook Page Posts Scraper

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

ScrapeMesh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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 typeDescriptionExample value
recordTypeRow discriminator (“post” or “page_summary”)"post"
profileUrlCanonical page URL for the post’s source"https://www.facebook.com/RealMadrid/"
post_idPost identifier (when available)"123456789012345"
typePrimary attachment type (photo/video)"photo"
urlDirect post/permalink URL (when available)"https://www.facebook.com/.../posts/..."
messagePost text (message/caption)"Matchday highlights are live now!"
postCreatedAtISO-8601 timestamp in UTC (Z)"2026-04-06T09:15:12Z"
postCreatedAtUnixUnix timestamp (seconds)1764935712
comments_countTotal number of comments42
reactions_countTotal reactions across types1289
reshare_countNumber of shares67
reactionsPer-reaction breakdown{"like": 950, "love": 210, "wow": 32, ...}
authorPosting page actor info{"id":"10001","name":"Club","url":"..."}
imagePrimary image (when present){"uri":"https://...%22,%22height%22:720,%22width%22:720}
videoVideo id/URL placeholder (if present){"id":"98765","uri":"https://..."}
album_previewAlbum preview (if applicable){"count":3,"images":[{"uri":"..."}]}
video_filesDiscovered video URLs (by quality){"hd":"https://...%22,%22sd%22:%22https://..."}
video_thumbnailVideo preview thumbnail{"uri":"https://..."}
external_urlLinked external URL (if any)"https://example.com/article"
attached_eventAttached event (if any){"id":"", "name":"", "url":""}
attached_postNested/reshared post meta{"post_id":"", "url":"", "message":""}
attached_post_urlCanonical URL for attached post"https://www.facebook.com/.../posts/..."
scrapedAtWhen 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

  1. 🔑 Create or log in to your Apify account.
  2. 🧭 Open the “Facebook Page Posts Scraper” actor on Apify.
  3. 🔗 Add targets in startUrls — use full URLs like “https://www.facebook.com/YourPage/” or just “YourPage”.
  4. 🔢 Set maxPostsPerProfile (1–5000) to control how many posts per page to collect.
  5. 📅 (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).
  6. 🌐 Enable Use Apify Proxy in proxyConfiguration. Residential proxies are required and always enforced; optionally set a country (when supported).
  7. ▶ Start the run. Posts will stream into the dataset live; you’ll see logs for each saved post.
  8. 💾 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 nameDescription
Social listening & brand trackingMonitor public Page posts to quantify reactions_count, comments_count, and reshare_count, and spot shifts in audience sentiment.
Competitor content benchmarkingCompare messaging, posting cadence, and engagement across competitors using a Facebook page feed scraper for structured insights.
Content research & planningAnalyze post types (photo/video), themes, and external_url usage to inform your editorial calendar.
Historical archivingBuild a structured archive of public Page posts for audit trails using a Facebook page post extractor that preserves timestamps and media previews.
Campaign measurementTrack campaign posts over a defined date range to quantify performance deltas quickly.
Data pipeline ingestionAutomate Facebook page posts export to CSV/JSON for BI tools, data lakes, or ML preprocessing.
Academic & policy researchCollect 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.

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:

  1. 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"
}
  1. 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.