# Facebook Group Profile Scraper (`socialdataapi/facebook-group-profile-scraper`) Actor

Facebook Group Profile Scraper — Extract Facebook Group data including group name, description, member count, privacy type, category, admin details, activity, location, and group URL. Useful for audience research, lead generation, competitor analysis, and community insights.

- **URL**: https://apify.com/socialdataapi/facebook-group-profile-scraper.md
- **Developed by:** [Social Data API](https://apify.com/socialdataapi) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 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.

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 Group Profile Scraper — Admins, Members, Activity and Tags

Facebook Group Profile Scraper extracts the public profile of any Facebook group, as any logged-out visitor sees it. Each record holds the group name, description, creation date, total members, new posts today and last month, privacy, visibility, topic tags, and the admins and moderators with profile links. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a community outreach pipeline. **No Facebook account, login or cookies needed.** Start with one group link, then paste your whole prospect list.

![Facebook Group Profile Scraper output: group name, members, admins, privacy and topic tags as JSON](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/g-fb-group-profile-hero.webp)

***

### What data can I extract with Facebook Group Profile Scraper?

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

| 🆔 Group ID | 🏷️ Group name | 📝 Group description | 📅 Creation date (UTC) |
|---|---|---|---|
| 👥 Total members (short and exact count) | 🆕 New members in the last week | ✍️ New posts today | 📈 New posts in the last month |
| 🔓 Privacy (Public or Private) with Facebook's explanation | 👁️ Visibility (Visible or Hidden) with Facebook's explanation | 📜 Group history summary | 🔖 Topic tags chosen by the admins |
| 🧑‍💼 Admins (name and profile link) | 🛡️ Moderators (name and profile link) | | |

***

### How to use Facebook Group Profile Scraper

Agencies, community managers and researchers use it to scrape Facebook groups: paste a list of groups and get one comparable record per group from a single run.

**Copy to your AI assistant:**

```text
Facebook Group Profile Scraper (Apify Actor ID: socialdataapi/facebook-group-profile-scraper, https://apify.com/socialdataapi/facebook-group-profile-scraper) is an Apify Actor that returns the public profile of Facebook groups as structured JSON: group ID, name, description, creation date in UTC, total member count, new posts today and in the last month, new members in the last week, privacy and visibility with Facebook's own explanations, the history summary, the group's topic tags, and the names and profile links of the admins and moderators the group lists publicly. Use it whenever someone needs Facebook group data without cookies, a login, or a browser - vetting groups before an outreach or sponsorship pitch, ranking a list of groups by recent posting activity, or giving an AI agent a group's description and topic tags as context. Inputs: startUrls (array of strings, required; each entry is a group URL such as https://www.facebook.com/groups/535363634111893, share links with ?ref= or links to a post inside the group included, a group vanity name such as buyandsellcanada, or a numeric group ID; keywords, profile URLs and Page URLs are skipped with a warning), proxyConfiguration (object, accepted but not used: proxies are handled automatically). Each dataset row is one group; there are no summary or error rows. Each saved group is charged as one row_result event; groups that cannot be fetched, or that Facebook serves no data for (deleted, private with no public details, or a wrong ID), add no row and are not charged.
```

#### Facebook Group Profile Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at the Apify MCP server and it can read Facebook groups on its own: the server starts with this Actor already loaded as a tool, so the agent runs it with call-actor and reads the group records from the result. No glue code, no scraping logic in your prompts.

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

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open [Facebook Group Profile Scraper in the Apify Store](https://apify.com/socialdataapi/facebook-group-profile-scraper).
3. Enter the Facebook group URL, vanity name or numeric group ID (one per line).
4. Click **Start** (or send your API request).
5. Download or stream your results in JSON, CSV or Excel.

#### How to scale Facebook Group Profile Scraper to bulk

The group list takes as many entries as you need, so one run can export Facebook group details for a whole prospect list; paste a prepared list with **Bulk edit**. Groups are processed one after another with a one-second pause between them, and each group's public pages are requested at the same time. For recurring checks, attach an Apify schedule to the saved input or loop over batches of groups through the Apify API. Billing has one event: each saved group is one row_result event.

***

### ✨ Features

This Facebook group scraper fetches clean, structured group profiles from Facebook ⚡. It's ideal for vetting groups before outreach, tracking a group's growth, community research, and building a Facebook group moderators list for partnership requests. It works as a Facebook group info scraper, a Facebook group admins scraper and a Facebook group data extractor in one run.

It extracts, per group:

- **Admins and moderators** – the names and Facebook profile links the group lists publicly
- **Activity** – new posts today, new posts in the last month and Facebook's new-member text for the last week
- **Total members** – Facebook's short count and the exact count, such as "2.6K / 2,601 members"
- **Privacy and visibility** – Public or Private, Visible or Hidden, each with Facebook's explanation
- **Topic tags** – the topics the admins chose for the group, comma-separated
- **History** – the creation date in UTC and Facebook's history summary, including name changes
- **Name, ID and description** – the group's numeric ID, name and full description

⚡ If one of a group's pages can't be loaded, the record is still built from the page that did load, so fewer groups are lost.

***

### Use cases 💡

- **Agency strategist** — rank candidate groups by posts in the last month before pitching.
- **Partnership manager** — collect admin names and profile links for sponsorship requests.
- **Community manager** — check your group's privacy, visibility and listed admins each week.
- **Market researcher** — compare creation dates and member counts across a niche's groups.
- **AI engineer** — feed group descriptions and topic tags to an agent deciding which groups to monitor.

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

***

### Why choose this actor?

- **A list of groups, one record each.** A recorded local test run took 5 entries (three links to 2 real groups, a non-existent group ID and a keyword) and saved 3 records in 6.4 seconds; the non-existent ID was skipped without a charge and the keyword was skipped with a warning.
- **The numbers behind each group.** A recorded record for a Canadian online-ads group came back with 2,601 members, 1 new post that day, 9 in the last month, a creation date of 22 February 2013 and 5 admins with profile links.
- **Three ways to name a group, 14 data points back.** Paste a full link (share links and links to a post inside the group included), a vanity name or a numeric ID, and get the group ID, name, description, creation date, 4 activity values, privacy, visibility, history, topic tags, admins and moderators.

***

### ⬇️ Input

![Facebook Group Profile Scraper input: group links, vanity names or numeric group IDs](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/g-fb-group-profile-input.webp)

The actor accepts a list of Facebook groups, one per line: a group URL, a vanity name or a numeric group ID. The list (`startUrls`) is the only required field.

| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
| `startUrls` | Yes | array of strings | Groups to scrape, one per line: a group URL (query strings, fragments and sub-paths such as `/posts/123` are dropped), a vanity name or a numeric group ID. Keywords, profile URLs and Page URLs are skipped with a warning. No default. | `["https://www.facebook.com/groups/535363634111893", "buyandsellcanada"]` |
| `proxyConfiguration` | No | object | Accepted but not used: proxies are handled automatically. Console prefill `{"useApifyProxy": false}`; no default. | `{"useApifyProxy": false}` |

Accepted group formats:

- `https://www.facebook.com/groups/535363634111893`
- `https://www.facebook.com/groups/535363634111893/?ref=share`
- `https://www.facebook.com/groups/digitalnomadsaroundtheworld/posts/123/`
- `buyandsellcanada` (vanity name)
- `535363634111893` (numeric ID)

#### Free plan limits

Users on the Apify free plan can fetch up to 20 groups per run (all listed groups 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/535363634111893",
    "buyandsellcanada",
    "https://www.facebook.com/groups/digitalnomadsaroundtheworld/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

***

### ⬆️ Output

![Facebook Group Profile Scraper output: one record per group with admins, moderators and activity](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/g-fb-group-profile-output.webp)

Every group is one typed, normalized JSON item with the same schema on every run, with activity and about details nested in objects and admins and moderators in lists. Export formats: JSON (default), CSV and Excel; there are no summary or error rows.

#### Example output

A real record from a test run (admin list shortened to its first entry, the group's own Page):

```json
{
  "groupId": "535363634111893",
  "groupName": "Packaging Source BD প্যাকেজিং সোর্স বাংলাদেশ",
  "groupDescription": "যারা প্যাকেজিং নিয়ে কাজ করছেন এবং যারা প্যাকেজিং সমাধান খুঁজছেন; সবাইকে এই গ্রুপে স্বাগতম! \n\nগ্রুপে জয়েন➤পোষ্ট➤নেটওয়ার্ক= বিজনেস!",
  "groupCreatedTime": "2021-02-27T00:50:33.000Z",
  "activity": {
    "newPostsToday": 0,
    "newPostsLastMonth": 1,
    "totalMembers": "42.0K / 42,038 members",
    "newMembersLastWeek": "No new members in the last week"
  },
  "about": {
    "privacyInfo": {
      "text": "Public",
      "description": "Anyone can see who's in the group and what they post."
    },
    "discoverabilityInfo": {
      "text": "Visible",
      "description": "Anyone can find this group."
    },
    "history": {
      "text": "History",
      "description": "Group created on 27 February 2021. Name last changed on 27 February 2021."
    },
    "tags": {
      "text": "Tags",
      "description": "Entrepreneurship & start-ups, Manufacturing"
    }
  },
  "adminProfiles": [
    {
      "name": "Packaging Source",
      "url": "https://www.facebook.com/profile.php?id=100063815331951"
    }
  ],
  "moderatorsProfiles": []
}
```

***

### How does it work?

You don't need a Facebook account to run this Facebook group scraper. For each group, it loads the group's public pages the way a logged-out visitor sees them and returns only what any visitor can see.

Requests go through Apify proxies automatically, and when Facebook blocks a request the actor retries and switches proxies. If one of a group's pages can't be loaded, the record is built from the one that did load. There is no headless browser: it is plain HTTP. A group that comes back with no data is logged and skipped. Every record follows one fixed schema, whatever page variant Facebook serves.

***

### How do you integrate Facebook Group Profile Scraper into your stack?

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

#### MCP integration for AI agents

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

This connects your agent to the Apify MCP server, which starts with this Actor already registered as a tool your agent can call directly, so there is no search or add step. Sign in with your Apify account when asked. The command is for Claude Code; Cursor and Windsurf connect to the same URL in their MCP settings.

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

**n8n:** add the Apify node, choose **Run an Actor** and pick this Actor with your group list. Its dataset items flow straight into the next node, such as Google Sheets or a CRM.

**Make:** add the Apify app's **Run an Actor** module with this Actor and your input, then **Get Dataset Items** to pass the groups on. Map the group name and member count into any later module.

**LangChain:** install `langchain-apify` and load a finished run's dataset with `ApifyDatasetLoader`. Map the group description to the document content and the group name, ID and tags to metadata.

***

### Is it legal to scrape Facebook data?

Scraping publicly available Facebook group data is generally legal. This actor returns only publicly available data: what any visitor sees on a group's public pages without logging in. Admin and moderator names and profile links are personal data under the GDPR, so while scraping public data is generally permissible, storing and using it must comply with local data-protection law. This is not legal advice. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does Facebook Group Profile Scraper return?

The top five are the group name, the total member count, posting activity, privacy and the admins with their profile links. See [the data fields section](#what-data-can-i-extract-with-facebook-group-profile-scraper) for all of them.

#### Does Facebook Group Profile Scraper require a Facebook account or login?

No. Only public group data is extracted, and the input has no login, cookie or API-key field. No credentials needed.

#### How fast does Facebook Group Profile Scraper run?

A recorded local test run saved 3 records from 5 entries in 6.4 seconds, and another checked 5 group links (2 saved, 3 with no data) in 8.4 seconds; each group took about 1 second plus the one-second pause between groups. Data is fetched live on every run, not cached.

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

A deleted group or a wrong ID adds no row, logs a warning and is not charged. A private group that still shows public details comes back with privacy set to Private, its member count, tags and history, but Facebook may list no admins to logged-out visitors, so the admin list can be empty. Check for an empty dataset and for empty lists in your code.

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

Yes. Put as many groups as you need in the list; they are processed one after another, and each saved group is one row.

#### Does Facebook Group Profile Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — this Actor is available as an MCP tool through the Apify MCP server. Register the server in Claude Code with the command below (Cursor and Windsurf use the same URL), and the agent can call this Actor straight away; it is loaded as a tool when the server starts.

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

Any agent that can call an HTTP endpoint can also use the Apify REST API directly.

#### Does Facebook Group Profile Scraper return data in a format LLMs can use directly?

Yes. Every row 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 with no transformation step.

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

The output fields are fixed by the actor's schema, not by how Facebook draws the page, so a layout change alone does not change them. If one of a group's pages can't be loaded, the record is built from the one that did load; a group that returns nothing is logged and skipped rather than saved empty.

#### Can I use Facebook Group Profile Scraper without managing proxies or browser infrastructure?

Yes. Apify proxies are used automatically and switched when Facebook blocks a request, and no browser is needed because the actor works over plain HTTP. You send one request and get structured JSON back; it does not solve CAPTCHAs.

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

For RAG: the group description, name, history summary and topic tags, with the admins as metadata. For training data: the new posts today and in the last month, the creation date and the Facebook group member count text. All fields are typed primitives (strings and integers) inside fixed objects and lists; no normalization needed.

***

### Your feedback

Found a bug or missing a field? Let us know. Include the input you used and the run's log so the problem can be reproduced.

# Actor input Schema

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

One group per line: a group URL (e.g. https://www.facebook.com/groups/535363634111893, share links with ?ref=… work), a group vanity name (e.g. buyandsellcanada) or a numeric group ID. Keywords, profile URLs and Page URLs are skipped with a warning. Each group gives one result row; a group with no public data (deleted, private or wrong ID) is skipped and not charged. Free plan: up to 20 groups per run (all listed groups together) and 200 per month; paid plans have no limit.

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

Not used by this Actor: proxies are handled automatically, whatever you set here. When Facebook blocks a request, the Actor retries and switches proxies.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.facebook.com/groups/535363634111893"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All scraped items in the Actor's default dataset.

# 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": [
        "https://www.facebook.com/groups/535363634111893"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("socialdataapi/facebook-group-profile-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": ["https://www.facebook.com/groups/535363634111893"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("socialdataapi/facebook-group-profile-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": [
    "https://www.facebook.com/groups/535363634111893"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call socialdataapi/facebook-group-profile-scraper --silent --output-dataset

```

## MCP server setup

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