Facebook Groups Search Scraper With Group Profile Details avatar

Facebook Groups Search Scraper With Group Profile Details

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Facebook Groups Search Scraper With Group Profile Details

Facebook Groups Search Scraper With Group Profile Details

πŸ”Ž Facebook Groups Search Scraper finds and extracts public group results from Facebook search β€” names, member counts, categories, links & snippets. πŸš€ Ideal for market research, community discovery, social listening, and lead prospecting. βš–οΈ Use responsibly and per platform terms.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

7

Bookmarked

221

Total users

117

Monthly active users

4 days ago

Last modified

Share

Facebook Groups Search Scraper β€” Profiles, Members and Activity

Facebook Groups Search Scraper With Group Profile Details turns a list of keywords or direct group URLs into a structured directory of public Facebook groups. Each record pairs discovery data β€” the keyword or link that surfaced the group β€” with profile details pulled from the same About-page fetch: description, discoverability setting, visibility, member count, and posting frequency. Community managers, lead-gen marketers, and market researchers use it to map every group around a topic in one run, with duplicates found under multiple keywords merged automatically into a single row.

What is Facebook Groups Search Scraper With Group Profile Details?

Facebook Groups Search Scraper With Group Profile Details is an Apify Actor that discovers public Facebook groups by keyword (via DuckDuckGo) or direct group URL, then extracts each group's public About-page profile in the same request β€” no separate enrichment step, no Facebook login. Results are returned as structured JSON, one row per unique group.

  • Discovers groups by free-text keyword, by pasting direct group URLs, or by mixing both in a single run
  • Extracts group description (groupDescription), discoverability phrasing (discoverabilityText), and visibility (visibility) straight from the About page
  • Parses numeric stats β€” memberCountNumeric, postsPerDayNumeric, postsPerMonthNumeric β€” out of the raw text fields so results can be sorted and filtered directly
  • Merges the same group into one row when it surfaces under two or more keywords, tagging it with every keyword that found it
  • Automatically escalates to a backup connection when a request gets blocked, without any manual proxy setup
  • Exports to JSON, CSV, or any format the Apify dataset supports

One honest limitation: keyword discovery is powered by DuckDuckGo search rather than Facebook's own search index, so a keyword only surfaces groups DuckDuckGo has indexed under that term. If you already know a group's URL, pasting it directly always profiles it regardless of search indexing.

What data can I extract with Facebook Groups Search Scraper With Group Profile Details?

Every run returns one row per unique group with the following fields:

FieldExample ValueUse Case
id"123456789012345"Stable group ID for deduplication and joins with other datasets
name"BMW Enthusiasts Worldwide"Group display name for lists and reports
url"https://www.facebook.com/groups/bmwenthusiasts/"Canonical link to open, join, or share the group
sourceType"keyword"Flags whether the group came from a keyword search or a pasted URL
foundUnderKeywords["bmw", "tesla"]Every keyword/link label that surfaced this group, after merging
query"bmw"Backward-compatible field: first keyword/label that found the group
groupDescription"A community for BMW owners and enthusiasts..."Quick relevance check without opening the group
discoverabilityText"Anyone can find this group"Signals how easily new members can find the group
visibility"Public"Filters public vs. private groups
memberInfo"22,345 total members"Human-readable member count
memberCountNumeric22345Sortable/filterable numeric member count
postFrequency"5.2 posts a day"Human-readable activity level
postsPerDayNumeric0Numeric daily post count for sorting
postsPerMonthNumeric156Numeric monthly post count for sorting
profilePictureUri"https://scontent.xx.fbcdn.net/v/t1.6435-9/...jpg"Group image for previews and reports
type"Group"Static entity-type label
viewerJoinState"CAN_JOIN"Whether the group currently accepts new members
scrapedAt"2026-07-18T12:00:00Z"UTC timestamp for tracking data freshness

Group profile details

groupDescription and discoverabilityText come from the group's About page β€” the same og:description meta tag and privacy/discoverability copy Facebook shows visitors β€” with visibility and viewerJoinState alongside them. Together they let you vet a group without opening it: is it public, is it easy to find, can you actually join, and what is it about. The numeric fields (memberCountNumeric, postsPerDayNumeric, postsPerMonthNumeric) turn free-text member/activity counts into sortable numbers, so a reader can rank a list of 200 groups by size or posting activity in one pass instead of reading each row.

Discovery and targeting fields

sourceType, foundUnderKeywords, and query record how each group was found. sourceType separates keyword discoveries from directly pasted URLs; foundUnderKeywords lists every keyword that surfaced a group after deduplication, which is what lets you trace a single merged row back to a multi-keyword campaign. These fields are what you filter and segment on when mapping an entire topic or niche rather than a single group.

Why not build this yourself?

Facebook does not provide a public API for keyword-based group search. The Graph API only returns groups an authenticated app or user already manages β€” it has no endpoint for discovering public groups by search term, which is the core job of this Actor. Building an equivalent yourself means reverse-engineering group discovery through a third-party search engine, then scraping and parsing each result's About page β€” and keeping both working as markup and block signals change.

In practice that means maintaining: a search-engine token flow (this Actor uses DuckDuckGo's vqd handshake and paginated d.js results) with retry/backoff on 403/429/503 and non-standard 202 responses; a proxy escalation path that steps from no proxy to a datacenter pool to a residential pool when blocked; and a set of HTML/regex extractors for group ID, title, image, privacy label, member count, post frequency, description, and discoverability text β€” each with a fallback pattern since Facebook doesn't expose these consistently in every group's markup. All of that is what this Actor already runs, so a solo build mainly duplicates existing, tested plumbing rather than adding capability.

If you only ever need to profile groups whose URLs you already have, a lightweight direct-fetch script can be enough. If you need to discover groups by topic at any volume, across multiple keywords, with automatic dedup and connection fallback, that's what this Actor is for.

How to use data extracted from Facebook?

Community and lead-gen marketers

Run the Actor with the keywords that describe your niche (e.g. bmw, tesla, photography), leave mergeDuplicateGroups on, and export the deduped table. Sort by memberCountNumeric and postsPerDayNumeric to prioritize active, sizeable communities, then use groupDescription and visibility to shortlist the groups worth joining or pitching before spending time inside Facebook itself.

Agencies doing group prospecting

Agencies scouting Facebook groups on behalf of clients can run the same keyword set on a recurring basis and diff the output against the previous run's id values to spot newly created or newly discoverable groups in a niche, building a standing prospecting list without manually re-searching Facebook for every client.

Market research and intelligence

Feed a batch of category keywords in one run (e.g. multiple competing brand names or topic variants) and use foundUnderKeywords plus memberCountNumeric to see which keywords surface the largest, most active communities β€” a quick read on where audience attention concentrates in a niche without opening a single group manually.

AI agents and automated pipelines

Because input and output are both plain JSON, an agent can call this Actor as a tool to resolve a topic into a ranked list of real Facebook groups, then feed name, groupDescription, and memberCountNumeric into a downstream summarization or lead-scoring step β€” no group-URL discovery step required upstream.

πŸ”Ό Input sample

The Actor takes four inputs, none of them required.

ParameterRequiredTypeDescriptionExample Value
searchTargetsNoarrayKeywords to discover groups, or direct Facebook group URLs to profile β€” mix both in one run. Also accepts the base field name startUrls.["bmw", "tesla"]
maxGroupsPerKeywordNointegerHow many groups to collect per keyword (1–500, default 100). Does not apply to direct URLs β€” all of those are always profiled. Also accepts maxItems.100
mergeDuplicateGroupsNobooleanMerges a group found under 2+ keywords into one row tagged with every keyword that found it. Default true. Turn off to get one raw row per keyword match instead.true
proxyConfigurationNoobjectOptional connection/proxy settings. Leave default for best compatibility.{ "useApifyProxy": false }
{
"searchTargets": ["bmw", "tesla", "https://www.facebook.com/groups/1234567890/"],
"maxGroupsPerKeyword": 50,
"mergeDuplicateGroups": true,
"proxyConfiguration": { "useApifyProxy": false }
}

Common pitfall: maxGroupsPerKeyword only caps results per keyword β€” it does not apply to entries in searchTargets that are already full group URLs, since those are profiled directly regardless of the limit. If your run mixes a lot of keywords with a high maxGroupsPerKeyword, expect the total row count (pre-merge) to scale with both, not just one.

πŸ”½ Output sample

Output is typed, normalized JSON with a consistent 18-field schema per row, exportable as JSON or CSV directly from the Apify dataset.

{
"id": "123456789012345",
"name": "BMW Enthusiasts Worldwide",
"url": "https://www.facebook.com/groups/bmwenthusiasts/",
"sourceType": "keyword",
"foundUnderKeywords": ["bmw"],
"query": "bmw",
"groupDescription": "A community for BMW owners and enthusiasts to share tips, photos, and events.",
"discoverabilityText": "Anyone can find this group",
"visibility": "Public",
"memberInfo": "22,345 total members",
"memberCountNumeric": 22345,
"postFrequency": "5.2 posts a day",
"postsPerDayNumeric": 0,
"postsPerMonthNumeric": 156,
"profilePictureUri": "https://scontent.xx.fbcdn.net/v/t1.6435-9/...jpg",
"type": "Group",
"viewerJoinState": "CAN_JOIN",
"scrapedAt": "2026-07-18T12:00:00Z"
}

How do you filter and target specific groups?

This Actor's targeting axis is keyword vs. direct URL, plus two controls over volume and duplication. Use free-text keywords in searchTargets when you're mapping a topic and don't yet know which groups exist β€” the Actor searches "<keyword> facebook group" and profiles every match it discovers, up to maxGroupsPerKeyword. Use direct group URLs when you already know the exact groups you want profiled β€” they bypass discovery entirely and are always fetched in full, regardless of the maxGroupsPerKeyword setting.

maxGroupsPerKeyword (1–500, default 100) is your volume control per keyword β€” raise it for broad niche mapping, lower it for a fast, narrow check. mergeDuplicateGroups controls how overlapping keywords resolve: on (default), the same group found under multiple keywords collapses into one row tagged with every keyword that matched it; off, you get one raw row per keyword match, useful when you need to audit exactly which keyword produced which result.

Broad niche mapping, deduped:

{ "searchTargets": ["bmw", "tesla", "porsche"], "maxGroupsPerKeyword": 300, "mergeDuplicateGroups": true }

Profiling known groups only, no discovery:

{ "searchTargets": ["https://www.facebook.com/groups/bmwenthusiasts/", "https://www.facebook.com/groups/teslaowners/"] }

Per-keyword audit trail, duplicates kept separate:

{ "searchTargets": ["bmw", "tesla"], "maxGroupsPerKeyword": 50, "mergeDuplicateGroups": false }

▢️ Want to try other Facebook scrapers?

Scraper NameWhat it extracts
Facebook Group Profile ScraperDeep single-group profile β€” description, creation date, admins/moderators β€” from a known group URL, username, or ID
Facebook Groups Scraper: Sentiment & Lead AnalysisPosts scraped from inside public groups, with optional AI sentiment, emotion, and lead-intent scoring
Facebook Groups Posts Scraper: with Post AnalyticsPost-level engagement analytics from monitored groups
Facebook User Search Scraper: Related Profiles & PagesKeyword search across Facebook users, pages, and groups combined
LinkedIn Company Scraper: Search By Name, Keyword or URLComparable keyword/name-based company discovery on LinkedIn
Instagram Related Hashtag Stats Scraper By Keyword SearchComparable keyword-driven discovery of related Instagram hashtags and stats

How to extract Facebook data programmatically

This Actor runs as a standard Apify Actor call: one API call with your input JSON, authenticated with your Apify API token, returns a dataset of structured JSON rows.

Python example

from apify_client import ApifyClient
client = ApifyClient("<APIFY_API_TOKEN>")
run = client.actor("SimpleAPI/facebook-groups-search-scraper-with-group-profile-details").call(
run_input={
"searchTargets": ["bmw", "tesla"],
"maxGroupsPerKeyword": 100,
"mergeDuplicateGroups": True,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["memberCountNumeric"], item["groupDescription"])

Export to spreadsheets or CRM

Export the dataset directly as CSV from the Apify Console or API, then map name, url, memberCountNumeric, groupDescription, and foundUnderKeywords to columns in your spreadsheet or CRM import template β€” one row per unique group, ready for outreach lists or reporting without additional cleanup.

Yes β€” this Actor only reads publicly accessible Facebook group About pages, the same information visible to any visitor without logging in. Group directory listings like name, description, and member/activity counts exist to be publicly discoverable, which is why search engines index them in the first place. That said, if your use of the data involves storing or processing information that could identify individuals (for example, group names or descriptions that reference people), GDPR and CCPA rules on lawful basis, storage limits, and deletion rights still apply. Consult legal counsel for commercial applications involving bulk storage of personal data.

❓ FAQ

What happens if a group is deleted, renamed, or goes private after it's scraped?

The dataset reflects the group's About page exactly as it appeared at the time in scrapedAt. There is no automatic re-check β€” if you need current status, re-run the Actor with the same searchTargets or group URLs.

Can I get member and activity stats along with the group records?

Yes. memberInfo/memberCountNumeric and postFrequency/postsPerDayNumeric/postsPerMonthNumeric are parsed from the same About-page fetch used for the rest of the profile β€” no extra request or separate run needed.

How accurate is the member count and activity data?

The Actor returns the numbers exactly as they appear on the group's public About page at request time. Accuracy depends on how current Facebook's own displayed counts are; re-run the Actor periodically if you need up-to-date figures for a tracked list.

How many groups can I get per run?

Up to maxGroupsPerKeyword (1–500, default 100) per keyword, and all matching groups for any direct URLs you provide. There is no separate cap on total groups across a whole run β€” the total scales with how many keywords and URLs you submit.

How does keyword search differ from pasting direct group URLs?

Keywords trigger discovery β€” the Actor searches for "<keyword> facebook group" and profiles what it finds, up to your maxGroupsPerKeyword limit. Direct URLs skip discovery entirely: every URL you paste is always profiled in full, unaffected by that limit. You can mix both in the same searchTargets list.

Does merging duplicate groups cost extra requests?

No. Every keyword and URL is fetched first, exactly as if merging were off; deduplication by group ID (or normalized URL) happens afterward as a pure post-processing pass over data already collected.

Does this Actor work with Claude, ChatGPT, and AI agent frameworks?

It's callable as a standard Apify API endpoint, so any agent framework that can make an authenticated HTTP call can invoke it as a tool and consume the resulting JSON dataset.

How does this compare to other Facebook group scrapers in this collection?

Facebook Group Profile Scraper goes deeper on a single known group (admins, creation date) but requires you to already have its URL; this Actor's distinct job is turning a keyword into a list of groups in the first place, with lighter profile detail attached. Facebook Groups Scraper: Sentiment & Lead Analysis works one level down, on posts inside groups, rather than on the group directory itself.

Can I use this without a Facebook API key or developer account?

Yes. No Facebook login, API key, or developer account is required β€” the Actor only needs your searchTargets input and, optionally, your own proxy configuration.

Conclusion

Facebook Groups Search Scraper With Group Profile Details turns keywords or group URLs into a clean, deduplicated directory of public Facebook groups with description, visibility, and member/activity stats attached β€” all from a single About-page fetch per group. It's built for marketers, agencies, and researchers who need to map a niche rather than profile one group they already know. Run it on Apify with your keyword list to get a structured, ready-to-export group directory in one pass.