Facebook Posts Scraper avatar

Facebook Posts Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Facebook Posts Scraper

Facebook Posts Scraper

📘 Facebook Posts Scraper extracts public posts—text, images, links, timestamps, reactions, comments & #️⃣hashtags—at scale. 🔍 Filter by page, keyword or date. 📊 Export CSV/JSON for social listening, competitor analysis & content research. 🚀 Fast, reliable.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeBase

ScrapeBase

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Facebook Posts Scraper

Facebook Posts Scraper is a production-ready Apify actor that extracts public Facebook posts at scale — including post text, timestamps, links, media, reactions, likes, comments count, and shares — from pages, groups, and profiles. As a Facebook post scraper and Facebook posts extractor, it helps marketers, developers, data analysts, and researchers scrape Facebook page posts and scrape Facebook group posts for social listening, competitor tracking, and content research. Built for reliability and scale, it enables fast Facebook post data extraction without the official API.

What data / output can you get?

Below are the exact JSON fields the actor saves to the dataset for each post:

Data fieldDescriptionExample value
facebookUrlSource page/profile URL used for scrapinghttps://www.facebook.com/nytimes/
postIdUnique post identifier123456789012345
pageNamePage or profile slug derived from URLnytimes
urlDirect URL to the post (fallback to canonical permalink)https://www.facebook.com/100044185428261/posts/1397878851694949
timePost time in ISO format with Z suffix2025-01-15T10:41:16.000Z
timestampUnix timestamp (seconds)1736937676
user.idOwning page/profile ID100044185428261
user.namePage/profile display name (when available)The New York Times
user.profileUrlProfile URL composed from IDhttps://www.facebook.com/100044185428261
user.profilePicProfile picture URL (when detected)https://static.xx.fbcdn.net/.../profile.jpg
textPost caption/message textMajor breaking news just in…
likesTotal reaction count40224
commentsTotal comments count2279
sharesTotal share count1484
topReactionsCountTotal count of top reactions7
reactionLikeCount“Like” reactions count31200
reactionLoveCount“Love” reactions count6120
reactionHahaCount“Haha” reactions count420
reactionCareCount“Care” reactions count210
reactionSadCount“Sad” reactions count85
reactionWowCount“Wow” reactions count320
reactionAngryCount“Angry” reactions count69
mediaArray of media objects (images/attachments) with metadata[{ "thumbnail": "...", "photo_image": {...}, "ocrText": "..." }]
feedbackIdFacebook feedback identifierZmVlZGJhY2s6MTM5Nzg3ODg1MTY5NDk0OQ==
topLevelUrlCanonical “/ID/posts/POST_ID” permalinkhttps://www.facebook.com/100044185428261/posts/1397878851694949
facebookIdOwning page/profile ID (same as user.id)100044185428261
pageAdLibrary.idPage ID for Ad Library lookups100044185428261
inputUrlOriginal input URL you providedhttps://www.facebook.com/nytimes/
collaboratorsCollaborator metadata (when present)[]

Notes:

  • Media entries may include thumbnail, dimensions (photo_image.height/width), URLs, and optional ocrText (accessibility caption) for richer analysis.
  • Export the dataset in JSON, CSV, or Excel to build reports, dashboards, or pipelines like a Facebook posts downloader or to export Facebook posts to CSV.

Key features

  • 🔎 GraphQL-powered timeline extraction
    Robust Facebook page feed scraper that discovers page/profile IDs and GraphQL doc IDs from the live site and paginates with cursors — no browser required.

  • 🌐 Pages, groups, and profiles coverage
    Normalize inputs to scrape Facebook page posts and scrape Facebook group posts in one run. Mix full URLs and usernames; targets run sequentially for reliability.

  • 🗓️ Smart date filters
    Limit results by start and/or end date using oldestPostDateUnified and newestPostDate. Filters are applied during requests and re-checked client-side for precision.

  • 💬 Engagement metrics & reaction breakdown
    Get likes, comments count, shares, topReactionsCount, and per-type fields (Like/Love/Haha/Care/Sad/Wow/Angry) for granular analysis.

  • 🖼️ Media metadata with optional OCR captions
    Collect media thumbnails, dimensions, attachment URLs, and accessibility captions (ocrText) when present to enrich creative analysis.

  • 🛡️ Production-grade anti-blocking
    Prefers Apify Residential proxy when available, falls back to Apify Datacenter or your custom proxy, with retries and exponential backoff.

  • 📦 Analysis-ready dataset
    Clean, consistent JSON that works out of the box for Facebook posts extractor workflows, including “Facebook posts crawler” and “extract Facebook posts for analysis” use cases.

  • 👩‍💻 Developer friendly
    Run via Apify API; integrate with Python, Make, n8n, or your data stack. Build an automated Facebook post scraper tool or Facebook post scraper Python pipeline without the official API.

How to use Facebook Posts Scraper - step by step

  1. Create or log in to your Apify account.
  2. Open the Facebook Posts Scraper actor and click “Input” to configure your run.
  3. Add targets in startUrls:
  4. Set maxPosts to control depth per target (1–10,000; default 10).
  5. Apply date filters (optional):
    • Posts Newer Than (Start Date): oldestPostDateUnified (absolute like 2024-01-01 or relative like 7 days, 2 months, 1 year).
    • Posts Older Than (End Date): newestPostDate (absolute like 2024-12-31 or relative like 0 for today).
  6. Configure proxy (optional): The actor prefers Apify Residential proxy, falls back to Apify Datacenter, and supports custom URLs.
  7. Start the run: targets are processed sequentially to reduce rate limits. Progress logs will show per-target counts.
  8. Download results: open the Dataset tab to export JSON, CSV, or Excel, or access via API for automation.

Pro Tip: Chain runs or connect the dataset to your analytics stack to export Facebook posts to CSV and power “Facebook post data extraction” dashboards.

Use cases

Use caseDescription
Social listening for marketersMonitor pages and groups to quantify engagement trends and reactions. Export to CSV for weekly reporting.
Competitor content analysisBenchmark how rivals post, structure captions, and which reactions dominate over time.
Editorial research & insightsCurate public posts as a Facebook posts downloader feed for story leads and events.
Brand monitoring & PRTrack brand pages for spikes in comments count, shares, and reaction changes.
Academic & policy studiesCollect public timelines for longitudinal analysis with a Facebook posts extractor dataset.
Data science & NLPBuild labeled corpora from post text, ocrText, and engagement signals for modeling.
Automation pipelinesTrigger downstream workflows via API to scrape Facebook page posts at intervals without API credentials.

Why choose Facebook Posts Scraper?

Built for precision, automation, and reliability, this Facebook post scraper tool offers:

  • ✅ Accurate, structured fields for analysis-ready datasets
  • 🌍 Pages, groups, and profiles coverage in a single workflow
  • 📈 Scales from small tests to deep timelines (up to 10,000 posts per target)
  • 🧰 Developer access via the Apify API for Python and workflow automation
  • 🔐 No login required — a Facebook public posts scraper without the official API
  • 🛡️ Anti-blocking with residential/datacenter proxies and retry/backoff logic
  • ⚙️ Better than ad-hoc extensions — stable, production-grade infrastructure

In short, a dependable Facebook posts crawler that balances coverage, data quality, and operational reliability.

Yes — when done responsibly. This actor is designed to extract publicly available information and does not access private or authenticated content. You should:

  • Collect only public data and respect platform terms.
  • Comply with data protection laws (e.g., GDPR, CCPA) and internal policies.
  • Use results for lawful purposes (analysis, research) and avoid misuse.
  • Consult your legal team for edge cases and jurisdiction-specific rules.

Input parameters & output format

Example input

{
"startUrls": [
"https://www.facebook.com/nytimes/",
"Cristiano",
"groups/mygroup"
],
"maxPosts": 25,
"includeVideoTranscript": false,
"oldestPostDateUnified": "7 days",
"newestPostDate": "",
"proxyConfiguration": {
"useApifyProxy": false
}
}

Parameter reference

FieldTypeRequiredDefaultDescription
startUrlsarrayYesFacebook Page targets as full URLs or usernames. You can mix formats; targets run sequentially to reduce rate limits.
maxPostsintegerNo10Maximum posts to collect per target page (1–10,000). The actor stops when this count is reached per page.
includeVideoTranscriptbooleanNofalseCapture video captions & transcripts (when available). When OFF, video posts still appear with metadata.
oldestPostDateUnifiedstringNoPosts Newer Than (Start Date). Absolute (e.g., 2024-01-01) or Relative (e.g., 7 days, 2 months, 1 year).
newestPostDatestringNoPosts Older Than (End Date). Absolute (e.g., 2024-12-31) or Relative (e.g., 0 for today).
proxyConfigurationobjectNo{"useApifyProxy": false}Proxy settings. Prefers Apify Residential; falls back to Apify Datacenter; supports custom proxy URLs.

Example output

{
"facebookUrl": "https://www.facebook.com/nytimes/",
"postId": "1397878851694949",
"pageName": "nytimes",
"url": "https://www.facebook.com/100044185428261/posts/1397878851694949",
"time": "2025-01-15T10:41:16.000Z",
"timestamp": 1736937676,
"user": {
"id": "100044185428261",
"name": "The New York Times",
"profileUrl": "https://www.facebook.com/100044185428261",
"profilePic": "https://static.xx.fbcdn.net/rsrc.php/v3/yX/r/profile_pic.jpg"
},
"collaborators": [],
"text": "Major breaking news just in...",
"likes": 40224,
"comments": 2279,
"shares": 1484,
"topReactionsCount": 7,
"reactionLikeCount": 31200,
"reactionLoveCount": 6120,
"reactionHahaCount": 420,
"reactionCareCount": 210,
"reactionSadCount": 85,
"reactionWowCount": 320,
"reactionAngryCount": 69,
"media": [
{
"thumbnail": "https://scontent.xx.fbcdn.net/v/t1.6435-9/thumbnail.jpg",
"__typename": "Photo",
"__isMedia": "Photo",
"accent_color": "FFFFFFFF",
"photo_product_tags": [],
"photo_image": {
"uri": "https://scontent.xx.fbcdn.net/v/t1.6435-9/large.jpg",
"height": 1080,
"width": 1080
},
"url": "https://www.facebook.com/photo/?fbid=1397878851694949",
"id": "pfbid02abcDEFghijkLmn"
}
],
"feedbackId": "ZmVlZGJhY2s6MTM5Nzg3ODg1MTY5NDk0OQ==",
"topLevelUrl": "https://www.facebook.com/100044185428261/posts/1397878851694949",
"facebookId": "100044185428261",
"pageAdLibrary": {
"id": "100044185428261"
},
"inputUrl": "https://www.facebook.com/nytimes/"
}

Notes:

  • The output contains reaction breakdown fields for Like, Love, Haha, Care, Sad, Wow, and Angry.
  • Media entries may include ocrText when Facebook provides accessibility captions.

FAQ

Do I need a Facebook login or cookies?

No. The actor works as a Facebook public posts scraper without login. It discovers required IDs from the live site and fetches timeline data over the same endpoints used by the web experience, with robust proxy support.

Can it scrape Facebook groups as well as pages?

Yes. You can pass group slugs like groups/mygroup or full /groups/ URLs. The input is normalized so you can scrape Facebook group posts alongside pages and profiles in a single run.

Does it extract comments or only comment counts?

It extracts comments count. The dataset includes comments (total count) but does not include full comment threads or bodies.

How many posts can I scrape per target?

You can set maxPosts from 1 up to 10,000 per target. The scraper paginates the timeline and stops when it reaches your limit for each page or when no further posts are available.

Can I export results to CSV or use the data in Python?

Yes. Results are saved to an Apify dataset, which you can download as JSON, CSV, or Excel. You can also access the dataset via the Apify API and integrate with your Python workflows or automation tools.

Does it work without the official Facebook API?

Yes. It’s a Facebook post scraper without API credentials or login. It collects publicly available data from Facebook’s web endpoints and handles pagination automatically.

How do date filters work?

Use oldestPostDateUnified (start) and newestPostDate (end) to limit scraping to a target window using absolute or relative values. The scraper sends these as request parameters and also applies a client-side check to ensure results match your range.

The actor prefers Apify Residential proxy when available for the highest success rates, falls back to Apify Datacenter, and also supports your custom proxy URLs. No proxy configuration is required for basic runs.

Closing CTA / Final thoughts

Facebook Posts Scraper is built to extract structured, analysis-ready Facebook post data at scale. With date filters, reaction breakdowns, media metadata, and robust proxy handling, it’s ideal for marketers, developers, analysts, and researchers who need to automate Facebook posts downloader workflows and export Facebook posts to CSV or JSON. Integrate via the Apify API or a Facebook post scraper Python pipeline, and start extracting smarter social insights today.