# Facebook Groups Posts Scraper (`seeb/facebook-groups-posts-scraper`) Actor

Collect Facebook group profile data and visible post rows for community research, lead discovery, niche validation, and competitor tracking with cookie, proxy, and timeout controls.

- **URL**: https://apify.com/seeb/facebook-groups-posts-scraper.md
- **Developed by:** [Techionik](https://apify.com/seeb) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 facebook group rows

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Facebook Groups Posts Scraper

Collect structured Facebook group profiles and visible post data for community research, niche discovery, lead generation, content research, and competitor tracking.

Paste Facebook group URLs and run. Public groups can be checked without cookies. For member-only or private groups, add `facebookCookieHeader` from a browser account that can already view the group.

### Why Use It

- Turn Facebook group pages into clean group and post rows without manually scrolling groups.
- Capture community signals such as group name, privacy, member count, description, author, post text, post time, reactions, and media indicators.
- Use optional cookies and proxy controls for groups that require membership or a more stable browser session.
- Avoid paid junk rows: blocked, empty, unavailable, and login-only pages are reported in notices, not written as customer dataset rows.

### Data Delivered

- `facebook_group_profile` rows with `groupName`, `groupSlug`, `groupUrl`, `privacy`, `memberCountText`, `groupDescription`, `dataQualityScore`, and `signalSummary`.
- `facebook_group_post` rows with `authorName`, `postText`, `postedAtText`, `reactionCountText`, `hasMediaSignal`, `sourceUrl`, `scrapedAt`, and a stable row `id`.
- Direct source URLs so every row can be checked against the original group page.
- Quality scoring and next-action fields for lead research, community validation, and review workflows.

### Input Options

- `groupUrls`: Facebook group URLs or group slugs.
- `maxResults`: total delivered row cap for the run.
- `maxPostsPerGroup`: visible post rows to collect from each group.
- `includeGroupProfileRows`: include one profile row per accessible group.
- `scrollsPerGroup`: scroll depth for revealing more visible posts.
- `facebookCookieHeader`: optional private cookie header for groups your browser account can access.
- `proxyMode`, `proxyUrl`, and `proxyCountryCode`: choose no proxy, Apify Proxy, or a custom managed proxy.
- `maxConcurrency`, `requestHandlerTimeoutSecs`, and `maxRunMinutes`: speed and timeout controls for larger jobs.

### Example Input

```json
{
  "groupUrls": [
    "https://www.facebook.com/groups/dogspotting",
    "https://www.facebook.com/groups/viewfrommywindow"
  ],
  "maxResults": 50,
  "maxPostsPerGroup": 10,
  "includeGroupProfileRows": true,
  "scrollsPerGroup": 2,
  "proxyMode": "apify",
  "proxyCountryCode": "US"
}
````

### Example Output

```json
{
  "resultType": "facebook_group_post",
  "groupName": "Dogspotting Society",
  "groupUrl": "https://www.facebook.com/groups/dogspotting",
  "authorName": "Visible author",
  "postedAtText": "2 h",
  "postText": "Visible post text from the group page",
  "reactionCountText": "128",
  "hasMediaSignal": true,
  "dataQualityScore": 92,
  "sourceUrl": "https://www.facebook.com/groups/dogspotting",
  "scrapedAt": "2026-06-24T12:00:00.000Z"
}
```

### Reliability

- Browser-based extraction for dynamic group pages.
- Whole-run and per-page timeout guards.
- Concurrency limits to keep memory usage stable.
- Deduplication by stable row IDs.
- Notices saved separately for blocked, unavailable, login-only, and no-visible-data pages.
- Dataset rows are emitted only when real group or post data is captured.

### Pricing

`$10.00 / 1,000 delivered rows`

A delivered row is a valid `facebook_group_profile` or `facebook_group_post` item written to the default dataset. Empty pages, blocked pages, login walls, timeouts, and no-data sources are not customer dataset rows.

### Best For

- Finding active niche communities.
- Tracking competitor or brand communities.
- Discovering lead and outreach opportunities.
- Validating audience demand before launching products, content, or offers.

# Actor input Schema

## `groupUrls` (type: `array`):

Facebook group URLs to inspect. Public groups can expose limited rows without cookies; private or member-only groups require cookies from an account with access.

## `maxResults` (type: `integer`):

Maximum delivered rows across all groups.

## `maxPostsPerGroup` (type: `integer`):

Maximum visible post rows to collect from each group.

## `includeGroupProfileRows` (type: `boolean`):

Emit one group profile row per accessible group with title, privacy, member count, and description.

## `scrollsPerGroup` (type: `integer`):

Number of page scrolls used to reveal more visible posts.

## `facebookCookieHeader` (type: `string`):

Optional Cookie header from a browser session that has access to the groups. Leave empty for public/no-cookie mode.

## `proxyUrl` (type: `string`):

Optional custom proxy URL used by the browser.

## `proxyMode` (type: `string`):

Use Apify Proxy when running in Apify Cloud, a custom proxy URL, or no proxy.

## `proxyCountryCode` (type: `string`):

Optional Apify Proxy country code.

## `maxConcurrency` (type: `integer`):

Number of group pages processed in parallel.

## `requestHandlerTimeoutSecs` (type: `integer`):

Maximum time allowed per group page.

## `maxRunMinutes` (type: `integer`):

Hard run guard used before Apify timeout.

## Actor input object example

```json
{
  "groupUrls": [
    "https://www.facebook.com/groups/dogspotting",
    "https://www.facebook.com/groups/viewfrommywindow",
    "https://www.facebook.com/groups/instantpotcommunity",
    "https://www.facebook.com/groups/gardeningtips",
    "https://www.facebook.com/groups/houseplants",
    "https://www.facebook.com/groups/photoshoprequests"
  ],
  "maxResults": 50,
  "maxPostsPerGroup": 10,
  "includeGroupProfileRows": true,
  "scrollsPerGroup": 2,
  "proxyMode": "none",
  "proxyCountryCode": "US",
  "maxConcurrency": 2,
  "requestHandlerTimeoutSecs": 120,
  "maxRunMinutes": 12
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `json` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("seeb/facebook-groups-posts-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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call seeb/facebook-groups-posts-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=seeb/facebook-groups-posts-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Groups Posts Scraper",
        "description": "Collect Facebook group profile data and visible post rows for community research, lead discovery, niche validation, and competitor tracking with cookie, proxy, and timeout controls.",
        "version": "0.1",
        "x-build-id": "2zioocyn32hN8snbK"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/seeb~facebook-groups-posts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-seeb-facebook-groups-posts-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/seeb~facebook-groups-posts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-seeb-facebook-groups-posts-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/seeb~facebook-groups-posts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-seeb-facebook-groups-posts-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "groupUrls"
                ],
                "properties": {
                    "groupUrls": {
                        "title": "Facebook group URLs",
                        "type": "array",
                        "description": "Facebook group URLs to inspect. Public groups can expose limited rows without cookies; private or member-only groups require cookies from an account with access.",
                        "default": [
                            "https://www.facebook.com/groups/dogspotting",
                            "https://www.facebook.com/groups/viewfrommywindow",
                            "https://www.facebook.com/groups/instantpotcommunity",
                            "https://www.facebook.com/groups/gardeningtips",
                            "https://www.facebook.com/groups/houseplants",
                            "https://www.facebook.com/groups/photoshoprequests"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Maximum rows",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum delivered rows across all groups.",
                        "default": 50
                    },
                    "maxPostsPerGroup": {
                        "title": "Maximum posts per group",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum visible post rows to collect from each group.",
                        "default": 10
                    },
                    "includeGroupProfileRows": {
                        "title": "Include group profile rows",
                        "type": "boolean",
                        "description": "Emit one group profile row per accessible group with title, privacy, member count, and description.",
                        "default": true
                    },
                    "scrollsPerGroup": {
                        "title": "Scrolls per group",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Number of page scrolls used to reveal more visible posts.",
                        "default": 2
                    },
                    "facebookCookieHeader": {
                        "title": "Facebook cookie header",
                        "type": "string",
                        "description": "Optional Cookie header from a browser session that has access to the groups. Leave empty for public/no-cookie mode."
                    },
                    "proxyUrl": {
                        "title": "Custom proxy URL",
                        "type": "string",
                        "description": "Optional custom proxy URL used by the browser."
                    },
                    "proxyMode": {
                        "title": "Proxy mode",
                        "enum": [
                            "none",
                            "apify",
                            "custom"
                        ],
                        "type": "string",
                        "description": "Use Apify Proxy when running in Apify Cloud, a custom proxy URL, or no proxy.",
                        "default": "none"
                    },
                    "proxyCountryCode": {
                        "title": "Apify proxy country",
                        "type": "string",
                        "description": "Optional Apify Proxy country code.",
                        "default": "US"
                    },
                    "maxConcurrency": {
                        "title": "Maximum concurrency",
                        "minimum": 1,
                        "maximum": 6,
                        "type": "integer",
                        "description": "Number of group pages processed in parallel.",
                        "default": 2
                    },
                    "requestHandlerTimeoutSecs": {
                        "title": "Page timeout seconds",
                        "minimum": 30,
                        "maximum": 900,
                        "type": "integer",
                        "description": "Maximum time allowed per group page.",
                        "default": 120
                    },
                    "maxRunMinutes": {
                        "title": "Maximum run minutes",
                        "minimum": 1,
                        "maximum": 60,
                        "type": "integer",
                        "description": "Hard run guard used before Apify timeout.",
                        "default": 12
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
