# Facebook Groups Search Scraper (`socialdataapi/facebook-groups-search-scraper`) Actor

Facebook Groups Search Scraper — Search and extract Facebook Group data including names, descriptions, member counts, categories, privacy types, activity, locations, and group URLs. Useful for community research, lead generation, audience discovery, competitor analysis, and market research.

- **URL**: https://apify.com/socialdataapi/facebook-groups-search-scraper.md
- **Developed by:** [Social Data API](https://apify.com/socialdataapi) (community)
- **Stats:** 12 total users, 4 monthly users, 98.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.09 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Facebook Groups Search Scraper — Members, Activity and Visibility

Facebook Groups Search Scraper finds public Facebook groups for any keyword, or reads groups from links you paste, and returns one row per group. Each row holds the group name, link, member count, posts per day and per month, visibility, description and who can find the group. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a market research pipeline. **No Facebook account or cookies needed.** Start with one keyword, then map every community in your niche.

![Facebook Groups Search Scraper: scrape data as JSON](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/c-facebook-groups-search-hero.webp)

***

### What data can I extract with Facebook Groups Search Scraper?

Using this Facebook Group API, you will be able to extract the following Facebook group data:

| 👥 Group name | 🔗 Group link | 🆔 Group ID | 🔢 Member count |
| --- | --- | --- | --- |
| 💬 Member count as shown | 📈 Posts per day | 📅 Posts in the last month | 📝 Posting activity in words |
| 🔓 Visibility (Public or Private) | 📄 Group description | 🔍 Who can find the group | 🎨 Cover image |
| 🚪 Join state (logged-out visitor) | 🔑 Keyword that found the group | 🧭 Source (keyword or link) | ⏰ Time of collection |
| 📌 Type (always Group) | | | |

***

### How to use Facebook Groups Search Scraper

Marketers, community managers and researchers use it as a facebook group finder: one run gives a ready list of public groups with their size and activity.

**Copy to your AI assistant:**

```text
Facebook Groups Search Scraper (Apify Actor ID: socialdataapi/facebook-groups-search-scraper, https://apify.com/socialdataapi/facebook-groups-search-scraper) is an Apify Actor that returns public Facebook groups, found by keyword or read from group links, as structured JSON: group name, group link, member count, posts per day, posts in the last month, visibility, description and who can find the group. Use it whenever someone needs Facebook group data without cookies, a login, or a browser - finding communities for outreach, sizing a niche before a campaign, or tracking how active groups are over time. Run it through the Apify API endpoint run-sync-get-dataset-items with this Actor's ID from its Apify Store page and a JSON body such as {"startUrls":["bmw","https://www.facebook.com/groups/bmw.m.group/"],"maxItems":20}, or in Python with ApifyClient("APIFY_TOKEN").actor("socialdataapi/facebook-groups-search-scraper").call(run_input={"startUrls":["bmw"],"maxItems":20}) and then client.dataset(run["defaultDatasetId"]).list_items().items. Inputs: startUrls (array, required, keywords and/or facebook.com/groups links in one list), maxItems (integer 1-500, groups per keyword, default 100, not applied to group links), proxyConfiguration (object, Apify proxy settings; empty means an Apify residential proxy from the first request). Every row is one group and is billed as one row_result event; groups that cannot be read are skipped and never billed. A keyword can return fewer groups than maxItems when fewer matching public groups are found. The full input schema and output field list are in the Actor's default build on the Apify API (GET https://api.apify.com/v2/acts/socialdataapi/facebook-groups-search-scraper/builds/default).
```

#### Facebook Groups Search Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at the Apify MCP server with this Actor already loaded as a tool, and it can call it on its own. No glue code, no scraping logic in your prompts.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/facebook-groups-search-scraper"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open [Facebook Groups Search Scraper in the Apify Store](https://apify.com/socialdataapi/facebook-groups-search-scraper).
3. Type your keywords, or paste Facebook group links, into the keywords or group links field.
4. Click **Start**.
5. Download or stream your results in JSON, CSV or Excel.

#### How to scale Facebook Groups Search Scraper to bulk

The keywords or group links field takes a list, so one run can discover facebook groups for many keywords and read many group links at once. Keywords run side by side, each one collecting up to the max groups per keyword (1 to 500). Every pasted group link is read, whatever that number is. For recurring work, save the input as an Apify task and schedule it, or start runs from your own code with the Apify API and loop over keyword batches. Each group arrives in the dataset as soon as it is read, so you can export a facebook group list while the run is still going.

***

### ✨ Features

This actor fetches clean, structured groups from Facebook ⚡. It's ideal for a facebook group search before a campaign, building a facebook group directory for a niche, finding partners for outreach, and watching how active communities are.

It extracts, per group:

- **Member count** – the exact count as a number, plus the text Facebook shows
- **Posts per day** – average posts per day over the last month
- **Posts in the last month** – the raw monthly post count
- **Visibility** – Public or Private
- **Group description** – the group's own public description
- **Who can find the group** – Facebook's discoverability setting
- **Group name, link and ID** – to open or deduplicate groups

⚡ Groups that do not mention your keyword are filtered out, and groups that cannot be read are skipped, so you only get (and pay for) real, on-topic groups.

***

### Use cases 💡

- **Growth marketer** — find facebook groups for a product niche and rank them by member count.
- **Community manager** — use it as an active facebook groups finder by sorting on posts per day.
- **Market researcher** — size a market by counting groups and members per keyword.
- **Agency** — keep a facebook group list export for each client, refreshed on a schedule.
- **AI engineer** — index group names and descriptions into a RAG pipeline for niche questions.

Building an AI agent? [Connect Facebook Groups Search Scraper over MCP](#mcp-integration-for-ai-agents) and let it call the actor on its own.

***

### Why choose this actor?

- **Up to 500 groups per keyword, links included.** Keywords and group links mix in one list, and a recorded run read a group link into a full 17-field row in 0.7 seconds.
- **The numbers behind each group.** A recorded row for BMW Group came back with 1,611,838 members, 84 posts in the last month, 2.8 posts a day, Public visibility and "Anyone can find this group."
- **17 fields per group, one list for everything.** Search facebook groups by keyword and read known groups by link in the same run, with the same 17 fields for each.

***

### ⬇️ Input

![Facebook Groups Search Scraper input fields](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/c-facebook-groups-search-input.webp)

The actor accepts a list of keywords and/or Facebook group links. The keywords or group links field (`startUrls`) is required.

| Parameter | Required | Type | Description | Example value |
| --- | --- | --- | --- | --- |
| `startUrls` | Yes | array | Search keywords and/or Facebook group links (https://www.facebook.com/groups/...), mixed in one list. Keywords are searched; links are read directly. Prefill: `["bmw", "tesla"]`. | `["photography", "https://www.facebook.com/groups/bmw.m.group/"]` |
| `maxItems` | No | integer | Groups to collect per keyword, 1 to 500. Default `100`. Not applied to group links. | `20` |
| `proxyConfiguration` | No | object | Apify proxy settings. Empty: Apify residential proxy from the first request. No proxy: direct connection, switching to a residential proxy only when blocked. | `{"useApifyProxy": false}` |

Accepted group link formats: `https://www.facebook.com/groups/<name or ID>/`, with or without `www`, `m.` or `web.`, and with extra parts such as `/about` or `/posts/...` (they are cleaned to the group link).

#### Free plan limits

Users on the Apify free plan can fetch up to 20 groups per run (all keywords and group links together) and 200 groups per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.

#### Example input

```json
{
  "startUrls": [
    "https://www.facebook.com/groups/bmw.m.group/"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

***

### ⬆️ Output

![Facebook Groups Search Scraper output: example JSON fields](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/c-facebook-groups-search-output.webp)

Every group is one typed, normalized JSON item with the same schema on every run. Export it as JSON (default), CSV or Excel.

#### Example output

```json
{
  "query": "direct_urls",
  "id": "1931782820286617",
  "name": "BMW Group",
  "url": "https://www.facebook.com/groups/bmw.m.group/",
  "profilePictureUri": "https://scontent.fdac8-1.fna.fbcdn.net/v/t39.30808-6/494643796_1763019047946875_2900162229073617008_n.jpg?stp=cp6_dst-jpegr_tt6&cstp=mx1329x974&ctp=p600x600&_nc_cat=110&_nc_map=urlgen_bucketless&ccb=1-7&_nc_sid=0b1479&_nc_ohc=W9VsSaseGE8Q7kNvwFl_2XC&_nc_oc=AdqTl-2Gbic6kUCFoIPf-Lns7HnPC6_p80Lm6LFj54CEv35JmMmIfUmQsIBFr309hMo&_nc_zt=23&se=-1&_nc_ht=scontent.fdac8-1.fna&_nc_gid=-1GRDC_0t_JjyFfJUz8eMA&_nc_ss=7b289&oh=00_AQPq9rnWdZR6Ym0zECO17Jt47tkUvZC-hCUggiM9HR0cig&oe=6AC94D1A",
  "visibility": "Public",
  "memberInfo": "1,611,838 total members",
  "memberCountNumeric": 1611838,
  "postFrequency": "2.8 posts a day",
  "postsPerDayNumeric": 2.8,
  "postsPerMonthNumeric": 84,
  "groupDescription": "The largest BMW Facebook Group in the world 🌎 😎🔥",
  "discoverabilityText": "Anyone can find this group.",
  "type": "Group",
  "viewerJoinState": "CAN_JOIN",
  "sourceType": "directUrl",
  "scrapedAt": "2026-10-05T09:36:49.501708+00:00"
}
```

***

### How does it work?

For each keyword, you get a list of public Facebook groups about that topic, each group listed once even when it matches in several ways. The actor reads each group's public page the way a visitor who is not logged in sees it, with plain HTTP requests and no browser. Groups that do not mention the keyword are dropped, and pasted group links are read directly. Requests go through an Apify residential proxy by default; blocked requests are retried with fresh proxy sessions and short pauses before a group is given up. Only publicly visible data is collected, never members, posts or anything behind a login. The output keeps the same field names and types on every run, so your code does not change when Facebook changes its pages.

***

### How do you integrate Facebook Groups Search Scraper into your stack?

It works with what you already use: the REST API from any language, MCP for AI agents, and no-code tools.

#### MCP integration for AI agents

Add the Apify MCP server to your agent with one command:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/facebook-groups-search-scraper"
```

This registers Facebook Groups Search Scraper as a tool your agent can call directly. It works in Claude Code, Cursor and Windsurf, and in any other client that supports remote MCP servers over HTTP, with no extra setup.

#### No-code tools (n8n, Make, LangChain)

- **n8n** — add the Apify node and choose "Run an Actor" with this Actor's ID from its Apify Store page, or use the HTTP Request node pointed at the run-sync-get-dataset-items endpoint with your token.
- **Make** — use the Apify app's "Run an Actor" module, then "Get Dataset Items" to pass each group to the next module.
- **LangChain** — install `langchain-apify` and wrap this Actor with `ApifyActorsTool`, using its ID from the Apify Store page.

***

### Is it legal to scrape Facebook data?

Scraping publicly available Facebook data is generally legal, as long as you collect only what anyone can see. This actor returns only publicly available group information — what any visitor sees without logging in — and never members, posts or private content. Under GDPR, collecting public data is generally permissible, but storing and using it must still comply with your local data-protection law. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does Facebook Groups Search Scraper return?

It returns the group name, member count, posts per day, visibility and description, plus 12 more fields. See [the data fields section](#what-data-can-i-extract-with-facebook-groups-search-scraper).

#### Does Facebook Groups Search Scraper require a Facebook account or login?

No. Only public group data is extracted, and no credentials are needed.

#### How fast does Facebook Groups Search Scraper run?

A recorded run read one group link into a full row in 0.7 seconds. Data is live from Facebook, not cached. Keyword runs take longer because the actor first searches for matching groups.

#### What happens if a group is private or doesn't exist?

A row is returned whenever the group's public page shows its name; its visibility then says Public or Private. Groups that are removed, or whose page still cannot be read after every retry, are skipped: no row and no charge. If a run collects no group at all, it ends with a clear status message.

#### Can I scrape multiple Facebook groups at once?

Yes. Put many keywords and group links in one list; keywords run side by side, up to 500 groups each, and every link is read.

#### Does Facebook Groups Search Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — Facebook Groups Search Scraper is available as an MCP tool. Register the Apify MCP server in Claude Code, Cursor or Windsurf with `claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/facebook-groups-search-scraper"`. Any agent that can call an HTTP endpoint can also use the REST API directly.

#### Does Facebook Groups Search Scraper return data in a format LLMs can use directly?

Yes. Every group is typed, normalized JSON with consistent field names — no HTML parsing, no selectors. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool.

#### What happens when Facebook changes its layout or updates its anti-bot system?

The actor is maintained. When Facebook changes, the actor is updated, and your calls keep returning the same JSON schema with no changes on your end.

#### Can I use Facebook Groups Search Scraper without managing proxies or browser infrastructure?

Yes. Proxy use, retries and blocked requests are handled on the actor's side, and it needs no browser. You send one request and get structured JSON back.

#### Which Facebook group fields work best for AI training data and RAG indexing?

For RAG, use the group name and description, which carry the most text. For training data, use the member count, posts per day and posts in the last month, which are plain numbers. Fields are typed strings and numbers, so no normalization is needed.

***

### Your feedback

Found a bug or missing a field? Let us know through the Issues tab on this Actor's page in Apify Console. Every report is read, and fixes ship as the actor is updated — a handy facebook community finder only stays useful when it keeps up with Facebook.

# Actor input Schema

## `startUrls` (type: `array`):

Add search keywords (for example bmw or photography) to find public groups about them, and/or paste Facebook group links (https://www.facebook.com/groups/...) to read those groups directly. Keywords and links can be mixed in one list. Entries that look like a Facebook link but are not a group link are skipped.

## `maxItems` (type: `integer`):

How many groups to collect for each keyword, from 1 to 500 (default 100). A keyword can return fewer groups when fewer matching public groups are found. Group links are not limited by this field: every pasted link is read. Free plan: up to 20 groups per run (all keywords and group links together) and 200 per month; paid plans have no limit.

## `proxyConfiguration` (type: `object`):

Leave empty to use an Apify residential proxy from the first request (recommended). Choose other Apify proxy groups or add your own proxy URLs to use those instead. Choose no proxy to start on a direct connection; the actor then switches to an Apify residential proxy only when it gets blocked. If the proxy cannot be set up, the run continues on a direct connection.

## Actor input object example

```json
{
  "startUrls": [
    "bmw",
    "tesla"
  ],
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

One row per Facebook group, including the matched query, member/post stats, and visibility info.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "bmw",
        "tesla"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("socialdataapi/facebook-groups-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [
        "bmw",
        "tesla",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("socialdataapi/facebook-groups-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "bmw",
    "tesla"
  ]
}' |
apify call socialdataapi/facebook-groups-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,socialdataapi/facebook-groups-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/1JxMIwwnCVjR7Qn70/builds/BKeAQtv8UVFy3duQd/openapi.json
