Facebook Group Posts Scraper
Extracts posts from public Facebook groups — message text, author, creation time, post URL, group name and URL, reaction and comment and share counts, and media attachments. Accepts up to 50 group URLs per run and can stop at a target date instead of a post count.
What it extracts
Every field below comes from the Actor’s published dataset schema.
| Field | Description | Type |
|---|---|---|
message | Post Message | text |
author | Author | object |
creation_time | Posted Date | date |
post_url | Post URL | link |
facebook_group_name | Group Name | text |
facebook_group_url | Group URL | link |
reactions | Reactions | object |
comments_count | Comments | number |
shares_count | Shares | number |
attachments | Attachments | array |
Input parameters
Generated from the Actor’s input schema — the same fields the Apify console shows.
| Parameter | Type | Required | Description |
|---|---|---|---|
groupUrls | array | Required | Facebook group URLs to scrape. Add one URL for a single group or multiple URLs for bulk scraping (max 50). |
maxItems | integer | Optional | Maximum number of posts to scrape from each group (start URL). |
untilDate | string | Optional | Stop scraping when reaching posts older than this date (format: YYYY-MM-DD). Leave empty to scrape until maxResults is reached. |
sortingSetting | string | Optional | How to sort the posts when scraping. Note: when 'Scrape Until Date' is set, this is forced to CHRONOLOGICAL. |
proxyConfiguration | object | Optional | Proxy configuration. Defaults to Apify residential proxies, which are recommended for Facebook scraping. Switch to no proxy or datacenter proxies if you understand the trade-off. |
notionConnector | string | Optional | Optional Notion connection. When set, every scraped post is added as a new page in the selected Notion database. |
notionDatabaseId | string | Optional | ID of the Notion database that will receive the new pages. The database must have a title property called `Name`. Required when a Notion Connector is selected. |
API access
Run this Actor from your own code over the Apify API.
{
"groupUrls": [
"https://web.facebook.com/groups/1745271899086274"
]
}curl -X POST \
"https://api.apify.com/v2/acts/logical_scrapers~facebook-group-posts-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"groupUrls":["https://web.facebook.com/groups/1745271899086274"]}'import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' })
const run = await client.actor('logical_scrapers~facebook-group-posts-scraper').call({
"groupUrls": [
"https://web.facebook.com/groups/1745271899086274"
]
})
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("logical_scrapers~facebook-group-posts-scraper").call(run_input={
"groupUrls": [
"https://web.facebook.com/groups/1745271899086274",
],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)Runs are executed on Apify. Create an API token in your Apify account, then call the Actor over REST or with the official client for your language. The same input object works in the Apify console, so you can test interactively before automating.
Use cases
Market and sentiment research
Track what a community is discussing over time, and how much engagement each topic attracts.
Lead generation
Surface posts where people describe a problem your product solves, with a link back to the original post.
Competitor monitoring
Watch groups where competitors are discussed and capture the posts and reaction counts.
Incremental daily collection
Use the until-date bound rather than a fixed count so a scheduled run picks up only what is new.
Pricing
Data not currently verified. This Actor's pricing model is not declared in our source repository.
Current rates are published on the Apify listing and can change, so they are not duplicated here. See pricing on Apify
Reliability
Measured across all public Goldmine Actors on Apify, 2026-08-24. This is an account-level figure, not a per-Actor benchmark — per-Actor speed and completeness benchmarks are not yet published. Source.
Limitations
What this Actor does not do, so you can tell before you run it whether it fits.
- Public groups only. Private and closed groups are not accessible, with or without credentials.
- Up to 50 group URLs per run.
- Returns posts, not comment threads. Reaction, comment and share counts are captured as numbers; the comments themselves are not.
- Facebook changes group markup frequently, and field availability can shift with it.
Frequently asked questions
Does it need a Facebook login?
No. It reads public group pages and never asks for credentials, so no account is put at risk.
How do I collect only new posts each day?
Set `untilDate` instead of relying on `maxItems`. The run stops when it reaches posts older than that date, which makes scheduled incremental collection cheap.
Can results go somewhere other than a dataset?
Yes — the Actor can optionally write each post into a Notion database via the `notionConnector` and `notionDatabaseId` inputs, in addition to the normal Apify dataset.
Used for
Workflows this Actor is part of, and the other scrapers it chains with.