Facebook group posts scraper
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.9
(5)
Developer
Goldmine
Maintained by CommunityActor stats
13
Bookmarked
683
Total users
24
Monthly active users
5 days ago
Last modified
Categories
Share
π₯ Facebook Group Scraper β Extract Posts from Public Facebook Groups

This Facebook group scraper turns any public group on Facebook into structured data. Give it one or more group URLs and it returns the Facebook group posts with text, author, publish time, reactions, comment and share counts, and photo attachments. Teams use it to watch buy-and-sell groups, follow what a community says about a product, and build research datasets without reading feeds by hand.
Paste as many group links as you like, choose how many posts you want per group and how far back to go, and get one dataset item per post, ready to export to JSON, CSV or Excel or to land in a Notion database. No Facebook account, cookies or API key are needed.
π Key Features
- π Any public group β a
facebook.com/groups/<name>or/groups/<id>link, with no limit on how many per run - π§Ύ Full post record β text, author, publish time, reactions with a per-type breakdown, comment and share counts
- πΈ Photo attachments β thumbnail, dimensions, description and download URLs for each image
- π
Stop at a date β
untilDatekeeps only posts newer than a day you choose, for daily incremental runs - π’ Per-group limit β
maxItemscaps posts for each group separately, so one busy group cannot crowd out the rest - π‘οΈ No login required β reads only what Facebook shows to logged-out visitors; Apify residential proxies by default
- π Optional Notion output β every post can also be written as a page in a Notion database
- π€ Multiple export formats β JSON, CSV, Excel, XML via the Apify dataset
- π Schedulable runs β run daily with
untilDateto keep a group's history growing
π₯ Who Is This Actor For?
- ποΈ Sellers and deal hunters β tracking buy-and-sell and deals groups for new listings
- π£ Community and brand managers β reading what members say about a product or a competitor
- π§ Researchers and analysts β building datasets of public group discussion over time
- π§° Developers β feeding group posts into alerts, dashboards or a CRM
- π€ AI builders β giving an agent a Notion knowledge base of group discussion to query
π‘ Common Use Cases
- Scrape Facebook groups for buy-and-sell listings and export them to a spreadsheet each morning
- Watch a local community group for posts mentioning your business
- Collect questions people ask in a niche group to plan content or support articles
- Track how often a competitor is recommended in industry groups
- Build a Notion knowledge base of group posts an AI assistant can answer from
π Supported URL Types
| URL Type | Example |
|---|---|
| Group by name | https://www.facebook.com/groups/webscraping |
| Group by numeric ID | https://www.facebook.com/groups/1745271899086274 |
web.facebook.com links | https://web.facebook.com/groups/webscraping |
π₯ Input
| Field | Type | Description | Default |
|---|---|---|---|
groupUrls | Array | Facebook group URLs to scrape. Add one URL for a single group or as many as you like for bulk scraping. | Required |
maxItems | Integer | Maximum number of posts to scrape from each group (start URL). | 10 |
untilDate | String | Stop scraping when reaching posts older than this date (format: YYYY-MM-DD). Leave empty to scrape until maxItems. Forces chronological order. | none |
sortingSetting | String | How to sort the posts: CHRONOLOGICAL, RECENT_ACTIVITY or TOP_POSTS. Forced to CHRONOLOGICAL when untilDate is set. | CHRONOLOGICAL |
proxyConfiguration | Object | Proxy configuration. Defaults to Apify residential proxies, which are recommended for Facebook scraping. | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } |
notionConnector | String | Optional Notion connection. When set, every scraped post is added as a new page in the selected Notion database. | none |
notionDatabaseId | String | ID of the Notion database that will receive the new pages. Required when notionConnector is set. | none |
Example Input
{"groupUrls": ["https://www.facebook.com/groups/webscraping","https://www.facebook.com/groups/discountchicksdeals"],"maxItems": 50,"sortingSetting": "CHRONOLOGICAL","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
π€ Output
One dataset item per post:
| Field | Type | Description |
|---|---|---|
post_id | String | Facebook's identifier for the post |
creation_time | String | Publish time as an ISO 8601 timestamp (UTC) |
message | String | The post text |
post_url | String | Link to the post |
reactions | Object | total and a breakdown by reaction type |
comments_count | Number | Number of comments on the post |
shares_count | Number | Number of shares |
author | Object | id, name, url and profile_picture_url of the author. Anonymous posts show the name Facebook displays, such as "Anonymous participant" |
attachments | Array | Photos attached to the post: type, id, url, thumbnail, width, height, description and download_urls |
facebook_group_url | String | The group URL you passed in |
facebook_group_name | String | The group's name as it appears in the URL |
Example Output
A real item from a run on the example input, with URL query strings removed and the attachment list shortened to one entry:
{"post_id": "3215077992019615","creation_time": "2026-09-19T19:30:26.000Z","message": "Stocking stuffer and over 50% 0FF? Yes, please\nπ§ Tight engine bays have a special way of turning a simple repair into a game of βhow exactly am I supposed to get in there?β\n\nWhat Makes It Stand Out:\n\n* 25% thinner ratchet head is designed to fit into tighter engine-bay spaces\n\n* 72-tooth ratchet allows smooth operation with minimal swing needed\n\n* 6-point sockets provide a secure grip on fasteners to help reduce slipping\n\nπ Anyone else have a toolbox full of tools but still manage to need the one thatβs currently buried at the very bottom? π \n\nπ Check it out: https://amzn.to/4AnHAhW\n\n(AD)\n\nβ οΈ Deals, coupons, and prices may change or expire at any time.","post_url": "https://web.facebook.com/groups/discountchicksdeals/permalink/3215077992019615","reactions": {"total": 0,"breakdown": {}},"comments_count": 0,"shares_count": 0,"author": {"id": "pfbid02zRmGc8L1VcbW2jPh2PesvtMqVbNMDPPDXj3uWKZrqgRazcjTdqHbDQqnBemHz7ssl","name": "Tonya Brown","url": "https://web.facebook.com/tonya.brown","profile_picture_url": "https://scontent-lga3-3.xx.fbcdn.net/v/t39.30808-1/814406898_10234687299507911_7733867886762894359_n.jpg"},"attachments": [{"type": "photo","id": "10234717590105157","url": "https://web.facebook.com/photo.php","thumbnail": "https://scontent-lga3-3.xx.fbcdn.net/v/t39.30808-6/818365243_10234717590145158_7782320689223883130_n.jpg","width": 720,"height": 518,"description": "May be an image of text","download_urls": [{"url": "https://scontent-lga3-3.xx.fbcdn.net/v/t39.30808-6/818365243_10234717590145158_7782320689223883130_n.jpg","type": "photo_image","quality": "high","width": 720,"height": 518}]}],"facebook_group_url": "https://www.facebook.com/groups/discountchicksdeals","facebook_group_name": "discountchicksdeals"}
You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML from the Apify Console or via the Apify API.
π Notion Output (Optional)
Push every scraped post into a Notion database as a new page, for a content insights board, a competitor-research log, or an AI-queryable knowledge base of the groups you watch.
Step-by-step setup guide: Connect Notion to the Facebook Group Scraper
Recommended database columns
The Actor fills the following columns. Add them to your Notion database with these exact names (case-sensitive). Only Name is required; when the other columns are missing, the Actor falls back to a minimal Name plus content body page, so nothing is lost.
| Column | Notion type | Filled with |
|---|---|---|
| Name | Title (required) | First ~200 characters of the post, prefixed with the author |
| Author | Text or Select | The author's display name |
| Group | Text or Select | The Facebook group's name |
| Group URL | URL | The group URL |
| Post URL | URL | Direct link to the post |
| Posted At | Text | The post's timestamp |
| Reactions | Number | Total reactions on the post |
| Comments | Number | Comment count |
| Shares | Number | Share count |
| Post ID | Text | Facebook's post identifier |
Each page's body holds the full post text plus a key-value summary, which any AI agent connected to Notion through MCP can read back.
π° Pricing
This Actor is pay per event. Each post saved counts as one result at $0.01 per result, so 1,000 posts cost $10 plus Apify platform usage, including residential proxy traffic when you keep the default proxy. A free Apify account is enough to try it.
β FAQ
What is the Facebook Group Scraper?
It is an Apify Actor that reads public Facebook groups and returns their posts as structured data. Paste group links, set a limit per group, and run it from the Console, the API, or on a schedule.
Do I need an account, cookies or an API key?
No. The Actor reads only what Facebook shows to visitors who are not logged in.
Can I scrape private or closed groups?
No. Private groups are not visible to logged-out visitors, and logging in with an account would be against Facebook's terms. Only public groups work.
Do I need a proxy?
Yes, keep the residential default. Facebook shows datacenter IP addresses a login page instead of the group most of the time, and the Actor then reports "Failed to extract group ID". In our runs on 2026-09-19, four of five datacenter runs failed that way while residential runs succeeded.
How many posts can I get per group?
maxItems caps posts per group. Facebook serves a few posts per page and the Actor keeps paging until it reaches your limit, your untilDate, or the depth at which Facebook stops returning older posts. For long histories, run daily with untilDate and let the dataset accumulate.
Why does the author show as "Anonymous participant"?
Facebook lets members post anonymously in some groups. The Actor returns the name and id Facebook shows for the post.
Can I schedule it or integrate it with my app?
Yes. Every Apify Actor exposes a REST API, webhooks, and integrations with Zapier, Make, Google Sheets and Slack, and can be called from an AI agent via the Apify MCP server. The Notion output above is one such integration built in.
Is it legal to scrape Facebook groups?
This Actor accesses only publicly available pages. You are responsible for making sure your use complies with Facebook's terms of service and the laws in your jurisdiction, including any rules that apply to personal data.
What if Facebook changes and the Actor breaks?
Open an issue on the Actor's Issues tab with a group URL that fails, so the problem can be reproduced.
π§© Part of the Facebook Scraper Suite
Goldmine's Actors for public Facebook data. Also try:
- Facebook Posts Scraper β posts from public Facebook pages and profiles, with reactions, comments and shares
- Facebook Page Details Scraper β followers, category, contact details and about text for a page, one row per page
- Facebook Comments Scraper β comments and replies on public posts, videos, reels and photos
- Facebook Ads Library Scraper β ad copy, creatives, CTAs and run dates from the public Facebook Ad Library
- Facebook Reels Scraper β reels with plays, reactions, comments, shares and video URLs from public Facebook pages
See every Goldmine Actor at apify.com/logical_scrapers.
π· Image Credit
Image credit: facebook.com
π¬ Contact & Support
- Issues & feature requests: use the Issues tab on this Actor's page. Include a group URL that fails so it can be reproduced.
- Email:
coredev.dan@gmail.com - If this Actor saved you time, please leave a β rating on the Apify Store. It helps us keep it maintained.
This Actor is an independent tool for collecting publicly available data. It is not affiliated with, endorsed by, or connected with Meta Platforms, Inc.