Facebook Group Profile Scraper avatar

Facebook Group Profile Scraper

Pricing

$2.65 / 1,000 group profiles

Go to Apify Store
Facebook Group Profile Scraper

Facebook Group Profile Scraper

Extract public Facebook group profiles from direct URLs, usernames, or numeric IDs. Get group identity, description, history, activity, membership, visibility, listed administrators, moderators, and rules in structured dataset rows.

Pricing

$2.65 / 1,000 group profiles

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

👥 Turn direct Facebook group sources into profile data

Community researchers, moderators, marketers, and developers can use this Facebook group profile scraper to turn direct Facebook group URLs, usernames, or numeric IDs into structured dataset rows. Each saved row includes group identity, public description, history, posting activity, membership, visibility, listed administrators and moderators, and public rules. Use those fields to compare communities or review a group's public profile without copying values by hand.

📊 Review each group in one structured row

Each saved row is the first eligible occurrence of one submitted group. If the same source group appears again through another URL, username, or ID, the Actor ignores the later match. The row describes the first saved match and does not combine later matches.

Public fields are returned when Facebook exposes them. A missing source field stays unfilled, and an unresolved group does not produce a profile row.

▶️ Run a Facebook group profile check

Choose Direct group URL, Group username, or Numeric group ID in findGroupsBy, then add values to the matching list. The other lists are ignored. The Actor reads the public group profile and saves one row for each group it can resolve. It does not discover groups by keyword or collect posts, comments, or member lists.

Run steps

  1. Choose a source type in findGroupsBy.
  2. Add one or more values to its matching list.
  3. Start the Actor.
  4. Open the group profiles in the default dataset.

⚙️ Input

Choose one source type in findGroupsBy. Add values to its matching list. The other lists are ignored.

Input fields

FieldTypeWhat it does
findGroupsBystringSelects url, username, or id and chooses which source list to use.
groupUrlsarray of objectsAdds one or more direct public Facebook group URL objects. Use this when findGroupsBy is url.
groupUrls[].urlstringHolds one direct public Facebook group URL.
groupUsernamesarray of stringsAdds one or more Facebook group usernames without @. Use this when findGroupsBy is username.
groupIdsarray of stringsAdds one or more numeric Facebook group IDs. Keep each ID as a full number. Use this when findGroupsBy is id.

Example input

This example is copied from the public input of the successful current-beta default-input run:

{
"findGroupsBy": "url",
"groupUrls": [
{
"url": "https://www.facebook.com/groups/1010440649638729"
}
]
}

The example uses URL mode. For another source type, change findGroupsBy and fill the matching list.

🧾 Output

Run output

FieldTypeWhat it does
datasetstringOpens the group profile rows from this run.

Group profile row

The default dataset has one group profile row shape. identity is required. Other fields may be omitted when Facebook does not expose them, and arrays may be empty.

FieldTypeWhat it does
identityobjectHolds the stable group identity and resolved public link.
identity.groupIdstringGives Facebook's stable group ID.
identity.namestringGives the group name shown by Facebook.
identity.urlstringGives the resolved public group URL.
identity.usernamestringGives the group username shown by Facebook, without @, when available.
descriptionstringGives the public group description shown by Facebook.
historyobjectHolds creation and history details shown by Facebook.
history.createdAtstringGives the group creation date in date form when it can be read exactly.
history.summarystringGives public history text shown by Facebook.
postingActivityobjectHolds daily and monthly posting activity.
postingActivity.postsPerDaynumberGives the normalized daily post count from Facebook's displayed value.
postingActivity.postsPerDayDisplaystringGives the daily posting value as Facebook displays it.
postingActivity.postsPerMonthnumberGives the normalized monthly post count from Facebook's displayed value.
postingActivity.postsPerMonthDisplaystringGives the monthly posting value as Facebook displays it.
membershipobjectHolds member count and recent member growth.
membership.memberCountintegerGives the normalized member count from Facebook's displayed value.
membership.memberCountDisplaystringGives the member count as Facebook displays it.
membership.recentMemberGrowthobjectHolds the recent member-growth value.
membership.recentMemberGrowth.countintegerGives the normalized number of new members in the stated period.
membership.recentMemberGrowth.periodstringGives the period used by Facebook for the growth value.
membership.recentMemberGrowth.displaystringGives the recent growth value as Facebook displays it.
visibilityobjectHolds the group's privacy and discoverability status.
visibility.privacystringGives the group privacy status shown by Facebook.
visibility.discoverabilitystringGives the group discoverability status shown by Facebook.
administratorsarray of objectsLists administrators that Facebook shows for the group.
administrators[].namestringGives an administrator name shown by Facebook.
administrators[].profileUrlstringGives an administrator's public Facebook profile link.
moderatorsarray of objectsLists moderators that Facebook shows for the group.
moderators[].namestringGives a moderator name shown by Facebook.
moderators[].profileUrlstringGives a moderator's public Facebook profile link.
rulesarray of objectsLists rules or guidelines that Facebook shows for the group.
rules[].titlestringGives a rule title when Facebook shows one.
rules[].textstringGives the public rule text shown by Facebook.

Example group profile row

This complete row comes from a successful current-beta run. It shows the public values returned for one group at retrieval time.

{
"identity": {
"groupId": "506273379443089",
"name": "OFFRO CASA - AFFITTO ALLOGGI & STANZE X STUDENTI - TORINO",
"url": "https://www.facebook.com/groups/OFFROCASA/",
"username": "OFFROCASA"
},
"description": "> Dal 2012 sempre dalla parte degli studenti e dei privati <\nOggi probabilmente l’ultimo gruppo torinese di affiti non svenduto a compagnie. \n\nLeggete bene le regole prima di richiedere l’iscrizione, la quale sarà istantanea se vi iscrivete prima dal gruppo gemello CERCO. E fate i bravi una volta dentro.\nMettete LIKE qui se trovate casa/inquilino grazie a questo gruppo! (41)\n\n> WELCOME INTERNATIONALS! Group rules in English in first comment here. Like this post if you find your accomodation thanks to this group!",
"history": {
"createdAt": "2013-07-18",
"summary": "Group created on July 18, 2013. Name last changed on February 12, 2018."
},
"postingActivity": {
"postsPerDay": 20,
"postsPerDayDisplay": "20",
"postsPerMonth": 541,
"postsPerMonthDisplay": "541"
},
"membership": {
"memberCountDisplay": "43,351 total members",
"memberCount": 43351,
"recentMemberGrowth": {
"display": "No new members in the last week",
"count": 0,
"period": "last week"
}
},
"visibility": {
"privacy": "Public group",
"discoverability": "Visible"
},
"administrators": [
{
"name": "Alessandro Nince",
"profileUrl": "https://www.facebook.com/profile.php?id=629158103"
}
],
"rules": [
{
"text": "Can't have rules in multiple languages. Google Translator works just fine for English. Erasmus this group was born for you! Good luck!",
"title": "SORRY NON ITALIAN SPEAKERS!"
},
{
"text": "Gruppo dedicato ad annunci di chi OFFRE in AFFITTO STANZE ed APPARTAMENTI per STUDENTI UNIVERSITARI a TORINO. NO annunci CERCO (vedere gruppo gemello). NO altre città, NO vendite, NO mobili e oggetti",
"title": "Esclusivamente per chi OFFRE, ALLOGGI, a TORINO"
},
{
"text": "Solo individui privati. NO attività commerciali, NO spam, NO housing websites o agenzie immobiliari. Questi non saranno accettati nel gruppo.",
"title": "Esclusivamente per PRIVATI: NO AGENZIE o ATTIVITÀ"
},
{
"text": "NO post ri-condivisi, NO post che rimandano a gruppi terzi. NO ups. Manteniamo la ricerca facile per il bene di tutti.",
"title": "MASSIMO 1 POST a SETTIMANA per alloggio/persona"
},
{
"text": "Esiste un gruppo gemello\nwww.facebook.com/groups/CERCOCASATORINO per gli annunci di tipo CERCO, qui quelli NON sono i benvenuti (scarsissimo successo poi). Approvazione automatica per chi è già di là",
"title": "C'è GRUPPO GEMELLO per annunci di tipo CERCO"
},
{
"text": "La SPAM, gli annunci sospetti, MULTIPLI, off-topic o che rimandano ad AGENZIE immobiliari o gruppi terzi VANNO SEGNALATI all'amministratore che provvederà a ripulire.",
"title": "SEGNALARE agli admin la SPAM e i FUORI LUOGO"
},
{
"text": "Chi non rispetta le regole del gruppo viene espulso alla velocità della luce e bloccato perennemente. Con troppi spammatori non si può fare altrimenti. Avvisati.",
"title": "TOLLERANZA 0: sgarri 1 volta SEI FUORI per SEMPRE"
},
{
"text": "Se hai trovato il tuo alloggio, o inquilino, grazie a questo gruppo, per favore metti MI PIACE al primo post fissato in alto (in \"Comunicazioni\")! Serve per fare un po' di statistica. GRAZIE!",
"title": "LIKE al 1° post se trovi il tuo alloggio/inqulino"
}
]
}

💳 Pricing

How charges work

This Actor uses pay-per-event pricing. A Group profile event is charged for each public group profile saved to the dataset. The current price is shown in the Store pricing panel.

🔌 Integrations

Start the Actor with the Apify API, then read the default dataset or export its rows as JSON, CSV, Excel, or XML. The structured dataset can also be used in your own scripts or data workflow.

❓ FAQ

Why is the same group saved only once?

The Actor saves the first eligible occurrence of a source group. If another submitted URL, username, or ID points to that group later, the later match is ignored, and the saved row reflects only the first match.

What happens if Facebook does not show a field?

The field is left unfilled rather than guessed. Arrays such as administrators, moderators, and rules may be empty when the public page does not expose matching data.

Can it profile private groups?

It reads publicly reachable group pages only. Private, member-only, or login-gated content is outside scope, so an inaccessible group may produce no row and unavailable fields are not invented.

Does it return posts, comments, or members?

No. It returns group-level profile data. Posts, comments, and full member lists are outside its scope.

What can I submit?

Choose a direct Facebook group URL, a group username, or a numeric group ID. The selected source list accepts one or more values, and only that list is used.

Can I submit several groups in one run?

Yes. Add several values to the selected list. The Actor handles each submitted source and saves a profile for each group it can resolve.

What are the normalized activity and membership values?

postingActivity.postsPerDay and postsPerMonth are numeric versions of Facebook's displayed posting values. membership.memberCount and recentMemberGrowth.count are numeric versions when the source value can be read; the matching display fields preserve what Facebook shows.

Does it need a Facebook login or developer API key?

No. It reads publicly reachable group pages without requiring a Facebook login or developer API key.

Does it find groups from a keyword?

No. This Actor profiles groups you submit directly. It does not search a directory or discover groups by keyword.

What can I do with the administrators and moderators fields?

They contain names and public profile URLs that Facebook lists for the group. They are not private contact details.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré