Facebook Public Group Posts & Comments [Only $1.5💰] NO COOKIES
Pricing
from $1.50 / 1,000 results
Facebook Public Group Posts & Comments [Only $1.5💰] NO COOKIES
[Only $1.5💰] Scrape Facebook public group posts and comments extract text, dates, media URLs, author info, engagement metrics (likes/shares), and detailed comment threads. Perfect for social listening, market research, or tracking community trends. High-speed, stealthy, and requires no login
Pricing
from $1.50 / 1,000 results
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
2
Bookmarked
224
Total users
108
Monthly active users
a day ago
Last modified
Categories
Share
Facebook Group Posts & Comments Scraper

Unlock the Full Power of Facebook Group Communities - The fastest and most reliable scraper to extract group posts, top comments, and engagement metrics from public Facebook Groups. By bypassing heavy browser automation and extracting data directly from Facebook's GraphQL API, this actor delivers comprehensive, real-time insights while saving you compute time and resources.
"From community management and market research to brand monitoring, we turn Facebook Group data into your competitive advantage."
Overview
The Facebook Group Posts & Comments Scraper is your go-to tool for extracting deep community data. Ideal for marketers, researchers, and community managers, it tracks post content, reaction counts, media attachments, and the most valuable discussions happening in the comments section.
With easy setup, relative date filtering, and multiple export formats (JSON, CSV, Excel), it's perfect for anyone looking to gather structured community intelligence.
Use Cases
Who is this scraper for?
- Marketing Teams: Track brand mentions and monitor sentiment inside highly engaged community hubs.
- Researchers: Analyze chronological timelines of group discussions, trending topics, and member interactions.
- Community Managers: Identify top contributors, highly engaging post formats, and overall group health metrics.
- Data Analysts: Build historical datasets of Facebook group activity for predictive modeling.
How It Works
- Provide Input: Enter one or more public Facebook Group URLs and configure your desired sorting option (Top Posts, Recent Activity, etc.).
- Set Filters: Optionally provide a date cutoff (e.g.,
30 daysor2026-03-01) to stop scraping once older posts are reached. - Extraction: The scraper navigates the GraphQL feed, intelligently paginating and collecting deep post data and top comments without rendering heavy UI elements.
- Export Data: Download your clean, structured dataset in JSON, CSV, or Excel format.
Features
- Multiple Sorting Options: Scrape feeds using "New posts" (Chronological), "Newest activity" (Recent Activity), "Most relevant" (Top Posts), or "BuySell items".
- Smart Date Filtering: Only fetch posts newer than a specific date (e.g.,
2026-03-01) or relative time (e.g.,30 days,2 weeks). The scraper stops paginating automatically when it hits older content. - Comprehensive Post Data: Extracts post text, legacy and GraphQL IDs, post URLs, creation timestamps, and group titles.
- Engagement Metrics: Extracts reaction counts (Like, Love, Haha, Wow, Sad, Angry), comment counts, and share counts.
- Media Attachments: Retrieves images and videos attached to the post with their direct URIs.
- Optional Top Comments: Toggle to pull the top/most interesting comments for each post (including comment text, author ID/name, and direct comment URL).
- Keyword Search Filter: Optionally keep only posts whose text contains a given phrase (case-insensitive). The scraper keeps paginating until it collects
maxItemsmatching posts or the feed runs out. - Marketplace Listing Detection: Posts in buy/sell groups that come from a Marketplace listing are flagged and enriched with the listing ID, URL, price, and sold/live/pending status.
- Optional Location Enrichment: Toggle to fetch each detected Marketplace listing's page for its location (text + latitude/longitude) and structured title — data the group feed does not include.
- Monitoring Mode (only new posts): Toggle to return only posts the scraper hasn't delivered in previous runs. It remembers post IDs across runs and stops paginating once it reaches already-seen posts — ideal for scheduled runs that should surface just what's new since last time.
- Photo Count: Every post reports
photoCount(the true number of photos) andadditionalPhotoCount(how many exist beyond the ones returned inattachments), so you always know when a post has more photos than the feed inlines — no extra request needed.
Input Configuration
The scraper requires a simple JSON input. Here are the core fields:
| Field | Type | Description | Default |
|---|---|---|---|
startUrls | Array | Required. List of Facebook group URLs to scrape (e.g. [{ "url": "https://www.facebook.com/groups/12345" }]). | [] |
viewOption | String | How to sort posts. Options: CHRONOLOGICAL, RECENT_ACTIVITY, TOP_POSTS, CHRONOLOGICAL_LISTINGS. | "CHRONOLOGICAL" |
search | String | Keep only posts whose text contains this phrase (case-insensitive). The scraper keeps paginating until it collects maxItems matches or the feed ends. Leave empty to scrape all posts. | undefined |
onlyPostsNewerThan | String | Stop paginating when hitting posts older than this date (e.g., 2026-04-20, 1 month). | undefined |
includeComments | Boolean | Whether to extract the most interesting top-level comments for each post. | false |
enrichMarketplaceListings | Boolean | For each post detected as a Marketplace/buy-sell listing, make one extra request to the listing page to add its location (text + latitude/longitude) and structured title. Adds one request per listing, so runs are a bit slower. Non-listing posts are unaffected. | false |
monitoringMode | Boolean | Return only posts not seen in previous runs. Remembers delivered post IDs across runs and stops paginating once it reaches already-seen posts. Ideal for scheduled runs. Already-seen posts are still fetched to be recognized as duplicates, so they are billed at the lower Additional data rate rather than the full result rate. | false |
maxItems | Integer | Maximum number of posts to scrape per group. | 100 |
proxy | Object | Proxy configuration. Highly recommended to use Residential Proxies to avoid blocks. | Apify Auto |
Example Input
{"startUrls": [{ "url": "https://www.facebook.com/groups/874728723021553" }],"viewOption": "TOP_POSTS","onlyPostsNewerThan": "30 days","includeComments": true,"maxItems": 20}
Example Input (buy/sell group with Marketplace enrichment)
{"startUrls": [{ "url": "https://www.facebook.com/groups/302792601187841" }],"viewOption": "CHRONOLOGICAL","search": "condo","enrichMarketplaceListings": true,"maxItems": 50}
Output Structure
The output is structured as a comprehensive JSON array. Each object corresponds to a single Facebook group post.
Key Output Fields
- Post Core:
facebookUrl,inputUrl,facebookId,groupTitle,url,legacyId,id,text,time - User Info:
user.id,user.name - Engagement:
feedbackId,topReactionsCount,reactionLikeCount,reactionLoveCount,reactionHahaCount,commentsCount,sharesCount,likesCount - Images/Media:
attachments(Array containing thumbnails, direct URIs, heights, widths, and types), plusphotoCount(total photos on the post) andadditionalPhotoCount(photos beyond those returned inattachments;0when all are included) - Comments (If enabled):
topComments(Array containing comment IDs, text, depth, profile info, and direct comment URLs) - Marketplace (listing posts only):
isMarketplaceListing,marketplaceListingId,marketplaceUrl,marketplacePrice,marketplaceIsSold,marketplaceIsLive,marketplaceIsPending - Marketplace Enrichment (if
enrichMarketplaceListings: true):marketplaceLocation(text, e.g."Cebu City, PH-07"),marketplaceLatitude,marketplaceLongitude,marketplaceTitle
Marketplace fields are only present on posts that actually originate from a Marketplace listing. Regular posts never carry these fields.
JSON Output Sample
(Shortened for readability)
{"facebookUrl": "https://www.facebook.com/groups/874728723021553","inputUrl": "https://www.facebook.com/groups/874728723021553","facebookId": "874728723021553","groupTitle": "Maths Formulas","url": "https://www.facebook.com/groups/874728723021553/permalink/2480039325823810/","legacyId": "2480039325823810","id": "UzpfSTEwMDA2NDM5NjI4NTkyMTpWSzoyNDgwMDM5MzI1ODIzODEw","text": "Set Theory\nLeft (A):\nWhen you think you understand sets...","time": "2026-04-22T10:35:13.000Z","user": {"id": "100064396285921","name": "AllMath"},"feedbackId": "ZmVlZGJhY2s6MjQ4MDAzOTMyNTgyMzgxMA==","topReactionsCount": 3,"reactionHahaCount": 100,"reactionLikeCount": 39,"reactionLoveCount": 1,"commentsCount": 42,"sharesCount": 5,"likesCount": 39,"attachments": [{"thumbnail": "https://scontent-...fbcdn.net/...","__typename": "Photo","photo_image": {"uri": "https://scontent-...fbcdn.net/...","height": 720,"width": 720},"id": "1417055773784285"}],"topComments": [{"commentId": "2480075832486826","id": "Y29tbWVudDoyNDgwMDM5MzI1ODIzODEwX...","text": "IAaaaa","threadingDepth": 0,"profileId": "pfbid0rdmZspd4tvbFaGJRngTmfVY...","profileName": "Chepngetich Brandy","profilePicture": "https://scontent-...fbcdn.net/...","commentUrl": "https://www.facebook.com/groups/874728723021553/permalink/2480039325823810/?comment_id=2480075832486826"}]}
JSON Output Sample (Marketplace listing with enrichment)
(Shortened for readability)
{"facebookId": "302792601187841","groupTitle": "CEBU HOMES AND CONDO RENTALS","legacyId": "1625190789610336","text": "Appleone Banawa Studio Airbnb...","time": "2026-06-29T08:12:00.000Z","isMarketplaceListing": true,"marketplaceListingId": "1625190789610336","marketplaceUrl": "https://www.facebook.com/marketplace/item/1625190789610336/","marketplacePrice": "PHP18,000","marketplaceIsSold": false,"marketplaceTitle": "Appleone Banawa Studio Airbnb","marketplaceLocation": "Cebu City, PH-07","marketplaceLatitude": 10.313415527344,"marketplaceLongitude": 123.88732910156}
FAQ
Can I scrape private Facebook groups? No. This scraper is designed strictly for public Facebook groups that are visible to anyone on the internet without requiring a login session.
Are comments always extracted?
No, to keep datasets clean and fast, comments are optional. You must set includeComments: true in your input configuration. When enabled, it pulls the "Top/Most Interesting" comments selected by Facebook's algorithm for that post.
Is this scraper fast?
Yes. Unlike traditional scrapers that load entire browser engines (Puppeteer/Playwright) to scroll down pages, this actor directly queries Facebook's backend GraphQL APIs using CheerioCrawler. This drastically reduces run times and compute usage costs.
Why did the scraper stop before reaching maxItems?
If you provided a onlyPostsNewerThan date filter, the scraper will immediately stop paginating as soon as it detects it has reached a chronological section of the feed older than your requested timeframe, saving you requests.
How do I get the location of Marketplace listings?
Enable enrichMarketplaceListings. The group feed only carries the listing ID and price, so the scraper makes one extra request per detected listing to its page and adds marketplaceLocation, marketplaceLatitude, marketplaceLongitude, and marketplaceTitle. Because this is one additional request per listing, listing-heavy runs are slightly slower and use a little more proxy traffic. It is off by default, so normal runs are unaffected.
Why are there no marketplace* fields on my posts?
Those fields only appear on posts that originate from a Marketplace/buy-sell listing. Regular discussion posts will not have them. Marketplace listings are most common in buy/sell groups (try viewOption: "CHRONOLOGICAL").
Can I match group posts to listings from a Marketplace scraper (de-duplication)?
Yes. The marketplaceListingId field is the canonical Facebook listing ID — the same number you see in both https://www.facebook.com/marketplace/item/{id}/ and https://www.facebook.com/commerce/listing/{id}. It maps 1:1 to the listing ID produced by a Marketplace scraper, so you can keep a set of IDs you have already collected and skip any group post whose marketplaceListingId is already in that set. This field is always present on listing posts, regardless of the enrichMarketplaceListings toggle (that toggle only adds location and title on top).
Explore More Scrapers
If you found this Facebook Group Posts & Comments Scraper useful, be sure to check out our other powerful scrapers and actors at memo23's Apify profile. We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.
Support
- For issues or feature requests, please use the Issues section of this actor.
- If you need customization or have questions, feel free to contact the author:
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request customization or whole dataset: muhamed.didovic@gmail.com
- If you need anything else scraped, or this actor customized, email: muhamed.didovic@gmail.com
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: muhamed.didovic@gmail.com