Facebook Groups Search Scraper avatar

Facebook Groups Search Scraper

Pricing

$0.01 / 1,000 groups

Go to Apify Store
Facebook Groups Search Scraper

Facebook Groups Search Scraper

Search public Facebook groups by one or more keywords and an optional location, or enrich known public group URLs. Get group names, canonical URLs, IDs, visibility, descriptions, member counts, and search context when available. Filter by member size, track changes, and set a result limit.

Pricing

$0.01 / 1,000 groups

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

an hour ago

Last modified

Share

Researchers, marketers, community managers, and developers can search public Facebook groups by keyword with an optional location qualifier, or enrich known public group URLs. The Actor saves structured rows with group names, canonical URLs, IDs, visibility, descriptions, member counts, and search context when Facebook exposes them. Use the rows to compare communities, review public group details, and build a focused list for a workflow.

📦 Group rows with public search context

Each saved row is the first eligible occurrence of one source group. If the same group appears again through another keyword, URL, or similar submitted value, the later match is ignored. The row keeps the first saved match and its search context. It does not combine evidence from later matches.

Facebook fields are returned when the public source exposes them. Missing values stay unfilled instead of being guessed. A public search is not a promise to find every Facebook group.

▶️ Search by keyword or enrich known groups

Choose Keywords to search each topical keyword separately, with an optional location qualifier. Choose Group URLs to enrich known public groups. Fields in the other choice are ignored.

The Actor saves eligible groups as it finds them and continues until Maximum groups is reached or the source is exhausted. Use member filters to narrow keyword matches. Leave Maximum groups empty to keep all available results until the source is exhausted. Turn on Track changes between runs when you want new groups and groups with changed public member size or visibility, while unchanged groups are skipped.

Run steps

  1. Choose Keywords or Group URLs in Find groups by.
  2. Add values to the matching list and set any optional filters.
  3. Start the Actor.
  4. Open the saved group rows in the default dataset.

⚙️ Input

Choose one input method for each run. The fields for the other method are ignored.

Input fields

FieldTypeWhat it does
findGroupsBystringSelects keyword search or known group URL enrichment. Fields in the other choice are ignored.
keywordsarray of stringsSearches each topical keyword separately. Each saved result keeps the keyword that produced it.
locationstringAdds an optional place name to the keyword search, such as Austin or Canada.
minMembersintegerKeeps keyword matches with at least this many members. Leave it empty to skip the lower bound.
maxMembersintegerKeeps keyword matches with at most this many members. Leave it empty to skip the upper bound.
groupUrlsarray of objectsAdds one or more public Facebook group URL objects to enrich with available group data.
groupUrls[].urlstring (URL)Holds one public Facebook group URL to enrich.
maxResultsintegerStops after keeping this many groups from the selected method. Leave it empty to keep all available results until the source is exhausted.
trackChangesbooleanWhen true, compares this input with earlier runs, returns new or changed groups, and skips unchanged groups. When false or omitted, returns the current matches.

Example input

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

{
"findGroupsBy": "keywords",
"keywords": [
"photography"
],
"maxResults": 2,
"trackChanges": false
}

🧾 Output

The run output contains a link to the default dataset. The dataset has one group row shape. Optional fields appear when Facebook exposes them.

Run output link

FieldTypeWhat it does
resultsstringLinks to the saved Facebook group rows in the default dataset.

Group row

FieldTypeWhat it does
namestringRequired public group name.
urlstring (URL)Required canonical public Facebook group URL.
groupIdstringStable Facebook group identifier when the source provides one.
visibilitystringPublic visibility or privacy label when the source exposes it.
descriptionstringPublic group description when available.
searchSnippetstringText shown with the group in the source search result when available.
memberCountintegerUsable member count when the source provides a numeric value.
memberCountTextstringMember-size wording shown by the source.
groupTypestringPublic group or entity type label shown by the source when available.
imageUrlstring (URL)Public group image URL when the source provides one.
activityobjectHolds public activity information when the source shows it.
activity.textstringSource wording for the group's visible activity.
activity.postsPerWeeknumberNormalized weekly posting rate when the source provides enough activity information.
viewerAccessstringPublic viewer access or join-state label supplied by the source when available.
websitesarray of stringsWebsite URLs published in the group's public description when available.
websites[]string (URL)One website URL published by the group.
emailsarray of stringsEmail addresses published in the group's public description when available.
emails[]stringOne email address published by the group.
keywordstringKeyword that produced the saved group result when it came from keyword search.
locationstringLocation qualifier used with the saved keyword result when one was provided.
resultRankintegerGroup position in the source results for its saved keyword search.

Example group row

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

{
"name": "Photographers Of Upstate NY",
"url": "https://www.facebook.com/groups/148331352392253",
"groupId": "148331352392253",
"visibility": "Public group",
"description": "Photographers Of Upstate NY is a photography group based in Rochester.\n\nFeel free to share your images\nPost when your planning to shoot\nShare photography related articles\nOr list items for sale\nOr anything else photography related",
"memberCount": 5981,
"memberCountText": "5,981 total members",
"groupType": "GROUP",
"imageUrl": "https://scontent-dfw5-1.xx.fbcdn.net/v/t1.6435-9/126905035_1689919284522585_7622597776452257016_n.jpg?stp=c160.0.640.640a_cp0_dst-jpg_tt6&cstp=mx640x640&ctp=s50x50&_nc_cat=106&ccb=1-7&_nc_sid=33e84f&_nc_ohc=MQ8sw_CvzLwQ7kNvwEC3CLm&_nc_oc=AdozzXTkioa6L5ucyVHaZPr99Qsio7vF7fG4BEoJyDgpfmwGo-icC4B9errAQfgbxkM&_nc_zt=23&_nc_ht=scontent-dfw5-1.xx&_nc_gid=XGZL-yTvIDx5dwQolwypPQ&_nc_ss=70289&oh=00_AQK_7sUw8geGsZhsH4i2yvcFWyEAVIEl7G0EdvvhgOeB4w&oe=6ADE4E85",
"activity": {
"text": "13 posts in the last day; 477 posts in the last month",
"postsPerWeek": 91
},
"viewerAccess": "CAN_JOIN",
"searchSnippet": "ISO a Buffalo NY photographer for a courthouse elopement prob won't be until 2027, maybe 2026 of June pending cost of everything.",
"keyword": "photography",
"resultRank": 2
}

💳 Pricing

The Actor uses pay-per-event pricing. One Group event is charged when one public Facebook group is saved to the dataset. The current price is shown in the Store pricing panel.

🔌 Integrations

Start runs with the Apify API, read the default dataset, or export its rows as JSON, CSV, Excel, or XML. Use the structured rows in your own data workflow.

❓ FAQ

How are duplicate groups handled?

The first eligible occurrence of a source group is saved. If the same group appears later through another keyword, URL, or similar submitted value, the later match is ignored. The saved row describes only the first match.

What happens when Facebook does not show a field?

The field is left unfilled rather than guessed. Optional fields can be missing, and arrays such as websites and emails can be empty.

Can I search by location?

Yes. Add a place name to a keyword search, such as Austin or Canada. The saved row keeps the location when one was used.

Can I enrich a known group URL?

Yes. Select Group URLs and submit one or more public Facebook group URL objects. The Actor returns the group's identity and available public metadata.

What does Track changes between runs do?

When it is true, the Actor compares the input with earlier runs, returns new groups and groups whose public member size or visibility changed, and skips unchanged groups. When it is false or omitted, it returns the current matches.

Can it search private groups?

No. It reads public Facebook group search results and public group pages. Private, member-only, login-gated, or otherwise inaccessible content is outside its scope.

Does it return posts or member lists?

No. It returns group-level data. Posts, comments, full member lists, administrator lists, and actions inside groups are outside its scope.

What happens when Maximum groups is empty?

The Actor keeps all available results until the source is exhausted. It does not promise a fixed number of groups.

Can one run search several keywords?

Yes. Add a simple list of topical keywords. Each keyword is searched separately, and each saved row keeps the keyword that first produced it.

📝 Changelog

v0.0 (23-09-2026)

  • 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é