Facebook Group Scraper
Pricing
from $1.40 / 1,000 results
Facebook Group Scraper
Scrape public Facebook groups without login or cookies: posts, comments, replies, reactions, authors, media, Buy & Sell listings, emails and member counts. Bulk groups, keyword and date filters, resumable runs. Clean JSON for community research, leads and market analysis.
Pricing
from $1.40 / 1,000 results
Rating
0.0
(0)
Developer
Data WiKi
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
4
Monthly active users
3 days ago
Last modified
Categories
Features
Share
🚀 What is Facebook Group Scraper?
Facebook Group Scraper is an Apify Actor that turns public Facebook groups into clean data: posts, comments and replies, reactions, authors, photos and videos, Buy & Sell listings and group details. Paste one or more group links, press Start and get one row per post, without a login and without copying anything by hand.
- Many groups in one run: as a Facebook groups scraper it takes one group link or hundreds, and understands full links,
/groups/namepaths, numeric ids, bare group names and links to a single group post. - Posts with their conversations: as a Facebook group post scraper it keeps the top comments Facebook shows under each post, or reads the full thread with replies.
- Filters that save money: date window, keywords, reactions and post types are applied before extra details are read, and posts that do not match are never charged.
- Resumable and repeatable: a run that stopped early gives you a position to continue from, and you can run the same input again on a schedule.
💡 Need the comments of one post, reel or video instead of a whole group? Use the comments scraper for single posts.
📊 What data can you extract from Facebook groups?
Every post becomes a row you can export as JSON, CSV, Excel, XML or HTML. This Facebook group data extractor keeps reactions, authors and group context together. These are the main fields (the dataset has more, such as thumbnail, feedback_id and topReactionsCount).
| Field | Description | Example |
|---|---|---|
post_id, post_url | Facebook id and direct link of the post | https://www.facebook.com/groups/dogspotting/posts/1000000000000001/ |
text | Post text in its original language | Example post text. |
user_name, user_url, user | Author name, profile link, id, picture and type | Example User |
creation_time, creation_timestamp | When the post was published (UTC text and Unix milliseconds) | Sun, 11 Oct 2026 20:14:56 GMT |
post_type, content_type | regular, shared or sale; and text, photo, album, video, reel, link, share or event | regular, photo |
reactions_count, reactionLikeCount, reactionLoveCount, reactionCareCount, reactionHahaCount, reactionWowCount, reactionSadCount, reactionAngryCount | Total reactions and the split by type | 16, 11 |
comments_count, shares_count | Comments and shares Facebook reports for the post | 1, 0 |
topComment | Comments read for the post, each reply right after its comment | [] |
media, photo_count, media_truncated, thumbnail | Photos, albums and videos, with the album size | 1 |
is_video, video_views, video_transcript | Video flag, exact view count and automatic transcript when Facebook has one | false |
hashtags, mentions, links, link_preview, sharedPost | Hashtags, tagged people or pages, web links, the shared link card and the shared post | [] |
emails, phones | Emails and phone numbers written inside the post text | [] |
sale_post | Buy & Sell listing: title, price, status, location, seller | null |
group_id, group_url, group_name, group_members, group_privacy | The group the post belongs to | Dogspotting, 1800000, public |
engagement, engagement_rate_pct | Reactions plus comments plus shares, and that as a percentage of group members | 17 |
is_question, matched_keywords | Whether the text reads like a question, and which of your keywords the post matched | false |
scraped_at | When the row was collected (ISO time, UTC) | 2026-10-11T20:41:41.000Z |
For Facebook group reactions data, open the Reactions table in the Output tab. With groupInfoOnly you get one row per group instead, with record_type, members, members_text, privacy, created_at, created_text and description.
⚠️ Hashtags, emails, phone numbers, links, shared posts, listing details and video fields are filled only when the post contains them.
engagement_rate_pctstays empty when the member count is unknown. Creation date and description of a group appear only ingroupInfoOnlyrows.
💡 Use cases for Facebook group data
- Build a lead list: combine
keywords,is_questionand theemailsandphonesfields for Facebook group lead generation from people who ask for a service. Where authors wrote an email in the text, you can extract email from Facebook group posts. - Research a community: read
text,topCommentandreactions_countto do Facebook group market research and see what members ask, share and react to. The same fields support Facebook community research into how members talk about a topic. - Monitor topics and brands: run
keywords,excludeKeywordsand a date window on a schedule as a simple Facebook group keyword monitoring setup, withmatched_keywordsshowing why each post was kept. UseexcludeKeywordsfor Facebook group brand mention tracking, to cut noise. - Track prices in Buy & Sell groups: use the listing fields in
sale_postwithminPriceandmaxPricefor Facebook group sale listing price tracking. - Measure engagement: compare
engagementandengagement_rate_pctacross groups for Facebook group engagement analytics. The Facebook group engagement rate is theengagement_rate_pctfield. - Analyse sentiment: comment text with replies, reaction types and dates are the base for Facebook group sentiment analysis.
- Feed AI projects: export the posts as JSON for LLM workflows and search indexes.
- Keep an archive: archive Facebook group posts of a public group for your own records.
🛠️ How to scrape Facebook groups
- Create a free Apify account and open this Actor in the Apify Store. To extract Facebook group posts you only need the links.
- Paste your public group links into Group links (
urls). - Set Number of posts (
maxPosts); it is the total across all groups, and0means every post Facebook shows without a login. - Choose a Sorting order (
sortingOrder) and, if you need it, a date window withpostsNewerThanandpostsOlderThan. - Switch on
fetchAllCommentsorincludeRepliesif you also want the full conversations. - Click Start and watch the log while rows appear in the Output tab.
- Download Facebook group posts and comments as JSON, CSV, Excel, XML or HTML.
💰 How much does it cost to scrape Facebook groups?
This Actor uses pay-per-event pricing: you pay per result, and one result is one saved row (a post, a Buy & Sell listing or a group-details row). Rows your filters leave out, duplicates and the links overview table are not charged.
| Plan tier | Results per 1,000 | Arithmetic |
|---|---|---|
| Free | $2.00 | 1,000 x $0.002 |
| Bronze | $1.80 | 1,000 x $0.0018 |
| Silver | $1.60 | 1,000 x $0.0016 |
| Gold and above | $1.40 | 1,000 x $0.0014 |
- Results (
main_result): charged once for every row saved to the default dataset. - Actor Start (
apify-actor-start): $0.00005 per event, charged when a run starts, one event per GB of memory with a minimum of one. This Actor is configured with 1,024 MB (1 GB), so the start fee is $0.00005 per run.
Worked example: 500 posts at the Gold tier cost 500 x $0.0014 = $0.70, plus $0.00005 for the start. Apify platform usage (compute) is billed on top of the events above. The tier follows your Apify plan; see the Pricing tab for current rates. You can set a maximum spend per run, and the run then stops cleanly and keeps the rows already saved.
⬇️ Input
Only urls is required. Everything else is optional with a default, and you can use the Input tab for a full explanation of every field. This example collects the 50 newest posts of one group from the last 7 days, with up to 10 comments per post, keeping only posts that mention "adoption":
{"urls": ["https://www.facebook.com/groups/dogspotting/"],"maxPosts": 50,"sortingOrder": "newest_posts","postsNewerThan": "7 days","fetchAllComments": true,"maxCommentsPerPost": 10,"keywords": ["adoption"],"keywordMatch": "any","outputFormat": "full"}
sortingOrderacceptsnewest_posts(default),newest_activity,most_relevant,buy_sell_listings,top_listings,recent_listings,popular,photos,videosandmedia. Combinenewest_postswith a date window to get Facebook group posts by date, because the run can stop as soon as it passes the window.postsNewerThanandpostsOlderThantake a date such as2026-01-01, a full ISO time or a relative value such as7 daysor2 months.includeTopComment(on by default) adds the one or two comments the feed shows.fetchAllCommentsreads the full thread, andincludeRepliesalso reads replies and turns on full-thread reading.commentsSortOrderisall(oldest first),most_relevantornewest.keywords,keywordMatch,excludeKeywords,minReactions,minComments,postTypesandonlyWithMedianarrow the posts, so you can scrape Facebook group posts by keyword. The same word cannot be in both keyword lists.- Setting
saleStatustoavailableorsold, or givingminPriceormaxPrice, switches the run to Buy & Sell listings. Prices are compared in the listing's own currency. groupInfoOnlyreturns one row per group and no posts.outputFormatset toflatgives one level of simple columns for spreadsheets, and the nested tables in the Output tab stay empty.resumeCursorscontinues an earlier capped run: paste theresumeCursorsobject from that run's summary record.proxyConfigurationworks with its default; you can also pick a country.
💡 Start with a small
maxPostssuch as 20 to check your filters before a big run.
⬆️ Output
The scraped results are shown as a dataset in the Storage tab, in separate tables for posts, engagement, reactions, authors, comments, media, links and contacts, Buy & Sell listings and groups. The default dataset is a Facebook group posts dataset with one row per post. The table view is for convenience and doesn't show all the fields. A second dataset, the links overview, has one row per link you entered (status, rows collected, stop reason and resume cursor), including links that could not be read. A run summary record holds the totals and the resume cursors. The Comments table lets you extract Facebook group comments with their replies on their own.
Export formats: JSON, CSV, Excel, XML and HTML, with the option to pick or leave out fields before exporting.
The next sample is fictional and shortened; it shows the shape of one row from the input above, not real data.
{"post_type": "regular","post_id": "1000000000000001","post_url": "https://www.facebook.com/groups/dogspotting/posts/1000000000000001/","text": "Example post about adoption.","user_name": "Example User","user": {"id": "1000", "name": "Example User", "type": "User"},"creation_time": "Sun, 11 Oct 2026 20:14:56 GMT","photo_count": 1,"reactions_count": 16,"reactionLikeCount": 11,"reactionLoveCount": 3,"reactionCareCount": 2,"comments_count": 1,"shares_count": 0,"topComment": [],"group_url": "https://www.facebook.com/groups/dogspotting/","content_type": "photo","group_name": "Dogspotting","group_members": 1800000,"group_privacy": "public","engagement": 17,"hashtags": [],"emails": [],"phones": [],"is_question": false,"matched_keywords": ["adoption"],"scraped_at": "2026-10-11T20:41:41.000Z"}
⚠️ Limitations and error handling
- Public groups only: a private group returns the status "private group – only public groups can be read" in the links overview. The member list is not extracted, only the member count.
- Groups only: profile, page and search links are not supported and get a clear status in the links overview.
- What you see without a login: you can scrape Facebook group data only as far as a visitor sees it, and Facebook shows fewer comments than it reports, so the number you get depends on the group. Run a small test to see how many a group gives you.
- Input problems stop the run before it starts: an empty
urlslist, a date window where the start is not before the end, the same word inkeywordsandexcludeKeywords, orminPriceabovemaxPrice. - Filters that match nothing: when many posts are checked and none pass, the run stops for that link; use
newest_postswith a date window or loosen the filters. If nothing matches, the run ends with the message "No posts matched. Check the group link and your filters." - Retries: a failed request is retried up to 3 times with a new connection. If Facebook cannot be reached, the remaining links are marked as skipped and the rows already saved are kept.
- Spend limit: when your maximum spend per run is reached, the run stops cleanly with the rows saved so far.
Every input link gets one row in the links overview with its status (ok or the reason it could not be read), rows_collected, posts_examined, posts_left_out_by_filters, stop_reason and resume_cursor.
🔌 Integrating Facebook Group Scraper with other apps
You can run the Actor through the Apify API, on a schedule, or from webhooks that fire when a run finishes. The API tab has ready-made JavaScript, Python and CLI snippets.
- Send results to Google Sheets with
outputFormatset toflatfor spreadsheet-friendly columns, or to Make and Zapier. That covers a Facebook group data to Google Sheets flow without code. - Use schedules with
newest_postsandpostsNewerThansuch as1 dayto collect only new posts each time. - Read the dataset through the Apify API from your own code.
🔗 Other Facebook and social media scrapers by data_wiki
| Actor | What it extracts | When to use it |
|---|---|---|
| Facebook comment scraper | Comments and replies from public posts, reels, videos and photos | You already have post links and want full threads |
| Facebook Marketplace scraper | Marketplace listings from keywords, search, category or listing links | You track listings outside groups |
| Instagram comments scraper | Comments from public Instagram posts and reels | You study audience mood on Instagram |
| Instagram reels by hashtag | Public Instagram reels by hashtag or keyword | You research trends on another platform |
| Airbnb data extractor | Airbnb listings with prices, ratings and reviews | When you want rental prices for the area a group discusses |
| LinkedIn Profile Scraper + Email | Jobs, skills, company and an inferred work email from public LinkedIn profiles | You have profile links and need career and contact data. |
| Contact details from company sites | Emails and phone numbers published on company websites | Your leads have a website and you want its published contacts |
| Facebook groups finder by keyword | Public Facebook groups from keywords or links: member count, privacy, creation date, category | You do not have group links yet and need to find groups first |
The scraped site is Facebook.
⚖️ Is it legal to scrape Facebook groups?
As a public Facebook group scraper, this Actor only reads data that any visitor can see and does not read private groups. Posts and comments can still contain personal data, so collect it only with a legitimate reason and respect privacy laws such as GDPR and CCPA, plus Facebook's terms. This is not legal advice; ask a lawyer when in doubt. Read Apify's guides on the legality of web scraping and ethical scraping.
❓ FAQ
Is scraping Facebook groups legal?
The Actor reads only public data, but whether your use is legal depends on how you use the data and on privacy laws and Facebook's terms. See the legality section above, and ask a lawyer when in doubt.
Does Facebook Group Scraper need a login?
No. The Actor reads public groups only, with no account, cookies or API key. Private groups, profiles and pages are not read.
How much does it cost to run?
You pay per saved row, from $1.40 to $2.00 per 1,000 results depending on your Apify plan tier, plus a start fee of $0.00005 per run. Apify platform usage (compute) is billed on top of the events. See the cost section above.
Can I scrape Facebook group posts and comments together?
Yes. Leave includeTopComment on, or set fetchAllComments or includeReplies for the full conversation, and use maxCommentsPerPost to cap the comments per post. This way you can scrape Facebook group comments together with their posts.
How many Facebook groups and posts can I collect?
maxPosts is the total for the whole run across all groups, and 0 means every post Facebook shows without a login. A post reached through two links is saved once.
Why am I getting fewer results than expected?
Your filters may remove posts, the group may be private, or Facebook may show fewer posts and comments without a login. Loosen keywords, minReactions, postTypes or the date window, and check the status in the links overview.
How do I continue a run that stopped early?
Copy the resumeCursors value from the run summary record into the Resume cursors field of the next run.
Can I find emails or sale prices in group posts?
Yes. Emails and phone numbers are collected when people wrote them in the post text, and Buy & Sell listings come with price, status, location and seller.
Can I get the Facebook group member count?
Yes. group_members and group_privacy are on every post row, and groupInfoOnly adds the description and creation date, so you can extract data from Facebook group pages beyond the posts. The list of members is not extracted.
How do I export Facebook group posts and comments?
Open the Output tab and download the dataset as CSV to save Facebook group posts to CSV. The Excel download works the same way to save Facebook group posts to Excel. To export Facebook group comments on their own, open the Comments table. Flat output works best for spreadsheets.
Can I run it from my own code?
Yes. Run data_wiki/facebook-group-scraper through the Apify API with your token and the input shown above, then read the dataset. Open the API tab for code samples.
Can I use this Actor through MCP?
Yes. The hosted Apify MCP server (https://mcp.apify.com) lets AI agents find an Actor with search-actors, check it with fetch-actor-details and run it with call-actor. See the Apify MCP documentation.
Can it read Facebook buy and sell groups?
Yes. Set sortingOrder to buy_sell_listings, or filter by saleStatus or price, the run returns listings. That makes it a Facebook buy and sell group scraper for price research. Group listings are not the same as Marketplace; for Marketplace use the Facebook Marketplace scraper above.
💬 Your feedback
Found a bug or need another field? Open an issue on the Actor's Issues tab. Need a custom solution? Contact hello.datawiki@gmail.com.