Facebook Post & Comment Scraper for Pages, Groups and Profiles avatar

Facebook Post & Comment Scraper for Pages, Groups and Profiles

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Facebook Post & Comment Scraper for Pages, Groups and Profiles

Facebook Post & Comment Scraper for Pages, Groups and Profiles

Scrape public Facebook posts from pages, groups, and profiles with best-effort comment extraction. Collect post text, post IDs, permalinks, likes, shares, comment counts, profile data, media URLs, and comment samples. Built for Apify with fallback scraping and proxy suppor

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

0

Bookmarked

62

Total users

22

Monthly active users

8 days ago

Last modified

Share

Facebook Post Scraper for Apify

Scrape public Facebook posts, comments, and replies from pages, groups, and profiles.

This Actor is designed first as an open public scraper. It aims to balance coverage, speed, and cost without requiring a Facebook token.

What it extracts

For posts, the Actor can collect:

  • Post author or page name
  • Post text
  • Post timestamp
  • Post permalink URL
  • Post ID
  • Likes, shares, and visible comment counts
  • Profile and page details when available
  • Media URLs and outbound links

In Deep mode, it can also collect:

  • Separate comment rows
  • Separate reply rows
  • Parent post and parent comment references

Supported targets

You can scrape:

  • Public Facebook pages
  • Public Facebook groups
  • Public Facebook profiles
  • Multiple targets in one run

Targets can be passed as:

  • Full Facebook URLs
  • Page names like NASA
  • Group or profile paths like groups/apify

Simple input fields

These are the main fields most users need:

  • targets: Facebook URLs, page names, or group paths
  • startUrls: optional URL list alternative to targets
  • maxPosts: maximum posts to return per target
  • performanceMode: fast, balanced, or maxCoverage
  • enrichmentMode: none, basic, or deep
  • maxEnrichedPosts: how many collected posts should get enrichment
  • maxCommentsPerPost: max comments and replies to recover per post in Deep mode
  • maxCommentExpansionRounds: how hard the scraper should keep loading more comments
  • includeReplies: whether to collect visible replies in Deep mode
  • proxyConfiguration: optional proxy settings

Advanced legacy inputs are still accepted for backward compatibility, but the actor UI now exposes only the common controls above.

Deep mode automatically emits comments and replies as separate dataset items.

For a practical no-token scrape:

{
"targets": ["nytimes", "NASA"],
"maxPosts": 20,
"performanceMode": "balanced",
"enrichmentMode": "deep",
"maxEnrichedPosts": 10,
"maxCommentsPerPost": 25,
"maxCommentExpansionRounds": 8,
"includeReplies": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

For the strongest public coverage:

{
"targets": ["nytimes"],
"maxPosts": 20,
"performanceMode": "maxCoverage",
"enrichmentMode": "deep",
"maxEnrichedPosts": 20,
"maxCommentsPerPost": 25,
"maxCommentExpansionRounds": 8,
"includeReplies": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Output

The dataset contains three item types:

  • post
  • comment
  • reply

Post fields

Common post fields:

  • itemType
  • inputTarget
  • postAuthor
  • postTimestamp
  • postText
  • postUrl
  • postId
  • postOwnerId
  • likesCount
  • sharesCount
  • commentCountValue
  • profileName
  • profileUrl
  • profileUsername
  • profileId
  • profileImageUrl
  • profileFollowersCount
  • targetType
  • targetTitle
  • targetDescription
  • targetImageUrl
  • targetFollowersCount
  • targetUrl
  • externalUrls
  • mediaUrls
  • mediaCount
  • commentSamplesCount
  • scrapedAt

Comment and reply fields

Comment and reply rows can include:

  • itemType
  • inputTarget
  • parentPostId
  • parentPostUrl
  • parentCommentId
  • parentCommentUrl
  • isReply
  • commentText
  • commentAuthor
  • commentAuthorUrl
  • commentTimestamp
  • commentId
  • commentUrl
  • commentSampleIndex
  • scrapedAt

Example post item

{
"itemType": "post",
"inputTarget": "NASA",
"postAuthor": "NASA - National Aeronautics and Space Administration",
"postTimestamp": "2026-05-01T00:00:00+0000",
"postText": "Post text...",
"postUrl": "https://www.facebook.com/NASA/posts/...",
"postId": "pfbid02abc...",
"likesCount": 728,
"sharesCount": 42,
"commentCountValue": 61,
"profileName": "NASA - National Aeronautics and Space Administration",
"profileUrl": "https://www.facebook.com/NASA",
"profileUsername": "NASA",
"externalUrls": ["https://example.com"],
"mediaUrls": ["https://..."],
"mediaCount": 1,
"commentSamplesCount": 10,
"scrapedAt": "2026-05-01T10:40:00+00:00"
}

Example comment item

{
"itemType": "comment",
"inputTarget": "NASA",
"parentPostId": "pfbid02abc...",
"parentPostUrl": "https://www.facebook.com/NASA/posts/...",
"isReply": false,
"commentText": "Great post",
"commentAuthor": "Reader Name",
"commentTimestamp": "2h",
"commentId": "comment_123",
"commentUrl": "https://www.facebook.com/NASA/posts/...?...",
"commentSampleIndex": 1,
"scrapedAt": "2026-05-01T10:40:00+00:00"
}

Example reply item

{
"itemType": "reply",
"inputTarget": "NASA",
"parentPostId": "pfbid02abc...",
"parentPostUrl": "https://www.facebook.com/NASA/posts/...",
"parentCommentId": "comment_123",
"parentCommentUrl": "https://www.facebook.com/NASA/posts/...?...",
"isReply": true,
"commentText": "Reply text",
"commentAuthor": "Another Reader",
"commentTimestamp": "1h",
"commentId": "reply_456",
"commentUrl": "https://www.facebook.com/NASA/posts/...?...",
"commentSampleIndex": 2,
"scrapedAt": "2026-05-01T10:40:00+00:00"
}

Operational notes

  • enrichmentMode: "none" is posts only.
  • enrichmentMode: "deep" is required for comment and reply rows.
  • Deep mode is slower and more expensive than post-only scraping.
  • The Actor defaults to a longer Apify timeout for Deep mode workloads.
  • The scraper may reduce effective concurrency in Deep mode to keep runs stable.
  • Public Facebook coverage still varies by target, region, proxy quality, and login walls.
  • Residential proxies usually improve coverage, especially for comments.

Limits

This is still a best-effort public scraper. Facebook can change markup, throttle anonymous browsing, hide comments, or block access by region or IP. That means:

  • some targets return many posts and comments
  • some targets return only a few
  • some posts expose comments but not replies
  • some pages are much better with residential proxies

Summary

This Actor is built for teams who want clean Facebook post, comment, and reply data from public targets without exposing internal scraping details in the output.