Facebook Groups Post & Comments: No cookies require avatar

Facebook Groups Post & Comments: No cookies require

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Facebook Groups Post & Comments: No cookies require

Facebook Groups Post & Comments: No cookies require

⚡1.5$ Facebook Group & Post Comments Scraper . Process 100+ public group URLs in parallel High Speed and extract post text, authors, timestamps, engagement, media, shared posts, sale listings, and comments. No login or cookies required.

Pricing

from $1.00 / 1,000 results

Rating

4.2

(8)

Developer

TheDoor

TheDoor

Maintained by Community

Actor stats

31

Bookmarked

4.5K

Total users

234

Monthly active users

3 days ago

Last modified

Share

⚡ High-Speed Facebook Group Scraper — 100+ URLs in Parallel

Facebook Group scraper process map

⚡ Built for bulk scraping: submit 100+ public Facebook Group URLs in one run and process them concurrently.

Collect structured Facebook Group posts for research, monitoring, content analysis, and automation.

⚡ Why use this Actor?

  • ⚡ High-speed bulk processing — process many group URLs asynchronously in one run.
  • 🚀 100+ URLs per run — built for large client jobs, automation, and SaaS workflows.
  • 📊 Complete post data — text, author and profile data, timestamps, engagement, media, shared posts, sale listings, and top comments.
  • 🎯 Reliable pagination — collect the requested posts with timeframe-aware filtering.

Explore the full Facebook scraping toolkit

Need comments from the posts you collect? Use the Facebook Comment Scraper for comments, replies, images, and shared links. For public Facebook Pages, use the Facebook Page Scraper to collect page posts.

📦 Output at a glance

Each dataset record can include:

  • Regular posts — text, author, timestamps, engagement, media, and comments.
  • Shared posts — original post details and original media.
  • Sale posts — listing title, price, location, seller, and listing media.
  • Comment data — comment text, author, direct URL, media, shared links, reactions, and replies.

The detailed JSON examples and field tables are provided below in the Output data section.

🚀 Quick start

{
"url": [
"https://www.facebook.com/groups/sciencehumor/",
"https://www.facebook.com/groups/dogspotting/"
],
"maxPosts": 50,
"sortingOrder": "newest_posts",
"includeTopComment": true,
"postsNewerThan": "7 days"
}

Bulk example: many groups in one run

{
"url": [
"https://www.facebook.com/groups/sciencehumor/",
"https://www.facebook.com/groups/dogspotting/",
"https://www.facebook.com/groups/instantpotcommunity/"
],
"maxPosts": 20,
"sortingOrder": "most_relevant",
"postsNewerThan": "7 days"
}

The same format supports 50, 100, or more group URLs. The groups are not processed as one blocking sequential batch; each valid group starts its own asynchronous collection task.

Optional: collect comments for each post

Comment collection is per post returned from the group feed. Do not provide a second URL list. Set fetchAllComments to true to fetch all comments and replies for each post, or false for post-only output.

{
"url": ["https://www.facebook.com/groups/dogspotting/"],
"maxPosts": 10,
"fetchAllComments": true
}

🧩 Input fields

FieldTypeRequiredDefaultDescription
urlarray of stringsYesOne or more public Facebook Group URLs. Duplicate URLs are ignored by the input schema.
maxPostsintegerNo50Maximum matching posts per group.
sortingOrderenumNonewest_postsnewest_posts, newest_activity, most_relevant, or buy_sell_listings.
includeTopCommentbooleanNotrueInclude the top comment. When fetchAllComments is enabled, all fetched comments and replies are stored in topComment.
fetchAllCommentsbooleanNotrueFetch all comments and replies when enabled. Posts with many comments may take longer; set to false for post-only output.
postsNewerThandatepickerNodisabledChoose the Relative or Absolute tab. Examples: 7 days or 2026-08-01.

Use the fields shown above. Older timeframe fields are not needed.

⏱️ Timeframe filter

postsNewerThan is the only recommended timeframe input. If it is omitted, no timeframe filter is applied; the actor follows sortingOrder until maxPosts is reached or Facebook returns no more posts.

The Actor applies the date filter to the posts returned by the selected sorting order. If the feed contains fewer matching posts, the dataset may contain fewer records than maxPosts.

Relative examples:

"postsNewerThan": "30 minutes"
"postsNewerThan": "7 days"

Absolute date and timestamp examples:

"postsNewerThan": "2026-08-08"
"postsNewerThan": "2026-08-08T00:00:00Z"

The timeframe is independent of the feed order. For example, sortingOrder: "most_relevant" with postsNewerThan: "7 days" returns relevant posts from the last seven days; it does not switch to newest order.

🔀 Sorting modes

  • newest_posts: newest posts first.
  • newest_activity: posts with the newest activity first.
  • most_relevant: Facebook's most relevant posts.
  • buy_sell_listings: Buy/Sell listings only. Ordinary posts are skipped.

Examples

  • url: one or more public Facebook Group URLs.
  • maxPosts: maximum number of matching posts per group.
  • sortingOrder: newest_posts, newest_activity, most_relevant, or buy_sell_listings.
  • postsNewerThan: optional absolute date, timestamp, or relative period such as 7 days.

Example:

{
"url": ["https://www.facebook.com/groups/768747966644550/"],
"maxPosts": 20,
"sortingOrder": "newest_posts",
"postsNewerThan": "7 days"
}

Example:

{
"url": ["https://www.facebook.com/groups/768747966644550/"],
"maxPosts": 50,
"sortingOrder": "buy_sell_listings"
}

The target is the number of sale listings, not the number of feed pages. If Facebook returns ordinary posts mixed into the feed, they are skipped and are not written to the dataset.

📦 Output data

The dataset contains post records only. Run-level statistics stay in the run log.

Regular post

Example output record. Personal identity fields are redacted; post, media, and comment URLs remain available when Facebook exposes them.

{
"post_type": "regular",
"sharedPost": null,
"sale_post": null,
"post_id": "26296717513297956",
"post_url": "https://www.facebook.com/groups/sciencehumor/permalink/26296717513297956/",
"text": "I'll lean towards trusting reputable scientists on this one.\n#sciencememes #funniestmemes",
"user_name": "***************",
"creation_time": "Fri, 06 Feb 2026 06:12:19 GMT",
"reactions_count": 2974,
"comments_count": 625,
"shares_count": 182,
"media": [
{
"type": "Photo",
"id": "910582434846742",
"uri": "https://example.com/media/photo.jpg",
"url": "https://www.facebook.com/photo/?fbid=910582434846742&set=gm.26296717513297956&idorvanity=226096020786795"
}
],
"topComment": [
{
"id": "***************",
"text": "Once you study and understand thermodynamics, denial just becomes willful ignorance.",
"url": "https://www.facebook.com/groups/sciencehumor/posts/26296717513297956/?comment_id=26296750206628020",
"creation_timestamp": 1770358577,
"replies_count": 27,
"is_reply": false,
"replyto_comment_id": null,
"depth": 0,
"user": {
"id": "***************",
"name": "***************",
"profileUrl": "***************",
"profilePic": "***************"
},
"media": []
},
{
"id": "***************",
"text": "A second comment example.",
"url": "https://www.facebook.com/groups/sciencehumor/posts/26296717513297956/?comment_id=***************",
"creation_timestamp": 1770358600,
"replies_count": 0,
"is_reply": true,
"replyto_comment_id": "***************",
"depth": 1,
"user": {
"id": "***************",
"name": "***************",
"profileUrl": "***************",
"profilePic": "***************"
},
"media": []
}
]
}

sharedPost contains the original shared content and its media when available. sale_post contains Facebook native commerce metadata such as listing ID, product ID, title, price, location, listing URL, seller, and listing media. A regular post that only mentions selling in its text may still have sale_post: null.

Output fields

FieldWhat it contains
post_type, post_id, post_urlPost type, ID, and Facebook URL.
group_url, group_idSource group information.
text, text_preview, creation_timeFull post text, a compact table-friendly text preview, and publication time.
user, user_name, user_id, actorsAuthor name and profile details when available.
reactions_count, comments_count, shares_countEngagement totals.
mediaImages, videos, reels, media IDs, and Facebook URLs attached to the group post.
sharedPostOriginal post content and media when the post is shared.
sale_postNative Facebook sale/listing details and listing media.
topCommentTop comment object when full comments are disabled; when fetchAllComments is enabled, this array contains all fetched comments and replies.

Comment fields

When comments are enabled, each item in topComment may contain:

FieldWhat it contains
id, urlComment ID and direct Facebook comment URL.
text, comment_time, timestampComment content and publication time.
author_name, author_id, author_profile_url, author_profile_pictureComment author information when available.
media, image_urlImages or other media attached to the comment.
shared_link, shared_postShared link or Facebook post referenced by the comment.
replies_count, is_reply, replyto_comment_id, depthReply count and flat reply relationship. Replies are not nested; use replyto_comment_id to identify the parent comment.
reactions_count, reaction_typesComment engagement information when available.

Comments and replies example

Comments and replies are returned as one flat array inside topComment. A reply points to its parent with replyto_comment_id; it is not nested inside a replies array.

{
"topComment": [
{
"id": "comment_1001",
"text": "This is the original comment.",
"url": "https://www.facebook.com/groups/example/posts/123/?comment_id=comment_1001",
"is_reply": false,
"replyto_comment_id": null,
"depth": 0,
"replies_count": 1
},
{
"id": "comment_1002",
"text": "This is a reply to the original comment.",
"url": "https://www.facebook.com/groups/example/posts/123/?comment_id=comment_1002",
"is_reply": true,
"replyto_comment_id": "comment_1001",
"depth": 1,
"replies_count": 0
}
]
}

In this example, comment_1002 is a reply to comment_1001 because its replyto_comment_id matches the parent comment's id.

The default dataset contains post records only. Run summaries and failure diagnostics are written to the run log, not as extra dataset rows.

Shared post

When a group member shares another Facebook post, sharedPost contains the original post. The outer post's media belongs to the group post; media inside sharedPost belongs to the original shared post.

{
"post_type": "shared",
"post_id": "1735323531050607",
"post_url": "https://www.facebook.com/groups/example/permalink/1735323531050607/",
"text": "",
"media": [],
"sharedPost": {
"id": "***************",
"url": "https://www.facebook.com/permalink.php?story_fbid=***************&id=***************",
"user": {
"id": "***************",
"name": "***************",
"profileUrl": "***************"
},
"text": "A shared post with the original author's text and media.",
"media": [
{
"type": "Photo",
"id": "***************",
"uri": "https://scontent.xx.fbcdn.net/original-image.jpg",
"url": "https://www.facebook.com/photo/?fbid=***************"
}
],
"paidPartnership": false
}
}

Sale post example

Sale listings include listing details and listing media separately from the outer post media.

{
"post_type": "sale_post",
"post_id": "...",
"post_url": "https://www.facebook.com/groups/example/permalink/.../",
"text": "...",
"sale_post": {
"id": "...",
"title": "...",
"price": "...",
"location": "...",
"listingUrl": "https://www.facebook.com/groups/example/permalink/.../",
"media": { "id": "...", "uri": "https://example.com/listing-image.jpg", "url": "https://www.facebook.com/photo/?fbid=..." },
"seller": null,
"isSold": false
}
}

Reliability

  • Results can be exported from Apify in the format you need.
  • Facebook may return fewer posts when a group has fewer matching posts or access is restricted.
  • Use the Actor responsibly and comply with Apify and Facebook terms.

❓ FAQ

Can I submit many URLs at once?

Yes. Submit all group URLs in the url array. The Actor validates them, skips inaccessible groups, and processes valid groups concurrently.

Why did a run return fewer posts than maxPosts?

The group may have fewer posts in the selected timeframe, Facebook may end the feed, or the group may be inaccessible. This is not automatically a scraper failure.

Does the Actor support private groups?

No. Private or login-gated groups are filtered and are not written as post records.

Does the dataset contain error rows?

No. The default dataset contains post records only. Group errors and run statistics remain in the run log.

Contact

For bug reports, custom fields, or integration questions, contact tuananhhoangtran2010@gmail.com.