Facebook Group Posts & Comments Scraper avatar

Facebook Group Posts & Comments Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Facebook Group Posts & Comments Scraper

Facebook Group Posts & Comments Scraper

Facebook Group Post Scraper extracts posts from public Facebook groups, capturing text, images, videos, author details, timestamps, reactions, comments, and share data. Ideal for community research, trend analysis, social listening, and automating structured Facebook group post insights.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

1

Bookmarked

39

Total users

3

Monthly active users

2 days ago

Last modified

Share

Facebook Group Posts Scraper Pro

Extract structured data from public Facebook groups: posts, media attachments, per-type reaction breakdowns, share and comment counts, hashtags, mentions, engagement metrics, and optional full comments and replies as separate child rows. Built for social media monitoring, community analysis, lead research, and content analytics.

Keywords: facebook scraper, facebook group scraper, facebook posts, group posts, comments scraper, replies, reactions, attachments, hashtags, mentions, engagement, social media data, community analytics.

What it does

  • Scrapes one or many public Facebook groups from a list of URLs, vanity names, or numeric IDs.
  • Reverse-engineers Facebook's web GraphQL feed (no login required for public groups) using browser TLS impersonation, so requests are accepted by Facebook's endpoint.
  • Emits one row per post, plus optional child rows per comment and reply.
  • Every field comes from Facebook's real response. Values that Facebook does not return are emitted as null rather than guessed.

Input

FieldTypeDescription
startUrlsarrayFacebook group URLs / vanity names / numeric IDs. Each row is tagged with its source group.
groupUrlstringOptional single-group input (merged with startUrls). Backward compatible.
countintegerMax parent posts across all groups (0 = unlimited). Comments/replies do not count against this.
sortTypeenumnew_posts (newest first), most_relevant, or recent_activity.
scrapeUntildateKeep posts newer than an absolute date (2026-01-15) or relative value (7 days). On new_posts, pagination stops early once older posts are reached.
includeCommentsbooleanFetch comments as child rows.
maxCommentsintegerMax comments per post (0 = none, or unlimited if includeComments is on).
maxRepliesintegerMax replies per comment (0 = skip replies).
keywordsarrayKeep only posts whose text contains at least one term (OR, case-insensitive).
excludeKeywordsarrayDrop posts whose text contains any term.
postTypeenumany, text, photo, video, or link.
minReactionsintegerKeep only posts with at least this many reactions.
cookiestring (secret)Experimental. Raw Cookie header from a logged-in session to access closed groups you belong to.
proxyobjectProxy configuration. Residential is required β€” Facebook blocks datacenter IPs for group feeds.

Counting rule

count limits parent posts only, using a separate counter. Comments and replies are additional and are bounded per-post by maxComments and per-comment by maxReplies.

Output

Parent post rows (type: "post", isChild: false) and, when enabled, child rows (type: "comment" / "reply", isChild: true) are pushed to the default dataset. Child rows are also mirrored to a per-run comments-<runId> dataset and are interleaved right after their parent post.

Post fields

FieldDescription
postId, feedbackIdPost identifier and feedback token.
groupId, groupName, groupUrlSource group identity.
urlPost permalink.
createdAt, publishedAtUnix seconds and ISO-8601 UTC.
textPost text.
hashtags, mentionsParsed from the message entity ranges.
attachmentsList of { type, url, image, width, height, title, accessibilityCaption, mediaId } for photos, videos, links, and albums.
userAuthor { id, name, url, type, profilePicture }.
reactionCountTotal reactions.
reactionsPer-type breakdown, e.g. { "Like": 51, "Love": 2, "Care": 2 }.
shareCount, commentCountShare and comment totals.
engagementTotalreactionCount + shareCount + commentCount.
engagementRateengagementTotal / group member count when the member count is available, else null.
postAgeHoursHours between post creation and scrape time.
scrapedAtISO-8601 UTC scrape timestamp.

Comment / reply fields

FieldDescription
type, isChildcomment or reply; true.
commentId, parentId, postId, postUrlIdentity and linkage (parentId = post ID for comments, parent comment ID for replies).
text, createdAt, publishedAt, depthComment content and timing.
userAuthor { id, name, url, gender, profilePicture }.
reactionCount, reactions, replyCountComment engagement.
urlDirect comment link.

Notes and compliance

  • Only publicly accessible group content is collected. Private groups require the experimental cookie input and membership.
  • Facebook gates group feeds behind anti-bot measures; residential proxy is required and the actor retries across IPs until a group's feed responds.
  • Ensure your use complies with Facebook's Terms of Service, applicable data-protection laws (GDPR, CCPA), and local regulations. You are responsible for how scraped data is used.

Technical

  • Runtime: Python 3, curl_cffi (Chrome TLS/JA3 impersonation), Apify SDK.
  • Pagination: cursor-based for the feed; separate comment and reply pagination queries.
  • Billing: pay-per-event row_result charged per emitted row (parent and child).