Facebook Group Posts Scraper avatar

Facebook Group Posts Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Facebook Group Posts Scraper

Facebook Group Posts Scraper

Scrape public Facebook group posts without login or cookies. Get post text, media, reactions breakdown, comments, reshares, and optional group metadata.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Categories

Share

Scrape Facebook group posts from any public Facebook group — no login, password, or cookies required. Get full post text, author details, photos and videos, reaction breakdowns, top comments, shares, reshared posts, and optional group metadata like member count, admins, and rules. Export everything to JSON, CSV, Excel, or Google Sheets in seconds.

What this actor does

  • Scrapes any public Facebook group by pasting a group URL, slug, or numeric group ID
  • No Facebook login, password, or cookies needed — works entirely on public data
  • Captures full post content: text, hashtags, photos/videos, timestamps, and author info
  • Full engagement data: reaction breakdown by type (Like, Love, Haha, Wow, Sad, Angry, Care), total reactions, comment counts, shares, and top comments
  • Reshares included: when a post shares another post, the original post's full content is captured too
  • Four sort orders: top posts, chronological (newest first), recent activity, and buy/sell listings
  • Optional group profile data: description, member count, admin names, group rules, and creation date
  • Monitor mode: schedule recurring runs that return only newly published posts
  • Empty fields are omitted — every record only contains data that was actually found, never null or blank placeholders

Output per post

FieldTypeDescription
idstringFacebook's internal opaque post ID
postIdstringReal numeric post ID
permalinkUrlstringDirect link to the post
groupIdstringNumeric ID of the group the post belongs to
groupUrlstringNormalized URL of the group
textstringFull post text
hashtagsarrayFacebook hashtag page URLs found in the post text
creationTimeintegerUnix timestamp the post was created
authorIdstringNumeric ID of the post author
authorNamestringName of the post author
authorUrlstringURL of the post author's profile
authorUrlIsFallbackbooleantrue when Facebook didn't provide a direct profile link and the URL was built from the author's numeric ID instead
attachmentsarrayPhotos/videos attached to the post, including direct media URLs and auto-generated image captions where available
reactionsTotalintegerTotal reaction count
reactionBreakdownarrayReaction counts by type, e.g. Like/Love/Haha/Wow/Sad/Angry/Care
commentsCountintegerTotal number of comments (including replies)
sharesCountintegerTotal number of shares
topCommentsarrayTop comments, each with text, author, reactions, and permalink
sharedPostobjectThe original post's full data if this post is a reshare, otherwise omitted
groupobjectGroup profile data (only present when "Enrich with group info" is enabled) — see below
inputUrlstringThe input URL that produced this record
scrapedAtstringISO 8601 timestamp of when the record was scraped

group object (when "Enrich with group info" is enabled)

FieldTypeDescription
idstringNumeric group ID
urlstringNormalized group URL
descriptionstringFull group description
memberCountintegerExact member count
memberCountFormattedstringAbbreviated member count, e.g. "75.9K"
createdAtintegerUnix timestamp the group was created
adminsarrayGroup admin names
rulesarrayGroup rules, each with a title and description
privacystringGroup privacy setting, e.g. "Anyone can see who's in the group and what they post."
discoverabilitystringGroup discoverability setting
tagsarrayGroup category tags

Input

FieldTypeDefaultDescription
startUrlsarrayFacebook group URLs, bare slugs, or numeric group IDs (required)
sortBystringtoptop / chronological / recent_activity / listings
maxItemsinteger50Maximum posts to return per group (1–500)
includeTopCommentsbooleantrueInclude each post's top comments
enrichGroupInfobooleanfalseAdd group description, member count, admins, and rules to every post
monitoringModebooleanfalseOnly return posts not seen in a previous run for the same group

Supported group URL formats

  • Group URL: https://www.facebook.com/groups/pythondevelopers/
  • Group with a numeric ID: https://www.facebook.com/groups/123456789012345/
  • Bare slug: pythondevelopers

Example: basic scrape of a group's top posts

{
"startUrls": ["https://www.facebook.com/groups/pythondevelopers/"],
"sortBy": "top",
"maxItems": 50,
"includeTopComments": true
}

Example: scrape with group profile data included

{
"startUrls": ["https://www.facebook.com/groups/pythondevelopers/"],
"sortBy": "chronological",
"maxItems": 20,
"enrichGroupInfo": true
}

Example: monitor a group for new posts only

{
"startUrls": ["https://www.facebook.com/groups/pythondevelopers/"],
"maxItems": 50,
"monitoringMode": true
}

Example: multiple groups in one run

{
"startUrls": [
"https://www.facebook.com/groups/pythondevelopers/",
"https://www.facebook.com/groups/javascript/"
],
"sortBy": "recent_activity",
"maxItems": 100
}

Example output

{
"id": "UzpfSTEwMDA3NjkwNTU4ODg0MDpWSzoyODQ0OTkzNTA4Nzk3OTA4MQ==",
"postId": "28449935087979081",
"permalinkUrl": "https://www.facebook.com/groups/pythondevelopers/posts/28449935087979081/",
"groupId": "527595400639758",
"groupUrl": "https://www.facebook.com/groups/pythondevelopers/",
"text": "PYTHON #60 CODING CHALLENGE - can you solve it?",
"hashtags": ["https://www.facebook.com/hashtag/python"],
"creationTime": 1789471995,
"authorId": "100076905588840",
"authorName": "Dhiraj Kumar",
"authorUrl": "https://www.facebook.com/profile.php?id=100076905588840",
"authorUrlIsFallback": true,
"attachments": [
{
"type": "Photo",
"url": "https://scontent.xx.fbcdn.net/v/...",
"width": 1080,
"height": 1920,
"accessibilityCaption": "May be an image of text that says \"PYTHON #60 CODING CHALLENGE...\""
}
],
"reactionsTotal": 796,
"reactionBreakdown": [
{"type": "Like", "count": 450},
{"type": "Love", "count": 310},
{"type": "Wow", "count": 20},
{"type": "Care", "count": 15},
{"type": "Haha", "count": 1}
],
"commentsCount": 42,
"sharesCount": 3,
"topComments": [
{
"id": "Y29tbWVudDoxMjM0NQ==",
"text": "Nice challenge!",
"authorName": "Jari Abbas",
"authorId": "100001234567890",
"authorUrl": "https://www.facebook.com/jari.abbas.691553",
"createdAt": 1789472500,
"reactionsTotal": 5,
"replyCount": 1,
"permalinkUrl": "https://www.facebook.com/groups/pythondevelopers/posts/28449935087979081/?comment_id=12345"
}
],
"inputUrl": "https://www.facebook.com/groups/pythondevelopers/",
"scrapedAt": "2026-09-16T12:00:00+00:00"
}

Use cases

  • Community monitoring — track new posts and discussions in Facebook groups relevant to your brand, product, or industry
  • Market research — analyze engagement patterns, sentiment, and popular topics inside niche communities
  • Content aggregation — collect group discussions for newsletters, digests, or dashboards
  • Lead generation — identify active members and recurring topics in professional or interest-based groups
  • Trend tracking — use monitor mode on a schedule to catch new activity as it happens
  • Competitor and brand monitoring — watch what's being said in industry-specific or competitor-run Facebook groups

FAQ

Do I need to log in to Facebook to use this actor? No. This actor works entirely without a Facebook login, password, cookies, or any authentication. It only accesses data that's publicly visible to anyone, logged in or not.

Is this affiliated with Facebook or Meta? No. This is an independent, third-party tool that reads publicly available Facebook group data. It is not created, endorsed, or affiliated with Meta Platforms, Inc.

Can I scrape private or closed Facebook groups? No. Private and closed groups require Facebook group membership to view posts, and this actor cannot bypass that requirement. It only works with public groups.

What happens if a group is private, invalid, or doesn't exist? The run does not fail. Instead, the actor returns a diagnostic record noting that no posts could be retrieved for that specific group, so you can tell "group is private or invalid" apart from "group genuinely has zero posts" — and any other groups in the same run are unaffected.

Can I search Facebook groups by keyword? Not directly — Facebook doesn't offer true keyword search across a group's full post history. This actor fetches a group's feed in the sort order you choose (top, chronological, recent activity, or listings) as Facebook itself renders it. If you need posts about a specific topic, scrape the feed and filter the results for your keyword afterward.

How is the member count calculated? Member count is Facebook's own reported number from the group's About page, returned both as an exact figure and an abbreviated string (e.g. "75.9K"). It's only included when "Enrich with group info" is enabled.

What does monitor mode do? When enabled, the actor remembers which post IDs it has already returned for each group, across separate runs. The next run only pushes posts that weren't seen before — ideal for scheduled runs where you just want new activity.

Why is authorUrl sometimes a profile.php?id=... link instead of a normal profile URL? Facebook doesn't always expose a normal vanity profile URL for a post's author. When that happens, the actor builds a valid link from the author's numeric ID so the field is never left empty. Check authorUrlIsFallback to tell the two cases apart.

How many posts can I scrape per group? Up to 500 posts per group in a single run, controlled by the "Max posts per group" input field.

How fresh is the data? Every run fetches Facebook's live group feed at the moment the actor runs — there's no caching or delay, so results reflect what's currently visible on Facebook.

Can I export the results to Excel, CSV, or Google Sheets? Yes. Every Apify actor run's dataset can be exported to JSON, CSV, Excel (XLSX), XML, or pushed directly to Google Sheets from the run's results page.

Can I scrape multiple Facebook groups in one run? Yes. Add as many group URLs, slugs, or IDs as you like to the input list — each is scraped in the same run and tagged with its own groupUrl in the output.