Pricing
from $7.00 / 1,000 results
Facebook group posts scraper
The most cost-efficient Facebook groups scraper. Get Facebook group posts with comprehensive data including text, media attachments, engagement metrics, author information and more.
Pricing
from $7.00 / 1,000 results
Rating
4.5
(3)
Developer
Actor stats
11
Bookmarked
494
Total users
70
Monthly active users
1.1 days
Issues response
7 hours ago
Last modified
Categories
Share
Facebook Groups Post Scraper
π Facebook Groups Post Scraper Banner
Extract structured data from public Facebook groups at scale β post content, authors, engagement metrics, timestamps, and media attachments β straight into a clean JSON dataset, an Apify schedule, or a Notion database your team and AI agents can query.
Whether you're tracking market sentiment, monitoring competitor activity, gathering research data, or building a content idea pipeline, this actor turns one or many group URLs into a ready-to-use record set in minutes.
π Why Choose This Scraper
- β‘ Lightning fast: Extract hundreds of posts in minutes using a lightweight Cheerio engine β no headless browser overhead.
- π― Precision targeting: Scrape one group, or up to 50 groups in a single run.
- π Rich insights: Capture reactions, comments, shares, attachments, and author info per post.
- π Date-bounded scraping: Stop at a target date instead of just a count, perfect for daily incremental updates.
- π Notion-native delivery: Optionally pipe every post directly into a Notion database β no copy-paste, no webhooks, no glue code.
- π€ AI-agent ready: A Notion database written by this actor can be read by Claude, ChatGPT, or any MCP-aware agent for natural-language analysis.
π― Perfect For
- π Market researchers tracking trends, sentiment, and emerging topics across communities
- π Social media managers monitoring engagement and content performance
- πΌ Business intelligence teams keeping tabs on competitor activity and customer pain points
- π Sales and lead-gen teams finding qualified prospects from group discussions
- π Academic researchers gathering social-media datasets for studies
- π‘οΈ Trust & safety teams monitoring policy-relevant discussions at scale
π How to Use
- Open this actor on Apify and click Try for free (or Run).
- Paste one or more Facebook group URLs in the input form. Public groups only.
- (Optional) Set Maximum results per group, an Until date, or a different Sorting order.
- (Optional) Wire it to your Notion workspace via the Notion output section β see docs/notion-connector-setup.md.
- Click Save & Start. Watch the run log; download the dataset (JSON / CSV / Excel) when it finishes, and find every post as a new row in your Notion database if you enabled it.
π₯ Input
| Field | Type | Description | Required |
|---|---|---|---|
groupUrls | array | List of Facebook group URLs (max 50). Format: https://www.facebook.com/groups/<id-or-slug>. | β |
maxResults | integer | Max posts per group (default 10, up to 1000). | β |
untilDate | string | Stop scraping once posts older than this date are reached. Format: YYYY-MM-DD. Forces chronological order. | β |
sortingSetting | enum | One of RECENT_ACTIVITY, CHRONOLOGICAL, TOP_POSTS. Defaults to CHRONOLOGICAL. | β |
notionConnector | string | Apify MCP Connector authorized to Notion. See Notion Output. | β |
notionDatabaseId | string | Target Notion database ID. Required when notionConnector is set. | β |
Example input
{"groupUrls":["https://www.facebook.com/groups/1745271899086274"],"maxResults":50,"sortingSetting":"CHRONOLOGICAL"}
π€ Output
Each post is pushed as a single item to the dataset. You can download the dataset in JSON, CSV, HTML, or Excel from the run's Storage tab.
{"post_id":"1234567890","message":"Looking for recommendations on the bestβ¦","author":{"id":"10001","name":"Jane Doe","url":"https://www.facebook.com/jane.doe"},"creation_time":"1717180000","post_url":"https://web.facebook.com/groups/1745271899086274/permalink/1234567890","facebook_group_name":"Local Buy & Sell","facebook_group_url":"https://web.facebook.com/groups/1745271899086274","reactions":{"total":42},"comments_count":12,"shares_count":3,"attachments":[]}
Data fields
| Field | Type | Description |
|---|---|---|
post_id | string | Facebook's stable identifier for the post. |
message | string | The post's text content. |
author | object | { id, name, url } of the post's author. |
creation_time | string | Unix timestamp of when the post was published. |
post_url | string | Direct link to the post on Facebook. |
facebook_group_name | string | Display name of the source group. |
facebook_group_url | string | Canonical URL of the source group. |
reactions | object | Engagement counts; reactions.total is the aggregate. |
comments_count | number | Total comments on the post. |
shares_count | number | Total shares of the post. |
attachments | array | Media attachments (images, links, etc.) when available. |
π Notion Output (Optional)
Push every scraped post into a Notion database as a new, fully-formed page β perfect for a content insights board, a competitor-research log your team actually opens, or an AI-queryable knowledge base of discussions across the groups you watch.
Step-by-step setup guide: docs/notion-connector-setup.md
Recommended database columns
The actor populates the following columns. Add them to your Notion database with these exact names (case-sensitive). Only Name is strictly required β unknown columns trigger an automatic fallback to a minimal Name + content body payload, so nothing is lost.
| Column | Notion type recommended | Filled with |
|---|---|---|
| Name | Title (required) | First ~200 characters of the post, prefixed with author. |
| Author | Text or Select | The author's display name. |
| Group | Text or Select | The Facebook group's name. |
| Group URL | URL | Canonical Facebook group URL. |
| Post URL | URL | Direct link to the post. |
| Posted At | Text | Unix timestamp string (use typecast if you want Date). |
| Reactions | Number | Total reactions on the post. |
| Comments | Number | Comment count. |
| Shares | Number | Share count. |
| Post ID | Text | Facebook's stable post identifier. |
Each page's body is auto-generated Notion Markdown containing the full post message plus a key-value summary β great for skimming and AI-agent retrieval.
Turn it into an AI knowledge base
Notion's MCP server is bidirectional β the same workspace this actor writes to can be read by any AI agent connected to Notion via MCP (Claude Desktop, ChatGPT with the Notion connector, custom Anthropic API agents). Once your scrape runs on a schedule, you can ask:
- "What products are people asking about most in the Local Buy & Sell group this week?"
- "Summarize complaints from group X this month."
- "Find any post mentioning competitor brand Y and flag for review."
The scraper feeds the knowledge base; the AI does the analysis.
π° How Much Does It Cost to Scrape Facebook Groups?
Pricing is based on Apify compute units (CUs) β see the Pricing tab on the actor page for current rates.
Typical run sizes:
- 10 posts / 1 group: under a minute, well under one CU.
- 50 posts / 1 group: ~2β3 minutes, ~1 CU.
- 500 posts / 10 groups (bulk): ~20β40 minutes, ~10 CU.
By default the actor routes traffic through Apify Residential proxies for stable extraction. Residential proxy traffic is billed separately (it consumes proxy/CU usage on your Apify plan, it is not free). You can switch to datacenter proxies or no proxy in the input if your use case allows.
βοΈ Tips and Advanced Options
- Stop at a date. Set
untilDate(YYYY-MM-DD) for daily / weekly incremental scrapes β sorting is forced to chronological so the actor knows when to bail. - Scale to many groups. Up to 50 group URLs per run; pair with Apify scheduling to monitor a whole portfolio of communities.
- Append to one Notion DB. Run the actor on a schedule with the same
notionDatabaseIdand Notion accumulates a longitudinal record automatically β perfect for trend analysis.
β FAQ
Is scraping Facebook groups legal?
The actor only retrieves data that's already public on Facebook (you can see it as a logged-out browser). You're responsible for ensuring your specific use complies with Facebook's Terms of Service and any privacy laws applicable in your jurisdiction (GDPR, CCPA, etc.). Do not store personal data beyond what your use case requires.
Why are some posts missing from the result?
Facebook's group page often loads posts progressively. The actor uses Cheerio (HTTP-only) for speed, so deeply lazy-loaded posts may not appear. Increase maxResults modestly and use CHRONOLOGICAL sorting for the most predictable coverage.
Can I scrape private or closed groups?
No. The actor only accesses publicly viewable groups. Private/closed groups would require an authenticated session, which is out of scope and against Facebook's ToS.
Where do the Notion writes go if I leave the Notion fields empty?
Nowhere β the Notion sink is fully optional. Without the notionConnector and notionDatabaseId inputs, the actor just pushes posts to the Apify dataset as usual.
π¬ Contact and Support
For questions, custom scraping needs, or technical issues, contact us:
- Email : coredev.dan@gmail.com
- Apify Store: apify.com/logical_scrapers
Legal Notice
This actor is an independent tool for collecting publicly available data from Facebook groups. It is not affiliated with, endorsed by, or in any way officially connected with Meta Platforms, Inc., Facebook, or their subsidiaries.
