Facebook Group Members Scraper avatar

Facebook Group Members Scraper

Pricing

from $6.00 / 1,000 member founds

Go to Apify Store
Facebook Group Members Scraper

Facebook Group Members Scraper

Extract active, visible members of public Facebook groups from recent post and comment authors. Cookieless, provider-backed, MCP-ready.

Pricing

from $6.00 / 1,000 member founds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

17

Total users

11

Monthly active users

24 days ago

Last modified

Share

Facebook Group Members Scraper extracts active, visible members of public Facebook groups from recent post and comment authors. It accepts public Facebook group URLs or numeric group IDs, and returns one deduplicated record per observed member. Each record can include identity fields, activity counts, first and last seen timestamps, sample activity text, source group details, and provider source so you can review who was observed and how they appeared in the group.

The Actor is cookieless, provider-backed, and usable through Apify MCP. It is designed for public group activity that is visible in posts and comments, and the dataset represents one member record per unique person found across the scanned input groups.

Best fit and connected workflows

Use this Actor when your workflow starts with a public Facebook group and you want the people behind recent engagement rather than the group page itself. It fits well for:

  • community research on active participants in a niche group
  • lead discovery from public group engagement
  • identifying posters, commenters, and mixed-activity members for follow-up analysis
  • feeding member profiles into downstream comment or reaction workflows

A natural next step is to deepen a returned member trail into post-level or reaction-level detail:

  • Then use Facebook Post Comments Scraper works well after this Actor when a returned member record points to a public post that you want to inspect at the comment level.
  • Then use Facebook Likes Scraper - Public Reactions & Profiles works well after this Actor when you want public reactions and profile-level follow-up on a returned Facebook record.

Practical scenario

Maya manages a community research project focused on plant-based cooking groups. She starts with a public group URL and wants a list of active members who have recently posted or commented. The Actor returns names, profile URLs, activity types, post and comment counts, reactions received, last active timestamps, and a sample text snippet.

Maya sees that one member appears as both, with several comments and a recent post. She uses lastActiveAt to prioritize the most recent voices and uses sampleUrl to review the original post before deciding which profiles to include in her outreach shortlist.

Input

Input fields

FieldTypeDescription
groupUrlsarray of stringsPublic Facebook group URLs to extract members from. Accepts /groups/<slug> or /groups/<numericId> forms.
groupIdsarray of stringsNumeric Facebook group IDs as an alternative to URLs. Merged with groupUrls.
maxMembersintegerMaximum unique members to return per group before stopping. Defaults to 200.
maxPostsPerGroupintegerNumber of recent group posts to scan while collecting members. Defaults to 50.
includeCommentersbooleanIncludes commenters from scanned posts in addition to post authors. Defaults to true.
deepCommentsbooleanFetches full comment threads for each post to surface more commenters. Defaults to false.
sortBystringProvider-side ordering for scanned posts. Supported values: RECENT_ACTIVITY, TOP_POSTS, CHRONOLOGICAL, CHRONOLOGICAL_LISTINGS.
providerOrderstringSelects which backing provider to try first. Defaults to scrapecreators-first.
includeRawDatabooleanAttaches the raw provider author object under rawAuthor for debugging. Defaults to false.

Focused input example

{
"groupUrls": [
"https://www.facebook.com/groups/vegrecipes"
],
"groupIds": [
"198591470769811"
],
"maxMembers": 100,
"maxPostsPerGroup": 50,
"includeCommenters": true,
"deepComments": false,
"sortBy": "RECENT_ACTIVITY",
"providerOrder": "scrapecreators-first",
"includeRawData": false
}

Output

One dataset row represents one unique active member observed across the scanned input groups. The dataset is published in the default Apify dataset, and the run summary is stored in the default key-value store under OUTPUT.

Output fields

FieldTypeDescription
memberIdstringFacebook pfbid identifier for the member.
namestringMember display name.
shortNamestring or nullMember first or short name when provided.
profileUrlstringFacebook profile URL built from the member ID.
activityTypestringHow the member was seen: poster, commenter, or both.
postCountintegerNumber of scanned posts authored by this member.
commentCountintegerNumber of scanned comments authored by this member.
reactionsReceivedintegerTotal reactions on this member's scanned posts.
firstSeenAtstring or nullISO 8601 timestamp of the earliest scanned activity.
lastActiveAtstring or nullISO 8601 timestamp of the most recent scanned activity.
sampleTextstring or nullSnippet of the member's most recent scanned post or comment.
sampleUrlstring or nullURL of the post tied to the sample activity.
groupUrlstringCanonical URL of the source group.
groupIdstring or nullNumeric group ID when known.
groupSlugstring or nullGroup vanity slug when known.
sourcestringProvider that supplied the activity (scrapecreators or sociavault).
scrapedAtstringISO 8601 timestamp the record was produced.

Illustrative output record

{
"memberId": "pfbid02d8example",
"name": "Satish Chandra",
"shortName": "Satish",
"profileUrl": "https://www.facebook.com/pfbid02d8example",
"activityType": "both",
"postCount": 2,
"commentCount": 7,
"reactionsReceived": 34,
"firstSeenAt": "2026-06-25T10:10:00.000Z",
"lastActiveAt": "2026-06-25T11:04:00.000Z",
"sampleText": "Thanks for sharing this recipe idea.",
"sampleUrl": "https://www.facebook.com/groups/vegrecipes/posts/1234567890/",
"groupUrl": "https://www.facebook.com/groups/vegrecipes",
"groupId": null,
"groupSlug": "vegrecipes",
"source": "scrapecreators",
"scrapedAt": "2026-06-25T11:10:00.000Z"
}

How it works

This Actor uses a cookieless, provider-backed chain to derive unique active members from public group activity.

  • It accepts public Facebook group URLs and numeric group IDs.
  • It scans recent visible group posts according to the selected sort order.
  • It collects authors of posts and, when enabled, commenters from the scanned posts.
  • It can fetch full comment threads when deepComments is enabled, which surfaces more commenters from the same posts.
  • It deduplicates all observed authors into one member record per person per group.
  • It records member activity metadata such as counts, sample text, source group, source provider, and timestamps.
  • It exposes output in a dataset and run summary in the default key-value store.

The live contract also shows provider environment variables for ScrapeCreators and SociaVault, which matches the provider-backed execution model.

Pricing

Facebook Group Members Scraper uses Pay per event pricing plus Apify platform usage.

  • Actor start is charged once per run to cover initialization.
  • Member found is charged once per unique active member returned in the dataset.

For example, if a run returns one hundred unique members, the billed event count includes one actor start event plus one hundred member-found events. Open the live Pricing tab in the Apify Console for the current pricing details.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. It returns structured member records from public Facebook group activity, which makes it a practical tool for agents that need person-level signals from posts and comments.

Tool description: Given public Facebook group URLs or numeric group IDs, the tool returns deduplicated records for active members observed in recent visible posts and comments. It is useful for extracting name, profile URL, activity type, counts, sample activity, and source group metadata in a structured dataset.

Actor identity: khadinakbar/facebook-group-members-scraper

Analyze this public Facebook group and return the deduplicated member records for people who appear in recent visible posts and comments. Include names, profile URLs, activity types, counts, last active time, sample text, and source group metadata.

Output interpretation and provenance: Each dataset item represents one unique observed member. activityType shows whether the person appeared as a poster, commenter, or both. source identifies the provider that supplied the activity, and scrapedAt shows when the record was produced. groupUrl, groupId, and groupSlug connect the member back to the source group.

Scope, pagination, and cost guidance: The Actor scans recent visible posts up to maxPostsPerGroup and stops when it reaches maxMembers or when the group runs out of visible posts. includeCommenters adds commenters already embedded in scanned posts. deepComments can surface more commenters from the same posts and may increase provider work and billed member events. For small samples, set a smaller maxMembers value before running the Actor.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
groupUrls: ['https://www.facebook.com/groups/vegrecipes'],
maxMembers: 25,
maxPostsPerGroup: 20,
includeCommenters: true,
deepComments: false,
sortBy: 'RECENT_ACTIVITY',
providerOrder: 'scrapecreators-first',
includeRawData: false,
};
const run = await client.actor('khadinakbar/facebook-group-members-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(item.name, item.profileUrl, item.activityType);
}

Best results and outcome guidance

Use a public group URL or numeric group ID that points to the exact group you want to analyze. If you want currently active members, keep sortBy on RECENT_ACTIVITY. If you want a broader view of engaged authors, increase maxPostsPerGroup and enable includeCommenters. If you want more commenter coverage from busy posts, turn on deepComments. Use includeRawData only when you want provider-level inspection in the member records.

A practical routing pattern is:

  1. Start with this Actor to identify active members in a public group.
  2. Use sampleUrl or the member profile link to review the underlying public activity.
  3. Continue into Facebook Post Comments Scraper when the next step is comment-level inspection.
  4. Continue into Facebook Likes Scraper - Public Reactions & Profiles when the next step is reaction-level or profile-oriented follow-up.

Continue the workflow

Design note

I found that the dataset contract centers each record on a single deduplicated person, and the fields consistently tie that person back to one source group and one provider. That made it clear the README should describe one member record as one observed active member, rather than a roster entry.

FAQ

Can I use group URLs and group IDs together?

Yes. The input schema accepts both groupUrls and groupIds, and the Actor merges them into one run.

What kind of Facebook input fits this Actor suitable?

Use public group URLs in /groups/<slug> form or numeric group IDs. The schema is scoped to groups, not profile URLs or page URLs.

How does this differ from a group posts scraper?

This Actor focuses on people. It derives member records from authors of recent public posts and comments. A group posts scraper focuses on post content instead.

What should I connect after this Actor if I need more detail?

If a returned member record points you to a post that needs comment-level analysis, use Facebook Post Comments Scraper. If you want public reactions and profile-oriented follow-up, use Facebook Likes Scraper - Public Reactions & Profiles when the next workflow needs that Actor's focused input and output contract.

How is the output shaped for downstream processing?

The dataset is already deduplicated and includes stable member identifiers, profile links, activity counts, source-group metadata, and timestamps, which makes it suitable for enrichment or agent workflows.

Responsible use

Use this Actor only for lawful purposes and in line with applicable platform terms and data-protection rules. It processes publicly visible group activity and returns structured records from that activity. Review your own compliance requirements before storing, sharing, or acting on the output.