Facebook Groups Scraper avatar

Facebook Groups Scraper

Pricing

from $1.20 / 1,000 group posts

Go to Apify Store
Facebook Groups Scraper

Facebook Groups Scraper

Scrape posts from public Facebook groups without login: text, author, photos, videos, reactions, comment and share counts, plus optional comments and replies. Filter by date, sort by newest or top posts, and export clean JSON, CSV or Excel. Pay only for results.

Pricing

from $1.20 / 1,000 group posts

Rating

0.0

(0)

Developer

Coder

Coder

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract posts from public Facebook groups into clean, structured JSON — text, author, media, reaction breakdowns, engagement counts, and optional comments with replies.

Use it for community monitoring, social listening, market research, content archiving, and AI-ready datasets — without manually scrolling group feeds.

For Facebook Pages or profiles, use the Facebook Posts Scraper. For comments on known post URLs only, use the Facebook Comments Scraper. For Marketplace listings, use the Facebook Marketplace Scraper.


What you get

Each dataset row is one group post:

SectionWhat it contains
IdentityPost URL, post ID, group ID / title, and the input link that produced the row
ContentPost text, publish time, and author (name, profile URL, profile picture when available)
EngagementLikes, comments count, shares, and reaction breakdown (Like, Love, Care, Haha, Wow, Sad, Angry)
MediaPhoto / video attachments, photo counts, and shared links when present
Comments $Optional nested comments with replies when comment collection is enabled

Results stream to the dataset as posts are collected, so you can preview progress before the run finishes.


Quick start on Apify

  1. Open the Actor in the Apify Console.
  2. Add one or more public Facebook group links (full URLs, vanity names, or numeric IDs).
  3. Set Maximum posts per group (default 20).
  4. Optionally choose Feed sorting and a Only posts newer than cutoff.
  5. Leave Add comments and replies $ off for the fastest, cheapest runs — or enable it when you need discussion threads.
  6. Click Start and open the Dataset tab.

Example input (posts only):

{
"startUrls": [
"https://www.facebook.com/groups/dogspotting/",
"https://www.facebook.com/groups/3277056332339849/"
],
"maxPosts": 25,
"viewOption": "CHRONOLOGICAL",
"includeComments": false
}

Example input (posts + comments and replies):

{
"startUrls": ["https://www.facebook.com/groups/dogspotting/"],
"maxPosts": 10,
"viewOption": "RECENT_ACTIVITY",
"includeComments": true,
"maxComments": 15,
"includeReplies": true,
"maxRepliesPerComment": 5,
"commentsSortBy": "newest"
}

Input parameters

FieldstartUrls
TypeList of strings
RequiredYes

Add one public group per row. Supported formats in the same run:

  • Full URLs: https://www.facebook.com/groups/dogspotting/
  • Mobile / web hosts: m.facebook.com, web.facebook.com
  • Numeric IDs: 3277056332339849
  • Vanity names: dogspotting
  • Post, permalink, or tab links (About, Media, …) — resolved to the parent group feed

Duplicate links that resolve to the same group are scraped once. Limits below apply per group.

Maximum posts per group

FieldmaxPosts
Default20

Maximum number of posts to collect from each group.

Feed sorting

FieldviewOption
DefaultCHRONOLOGICAL
ValueMeaning
CHRONOLOGICALNew posts (chronological)
RECENT_ACTIVITYNewest activity
TOP_POSTSMost relevant (top posts)

Only posts newer than

FieldonlyPostsNewerThan
OptionalYes

Stop paginating a group once older posts are reached. Accepts:

  • Absolute date: 2026-09-01
  • Relative: 7 days, 2 weeks, 1 month

Leave empty to collect without a date cutoff.


Comments and replies $

Fields marked with $ are billed separately from posts: each delivered comment or reply counts as one comment event.

FieldDescriptionDefault
includeComments $Collect comments (and replies, when enabled) for each postfalse
maxComments $Maximum top-level comments per post10
includeReplies $Also collect replies under each top-level commenttrue
maxRepliesPerComment $Maximum replies under each top-level comment5
commentsSortBynewest, most_relevant, or all_commentsnewest

Tips

  • Keep comments off for feed-only monitoring.
  • Use a lower maxComments / maxRepliesPerComment on busy groups to control cost and runtime.
  • Replies add conversation context but increase runtime on active threads.

Output

Each dataset item is one Facebook group post.

Example output shape

{
"facebookUrl": "https://www.facebook.com/groups/dogspotting/",
"inputUrl": "https://www.facebook.com/groups/dogspotting/",
"groupId": "10487409466",
"groupTitle": "Dogspotting",
"url": "https://www.facebook.com/groups/dogspotting/posts/10166216103904467/",
"legacyId": "10166216103904467",
"time": "2026-09-23T12:59:53Z",
"timestamp": 1790168393,
"text": "This dog is helping mum operate the cash desk…",
"user": {
"id": "…",
"name": "Example Author",
"profileUrl": "https://www.facebook.com/…",
"profilePic": "https://…"
},
"likesCount": 122,
"commentsCount": 2,
"sharesCount": 0,
"reactionLikeCount": 94,
"reactionLoveCount": 28,
"photoCount": 2,
"attachments": [],
"comments": [
{
"legacyId": "10166216852844467",
"text": "Working hard",
"createdAt": "2026-09-23T16:56:38Z",
"author": {
"name": "Example Commenter"
},
"replyCount": 1,
"replies": [
{
"legacyId": "…",
"text": "So cute!",
"createdAt": "2026-09-23T17:01:00Z",
"author": {
"name": "Example Reply"
}
}
]
}
]
}

When comments are disabled, the comments array is omitted or empty.


Best for

  • Community and brand monitoring in public Facebook groups
  • Tracking engagement and reaction mix over time
  • Research on topics, products, or local communities
  • Archiving public group discussions
  • Feeding structured social data into BI, NLP, or AI pipelines

How to use

  1. Start with a small maxPosts (for example 5) on one known-public group to validate output.
  2. Add more groups once the shape looks right.
  3. Enable comments only when you need conversation text — it increases runtime and cost.
  4. Use onlyPostsNewerThan for scheduled runs that should focus on recent activity.
  5. Export the dataset as JSON, CSV, or Excel, or pull it through the Apify API.

FAQ

Does this work on private groups?

No. Only public groups that are visible without logging in are supported.

Can I mix vanity names and full URLs?

Yes. Put them in the same startUrls list; each is normalized to the group feed.

Why are some commentsCount values higher than the comments array?

commentsCount is Facebook’s total for the post (often including replies). The comments array only contains what was collected under your maxComments / maxRepliesPerComment settings.

A group was skipped with "not available" — why?

Facebook returns its generic "content isn't available" page for groups that were deleted, renamed, or switched to private. The Actor reports that group and continues with the rest of your list instead of returning an empty dataset without explanation.

How long does a run take?

Runtime depends mainly on the number of groups, maxPosts, and whether comments/replies are enabled.

Are results streamed?

Yes. Posts are pushed to the dataset as they are collected, so you can inspect early rows while the run continues.


Pricing notes

  • Posts are billed per successful post written to the dataset.
  • Comments and replies $ are billed per delivered comment or reply when that section is enabled.
  • Empty attempts, failed fetches, and filtered-out rows are not billed as results.

Exact prices are shown on the Actor’s Pricing tab in the Apify Store.


Responsible use

Use this Actor only for publicly available content and ensure your use complies with applicable laws, regulations, and platform terms for your jurisdiction and use case.

Troubleshooting

  • Confirm the group opens in a private/incognito browser window without logging in.
  • Test with a small maxPosts value first.
  • If a group returns nothing, try another known-public group to confirm the run environment.
  • For comment-heavy runs, lower maxComments and maxRepliesPerComment if the run is slow or costly.