# Facebook Group Search Scraper (`data_wiki/facebook-group-search-scraper`) Actor

Find public Facebook groups by keyword or group link and get the name, member count, privacy, creation date, category, location, description and recent activity. Filter by size or privacy. No login needed. Great for community research, marketing and lead discovery.

- **URL**: https://apify.com/data_wiki/facebook-group-search-scraper.md
- **Developed by:** [Data WiKi](https://apify.com/data_wiki) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 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

### 🚀 What is Facebook Group Search Scraper?

Facebook Group Search Scraper is an Apify Actor that finds Facebook groups for your keywords and reads each group's public page. Give it topics or group links and get one row per group: name, link, member count, privacy, creation date, categories, location and description. No Facebook login is needed.

- **Keywords or links in one list:** type a topic such as `vegan baking` to find facebook groups by topic, and a group link looks up that one group.
- **Size and privacy filters:** keep only groups above a minimum member count, or only public or only private ones.
- **Rows appear while the run goes:** watch the table fill, then export it.
- **Four ready-made tables:** overview, members and activity, about, and IDs and links.

> 💡 Already have group links and want the posts inside them? Use the [Facebook group post scraper](https://apify.com/data_wiki/facebook-group-scraper).

### 📊 What data can you extract from Facebook groups?

Every row describes one public group. The dataset has 15 fields, and a value the group page does not show stays `null`. The examples below are invented to show the shape of the data.

| Field | Description | Example |
|---|---|---|
| `id` | Numeric group ID, so the Actor works as a facebook group id finder | `100000000000001` |
| `name` | Group name | `Vegan Baking Friends (example)` |
| `url` | Link to the group, handy when you want to find facebook group url values for a topic | `https://www.facebook.com/groups/example-vegan-baking/` |
| `privacy` | `Public` or `Private` as the group page shows it | `Public` |
| `findable` | Whether anyone can find the group in search | `true` |
| `memberCount` | Member count as a number; Facebook rounds large counts | `12500` |
| `memberInfo` | Member count as written on the page | `12.5K members` |
| `postFrequency` | Recent posting activity, only when the page shows it | `3 new posts today` |
| `description` | Group description text | `Share plant-based cake recipes.` |
| `category` | Group category tags | `["Food"]` |
| `location` | Group location, when one is set | `null` |
| `createdAt` | Creation date, ISO 8601 in UTC | `2018-03-14T09:30:00Z` |
| `hasJoinQuestions` | Whether joining means answering questions | `true` |
| `profilePictureUri` | Link to the group picture | `https://example.com/group-picture.jpg` |
| `keyword` | The keyword or link that produced the row | `vegan baking` |

The rows describe groups and not people, so this facebook group data extractor gives you group details only. Each row is facebook group metadata, not posts. The facebook group member count sits in `memberCount` and `memberInfo`, but the member list is not extracted. The facebook group category is in `category`. The facebook group privacy label is in `privacy`. The `createdAt` field holds the facebook group creation date. The `url` field turns a topic search into a facebook group url finder. Paste one group link and the Actor works as a facebook group details scraper for that single group.

### 💡 Use cases for Facebook group data

- **Community research:** run a handful of topics and read `name`, `description` and `memberCount` for facebook community research. Sort the table by size and you can start community mapping around one subject.
- **Audience and market research:** compare `category` and `description` across groups for facebook audience research on where people talk about your topic. The same table supports facebook group market research before you launch a product.
- **Niche discovery:** search narrow topics to uncover facebook niche groups that a broad search buries. Add a longer phrase and you can find facebook groups in my niche, such as `sourdough starter` instead of `baking`.
- **Lead generation:** use the list as the first step of facebook group lead generation, to see which communities your buyers gather in. The Actor returns groups, not people or contact details.
- **Marketing:** set `minMembers` to shortlist facebook groups for marketing, and read `findable` and `hasJoinQuestions` to see how open each one is.
- **Competitor and brand watch:** search competitor and brand names for competitor community research. Repeat the run on a schedule and compare `memberCount` for simple brand community monitoring.
- **Large and active groups:** use `minMembers` to find large facebook groups. Sort the export to see facebook groups by member count. Read `postFrequency` where the page shows it to find active facebook groups.
- **Group lists:** export the dataset to build a facebook groups list for your team. Setting `privacy` to `public` keeps a public facebook groups list. The rows are a good base for your own facebook group directory. Type a topic to find communities on facebook, then read `privacy` and `createdAt` to sort new groups from long-running ones.

### 🛠️ How to scrape Facebook groups

1. Create an Apify account and open **Facebook Group Search Scraper** in the Apify Store.
2. Enter keywords or group links in **Keywords or group URLs**, one per line. This is how you search facebook groups by keyword. A single link works as a quick facebook group lookup.
3. Set **Maximum groups per entry**. The default is 20, and `0` means as many as can be found.
4. Optional: set **Minimum members** and **Group privacy** to keep only the groups you need.
5. Leave **Include full group details** on for all fields, or switch it off for a faster run with only the link and name.
6. Click **Start** and watch the log while rows arrive in the Output tab.
7. Download the dataset as JSON, CSV, Excel, XML or HTML. Pick CSV to export facebook groups to csv. Pick Excel to move facebook groups to excel.

### 💰 How much does it cost to scrape Facebook groups?

The Actor uses pay-per-event pricing. You pay for each group row saved to the dataset, plus a small start fee.

| Plan tier | Price per 1,000 groups | Arithmetic |
|---|---|---|
| Free | $2.50 | 1,000 x $0.0025 |
| Bronze | $2.30 | 1,000 x $0.0023 |
| Silver | $2.20 | 1,000 x $0.0022 |
| Gold and above | $2.10 | 1,000 x $0.0021 |

- **Result** (`main_result`): charged once for every group row saved to the dataset.
- **Actor Start** (`apify-actor-start`): $0.00005 per event, charged when a run starts, one event per GB of memory with a minimum of one. The Actor is configured with 1,024 MB (1 GB), so the start fee is $0.00005 per run.

Worked example: 200 groups at the Gold tier cost 200 x $0.0021 = $0.42, plus $0.00005 for the start. Apify platform usage (compute) is billed on top of the events above. Pages that cannot be read are not saved and not charged. If you set a maximum spend per run, the run stops cleanly and keeps the rows already saved. Check the Pricing tab for current rates.

### ⬇️ Input

Only `urls` is required. The example below searches one topic, keeps public groups with at least 1,000 members and saves up to 3 groups.

```json
{
  "urls": ["vegan baking"],
  "maxItems": 3,
  "minMembers": 1000,
  "privacy": "public",
  "includeDetails": true,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

| Field | Meaning |
|---|---|
| `urls` | Keywords or Facebook group links, one per entry. Required. A link must look like `https://www.facebook.com/groups/name`. Duplicates are removed. |
| `maxItems` | Maximum groups per entry, default 20. `0` means as many as can be found. |
| `minMembers` | Skip groups with fewer members, default 0. The check uses the rounded count Facebook shows. |
| `privacy` | `any` (default), `public` or `private`. |
| `includeDetails` | Default on. Off returns only the link and the name when one is available; setting `minMembers` or a privacy filter switches it back on. |
| `proxyConfiguration` | Optional proxy settings. |

For links you already have, this facebook group extractor returns the same 15 fields as a keyword search. If Facebook blocks a request, the Actor retries and may switch to a proxy automatically, even when you leave the proxy option off. Proxy traffic counts as platform usage.

### ⬆️ Output

Rows are saved to the default dataset as they are found. In the Output tab they appear in four tables: overview, members and activity, about, and IDs and links. A run summary record holds the totals: groups saved, charged, failed, skipped, duration and the stop reason (`completed` or `spend`).

Export formats: JSON, CSV, Excel, XML and HTML. The next sample is fictional and shows one row from the input above.

```json
{
  "id": "100000000000001",
  "name": "Vegan Baking Friends (example)",
  "url": "https://www.facebook.com/groups/example-vegan-baking/",
  "privacy": "Public",
  "findable": true,
  "memberCount": 12500,
  "memberInfo": "12.5K members",
  "postFrequency": "3 new posts today",
  "description": "Share plant-based cake recipes.",
  "category": ["Food"],
  "location": null,
  "createdAt": "2018-03-14T09:30:00Z",
  "hasJoinQuestions": true,
  "profilePictureUri": "https://example.com/group-picture.jpg",
  "keyword": "vegan baking"
}
```

### ⚠️ Limitations and error handling

- **Public pages only:** the Actor reads what any visitor can see. A group marked Private can still show up with the details its public page offers, but its members are never listed. It lists public Facebook groups only.
- **Not every group is found:** a keyword search checks up to 300 candidate groups per entry. The log then says how many were reachable, for example "only 12 of 20 reachable".
- **Counts are rounded:** Facebook rounds large member counts, so `minMembers` compares against the rounded number.
- **Empty fields:** `postFrequency`, `location` and other values stay `null` when the group page does not show them.
- **Fast mode:** with `includeDetails` off, only the link and the name are filled, and the name can be `null`.
- **Blocked requests:** a failed request is tried up to 3 times. After 8 rate-limited group pages in a row the entry stops, and if no group was saved the run ends with "No groups saved - access was blocked. Try again later."
- **Input problems:** an empty `urls` list, or a Facebook link that is not a group link, stops the run with a clear message.
- **Repeated groups:** if the same group is found by more than one keyword or link in one run, it is saved and charged once per entry.
- **Spend limit:** when your maximum spend per run is reached, the run stops cleanly with the rows saved so far.

Per entry, the log ends with one status line: `[ok]`, `[partial]`, `[empty]` or `[failed]`, with the number of groups saved and checked.

### 🔌 Integrating Facebook Group Search Scraper with other apps

Run the Actor through the [Apify API](https://docs.apify.com/api/v2), which makes it a facebook groups scraper api for your own code, on a [schedule](https://docs.apify.com/actors/running/schedules), or with a webhook that fires when a run finishes.

- Send the dataset to Google Sheets, [Make](https://docs.apify.com/integrations/make) or [Zapier](https://docs.apify.com/integrations/zapier), or see all [Apify integrations](https://docs.apify.com/integrations).
- Trigger your own code from a [webhook](https://docs.apify.com/integrations/webhooks) when a run ends.
- AI agents can run the Actor through the hosted Apify MCP server, see the [Apify MCP documentation](https://docs.apify.com/mcp).

### 🔗 Other Facebook and social media scrapers by data_wiki

| Actor | What it extracts | When to use it |
|---|---|---|
| [Posts, comments and listings from group links](https://apify.com/data_wiki/facebook-group-scraper) | Posts, comments, reactions, authors and Buy & Sell listings from group links you provide | You already know the groups and want what is inside them |
| [Facebook comment extractor](https://apify.com/data_wiki/facebook-comment-scraper) | Comments and replies from public posts, reels, videos and photos | You have post links and want full threads |
| [Facebook Marketplace listing scraper](https://apify.com/data_wiki/facebook-marketplace-scraper) | Marketplace listings from keywords, search, category or listing links | You track items for sale, not communities |
| [Instagram reels by hashtag](https://apify.com/data_wiki/instagram-hashtag-scraper) | Public Instagram reels found by hashtag or keyword | You run the same topic research on another platform |

The scraped site is [Facebook](https://www.facebook.com).

### ⚖️ Is it legal to scrape Facebook groups?

The Actor reads only information that any visitor can see and does not log in. Group names and descriptions can still contain personal details, so collect only what you need and follow privacy laws such as GDPR and CCPA, plus Facebook's terms. This is not legal advice. Read Apify's guides on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) and [ethical scraping](https://blog.apify.com/what-is-ethical-web-scraping-and-how-do-you-do-it/).

### ❓ FAQ

#### Is scraping Facebook groups legal?

The Actor collects public data only, but your use of it must respect privacy laws and Facebook's terms. See the legal section above, and ask a lawyer when in doubt.

#### Do I need a Facebook login?

No. The Actor needs no account, cookies or API key, and it never reads private content.

#### How much does it cost to run?

You pay per saved group, from $2.10 to $2.50 per 1,000 depending on your Apify plan tier, plus a start fee of $0.00005 per run. Apify platform usage (compute) is billed on top of the events above.

#### How many groups can I get?

As a facebook group search tool, it takes `maxItems` as the limit per keyword or link, and `0` means as many as can be found. A keyword search checks up to 300 candidate groups, so the number you get can be lower than the limit.

#### Which Facebook group Actor should I use?

Use this Actor when you start from a topic and want to discover groups: keywords or links in, one row per group out. If you want a facebook groups scraper that reads what is inside groups, use the [group post and comment reader](https://apify.com/data_wiki/facebook-group-scraper): it starts from group links and returns posts, comments, reactions or Buy & Sell listings. They can work together: find groups here, then read the ones you pick there.

#### What does a Facebook group search scraper return?

It returns one row per public group with the 15 fields listed above. Think of it as a facebook group finder for a topic. You get the member count (`memberCount` and `memberInfo`) but never the list of people.

#### Why are some fields empty?

The group page does not always show them. Location and post frequency are the most common empty values, and fast mode fills only the link and the name.

#### Why did the same group appear twice?

It was found by two different keywords or links in one run. Each entry saves its own row, so the group is charged once per entry. Use fewer overlapping keywords to avoid it.

#### Is there an API?

Yes, the Apify API runs the Actor and reads its dataset, see the [API documentation](https://docs.apify.com/api/v2). There is no official Facebook API involved.

#### Can I use this Actor through MCP?

Yes. AI agents can find the Actor, check its input and run it through the hosted Apify MCP server at `https://mcp.apify.com`. See the [Apify MCP documentation](https://docs.apify.com/mcp).

### 💬 Your feedback

Found a bug or need another field? Open an issue on the Actor's **Issues** tab. Need a custom solution? Contact hello.datawiki@gmail.com.

# Changelog

This Actor's version history is a separate document: https://apify.com/data_wiki/facebook-group-search-scraper/changelog.md

# Actor input Schema

## `urls` (type: `array`):

One entry per line: a topic to search (for example tesla) or a Facebook group URL (https://www.facebook.com/groups/name). Add as many as you like.

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

Maximum number of groups to save for each keyword. 0 means as many as can be found.

## `minMembers` (type: `integer`):

Skip groups with fewer members than this. 0 keeps every group.

## `privacy` (type: `string`):

Keep only groups with this privacy setting.

## `includeDetails` (type: `boolean`):

Open every group page to add member count, creation date, categories, location and description. Turn off for a faster run that returns only the group URL and name; minimum members and privacy filters turn it back on.

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

Requests start without a proxy. If they are rejected, the actor switches to a datacenter proxy and then to a residential proxy.

## Actor input object example

```json
{
  "urls": [
    "tesla"
  ],
  "maxItems": 20,
  "minMembers": 0,
  "privacy": "any",
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All groups, overview table.

# 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 = {
    "urls": [
        "tesla"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_wiki/facebook-group-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 = {
    "urls": ["tesla"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("data_wiki/facebook-group-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 '{
  "urls": [
    "tesla"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call data_wiki/facebook-group-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_wiki/facebook-group-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/tclhzSRp5UKYGAPhy/builds/gBI87nWAJnxEdC2aY/openapi.json
