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 (facebook-page-posts-scraper) extracts Facebook Page posts with captions, timestamps, links, comments & reactions. ⚡ Export CSV/JSON for analytics & competitor research. 🔁 Schedule, paginate & automate at scale. Ideal for marketers & researchers.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeEngine

ScrapeEngine

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 fast, reliable Facebook page posts scraper that extracts public posts from Facebook pages — including message text, timestamps, engagement counts, and media previews — and streams them to your Apify dataset in real time. It solves the hassle of manual copy-paste or unstable tools by providing a structured Facebook page posts API alternative for marketers, developers, data analysts, and researchers. Use it as a Facebook page posts extractor and Facebook page feed scraper to scale analytics, content research, and brand monitoring across multiple pages and time ranges. 🚀

What data / output can you get?

Below are the core fields this Facebook page posts downloader exports into your dataset. Each post is pushed live as it’s found, and each page concludes with a compact summary row.

Data typeDescriptionExample value
recordTypeRow type: “post” or “page_summary”"post"
profileUrlCanonical page URL that was scraped"https://www.facebook.com/RealMadrid/"
post_idFacebook post identifier (if available)"1474788894649217"
urlDirect link to the post"https://www.facebook.com/RealMadrid/posts/1474788894649217"
messagePost caption/message text"Matchday! See you at the Bernabéu."
postCreatedAtISO datetime (UTC, Z) when the post was created"2026-04-06T09:44:18Z"
postCreatedAtUnixUnix timestamp for the creation time1764408858
reactions_countTotal reactions on the post153
comments_countTotal comments on the post12
reshare_countTotal shares (reshares) on the post4
reactionsPer-reaction breakdown{"like":120,"love":20,"wow":5,"haha":3,"care":3,"sad":1,"angry":1}
authorPost author metadata{"id":"100063543614476","name":"Real Madrid C.F.","url":"https://www.facebook.com/RealMadrid/","profile_picture_url":"https://..."}
imagePrimary image preview (if photo){"uri":"https://...%22,%22height%22:590,%22width%22:332}
videoVideo reference (id + URL if available){"id":"9876543210","uri":"https://video.xx.fbcdn.net/..."}
album_previewAlbum preview (count + images){"count":3,"images":[{"uri":"https://...%22,%22height%22:720,%22width%22:1280}]}
video_filesAvailable video URLs (e.g., hd, sd, stable){"hd":"https://...%22,%22sd%22:%22https://..."}
video_thumbnailVideo thumbnail fallback{"uri":"https://...%22,%22height%22:720,%22width%22:1280}
external_urlAttached external link (if any)"https://example.com/article"
attached_eventAttached event metadata{"id":"1122334455","name":"Launch Event","url":"https://www.facebook.com/events/..."}
attached_postAttached/reshared post summary{"post_id":"1122","url":"https://www.facebook.com/...","message":"Original post..."}
attached_post_urlConvenience link to the attached post"https://www.facebook.com/.../posts/1122"
scrapedAtISO datetime when this post was scraped"2026-04-06T09:44:19Z"
postsCollectedNumber of posts stored for a page (summary rows)20
maxPostsPerProfilePer-page post cap used for the run (summary rows)20
startDateFrom-date filter used (as provided in input)"7 days"
endDateUntil-date filter used (as provided in input)"0 days"
errorError message if the page run didn’t finish cleanly (summary rows)"end_cursor not found ..."

Notes:

  • Export results to JSON, CSV, or Excel directly from your Apify dataset for downstream analysis.
  • Post rows include media-aware previews (images, videos, albums), external links, and attached event/post references — ideal for a Facebook page posts data extractor pipeline.

Key features

  • 🔒 Residential-only reliability
    Always routes through Apify residential proxies for stable access to public pages. Country selection in the proxy picker may apply; proxy group/type choices are ignored to ensure residential routing.

  • 📡 Live streaming to dataset
    One dataset row per post is pushed as soon as it’s collected, plus a final page_summary row with postsCollected, maxPostsPerProfile, date filters used, and any error message.

  • 🗓️ Flexible date filters
    Filter by startDate and endDate using absolute dates (YYYY-MM-DD) or relative windows like “7 days”, “2 weeks”, “1 month”, or “1 year” to target exactly the timeframe you need.

  • 🧠 Media-aware parsing
    Captures message, timestamps, reactions_count, comments_count, reshare_count, reactions breakdown, author, image, album_preview, video, video_files, video_thumbnail, external_url, attached_event, and attached_post details from the Facebook page feed.

  • 🧱 Clean, structured schema
    Consistent keys across posts make this a dependable Facebook public page data scraper for analytics, enrichment, and reporting.

  • 🧭 Smart pagination with de-duplication
    Uses the page’s GraphQL timeline with cursors, merges response fragments, and avoids duplicate post_ids — a robust Facebook page posts crawler that scales.

  • 🧰 Built for automation on Apify
    Schedule recurring runs, monitor logs, and export to CSV/JSON/Excel. Perfect for “Export Facebook page posts to CSV” workflows and bulk download Facebook page posts jobs.

How to use Facebook Page Posts Scraper — step by step

  1. Sign in to Apify
    Open the Apify Console and ensure your account has access to Apify Proxy with residential IPs.

  2. Open the actor
    Find “Facebook Page Posts Scraper” in the Apify Store and click Try for free.

  3. Add your pages in startUrls
    Paste one or more Facebook page URLs or just page names (e.g., https://www.facebook.com/YourPage/ or YourPage). Multiple entries are supported via the string list editor.

  4. Set maxPostsPerProfile
    Choose how many posts to collect per page (1–5000). The default is 20. Lower values run faster; higher values pull deeper history.

  5. (Optional) Apply date filters
    Use startDate and/or endDate as absolute dates (YYYY-MM-DD) or relative values like “7 days”, “2 weeks”, “1 month”, “1 year”. For endDate, “0 days” includes the end of today.

  6. Configure proxyConfiguration
    Enable “Use Apify Proxy.” The actor always uses residential IPs; group/type selections are ignored. An optional country may apply when supported.

  7. Start the run
    Click Start. The actor connects via residential proxy, paginates the Facebook page feed, and pushes one post per dataset row, followed by a page_summary row per page.

  8. Export results
    Open the run’s dataset and export your Facebook page posts scraper output to JSON, CSV, or Excel for analysis, dashboards, or pipelines.

Pro tip: Schedule runs to monitor Facebook page posts automatically for competitor tracking, campaign analysis, or research.

Use cases

Use caseDescription
Competitor content trackingBenchmark engagement by collecting reactions_count, comments_count, and reshare_count across target pages and timeframes.
Content researchAnalyze message text, postCreatedAt, and media previews to identify winning formats and topics.
Brand monitoringScrape Facebook page posts within a rolling window (e.g., “7 days”) to track public sentiment signals and frequency.
Campaign analysisExport Facebook page posts to CSV/JSON and evaluate media mix, external_url usage, and engagement shifts.
Academic & market researchBuild structured datasets (author, timestamps, reactions) for time-series analysis and NLP tasks.
Data pipelinesUse this Facebook page feed scraper as a Facebook page posts API alternative to supply clean, structured records to BI tools.

Why choose Facebook Page Posts Scraper?

Built for precision, automation, and reliability, this Facebook page scraper outperforms browser extensions and manual methods.

  • ✅ Accurate, structured data from public Facebook pages (no login required)
  • 🔒 Residential-only proxy routing for stable collection
  • 📈 Scales from a few pages to deep history (up to 5,000 posts per page)
  • 🧩 Developer-friendly outputs for pipelines and analytics
  • 🛡️ Public data only; page_summary rows include errors for transparent monitoring
  • 💾 Easy exports to JSON/CSV/Excel for reporting
  • 🧭 Robust pagination + de-duplication in the Facebook page posts crawler

In short, it’s a production-ready Facebook page posts downloader for teams who need repeatable, analytics-ready data.

Yes — when used responsibly. This actor targets publicly available Facebook page data and does not access private or authenticated content.

Guidelines:

  • Only scrape public pages you’re permitted to analyze.
  • Follow Facebook’s terms and applicable laws (e.g., GDPR, CCPA).
  • Use residential proxies responsibly and avoid abusive behavior.
  • Consult your legal team for edge cases or redistribution scenarios.

Input parameters & output format

Example input

{
"startUrls": [
"https://www.facebook.com/RealMadrid/",
"YourPage"
],
"maxPostsPerProfile": 50,
"startDate": "7 days",
"endDate": "0 days",
"proxyConfiguration": {
"useApifyProxy": true
}
}

Input parameters

  • startUrls (array, required)
    Description: Paste one or more Facebook page links (full URL) or just the page name — same as typing it in the browser. Example: https://www.facebook.com/YourPage/ or simply YourPage.
    Default: none

  • maxPostsPerProfile (integer, optional)
    Description: Cap how many posts to collect for each page (between 1 and 5000). Lower = faster runs; higher = deeper history.
    Default: 20

  • startDate (string, optional)
    Description: Only include posts on or after this moment — calendar date or relative like “7 days” / “2 weeks”. Leave empty to start from the beginning.
    Default: none

  • endDate (string, optional)
    Description: Only include posts on or before this moment — calendar date or relative (e.g., “0 days” = through end of today). Leave empty for no upper limit.
    Default: none

  • proxyConfiguration (object, optional)
    Description: Required for this actor: Apify Proxy with residential access. The actor always routes via residential IPs — any group/type you pick is not used; only settings like country (if available) apply.
    Default: {"useApifyProxy": true}

Example output — post row

{
"recordType": "post",
"profileUrl": "https://www.facebook.com/RealMadrid/",
"post_id": "1474788894649217",
"type": "photo",
"url": "https://www.facebook.com/RealMadrid/posts/1474788894649217",
"message": "Matchday! See you at the Bernabéu.",
"postCreatedAt": "2026-04-06T09:44:18Z",
"postCreatedAtUnix": 1764408858,
"comments_count": 12,
"reactions_count": 153,
"reshare_count": 4,
"reactions": {
"angry": 1,
"care": 3,
"haha": 3,
"like": 120,
"love": 20,
"sad": 1,
"wow": 5
},
"author": {
"id": "100063543614476",
"name": "Real Madrid C.F.",
"url": "https://www.facebook.com/RealMadrid/",
"profile_picture_url": "https://..."
},
"image": {
"uri": "https://...",
"height": 590,
"width": 332
},
"video": {
"id": "",
"uri": ""
},
"album_preview": {
"count": 1,
"images": [
{ "uri": "https://...", "height": 590, "width": 332 }
]
},
"video_files": {
"hd": "https://...",
"sd": "https://..."
},
"video_thumbnail": {
"uri": "https://...",
"height": 720,
"width": 1280
},
"external_url": "https://example.com/article",
"attached_event": {
"id": "1122334455",
"name": "Launch Event",
"url": "https://www.facebook.com/events/1122334455"
},
"attached_post": {
"post_id": "987654321",
"url": "https://www.facebook.com/.../posts/987654321",
"message": "Original post..."
},
"attached_post_url": "https://www.facebook.com/.../posts/987654321",
"scrapedAt": "2026-04-06T09:44:19Z"
}

Example output — page summary row

{
"recordType": "page_summary",
"profileUrl": "https://www.facebook.com/RealMadrid/",
"postsCollected": 20,
"maxPostsPerProfile": 20,
"startDate": "7 days",
"endDate": "0 days",
"error": null
}

Notes:

  • The dataset contains a mix of “post” rows and one “page_summary” row per page.
  • Some fields may be empty depending on the post type (e.g., video/image presence).

FAQ

Do I need a Facebook login or cookies to use this?

No. The actor targets public Facebook pages and does not require login. It fetches public page timelines and extracts posts available without authentication.

Are residential proxies required?

Yes. The actor always routes via Apify residential proxies. Enable “Use Apify Proxy” and ensure your plan includes residential access; optional country selection may apply.

How many posts can I collect per page?

You control this with maxPostsPerProfile, from 1 to 5000. The default is 20. Each page stops at the cap or when it reaches the end of the feed within any date filters you set.

Can I filter posts by date?

Yes. Use startDate and/or endDate as absolute dates (YYYY-MM-DD) or relative windows like “7 days”, “2 weeks”, “1 month”, “1 year”. For endDate, “0 days” includes the end of today.

Does it scrape comments content?

It captures comments_count, not full comment threads. The output focuses on scalable engagement metrics and media previews.

What formats can I export to?

From the Apify dataset, export your Facebook page posts scraper results to JSON, CSV, or Excel, making it easy to feed dashboards or data pipelines.

Can I use it as a Facebook page posts API alternative?

Yes. The actor provides structured outputs that function as a Facebook page posts API alternative for pipelines, with easy export and automation.

Can I automate recurring runs or bulk download posts?

Yes. Schedule runs in Apify to monitor Facebook page posts automatically and perform bulk download Facebook page posts jobs across multiple pages.

Closing CTA / Final thoughts

Facebook Page Posts Scraper is built to extract structured, analytics-ready Facebook page data at scale. With residential-only reliability, flexible date filters, and media-aware parsing, it’s ideal for marketers, developers, data analysts, and researchers. Export Facebook page posts to CSV/JSON/Excel, plug into your pipelines, or use it as a Python-friendly Facebook page posts scraper via dataset exports. Start extracting smarter with clean, consistent outputs ready for your workflows.