Facebook Groups Scraper
Pricing
from $2.99 / 1,000 results
Facebook Groups Scraper
Facebook Groups Scraper — scrape Facebook groups, including group names, descriptions, member counts, privacy status, categories, URLs, and available metadata for research, audience analysis, and lead generation.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
Social Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Facebook Groups Scraper — Posts, Authors, Reactions and Top Comments
Facebook Groups Scraper extracts the posts of public Facebook groups: post text, author name and profile, publish date, post link, photos and videos, reaction, comment and share counts, the seven-type reaction breakdown and the top comments under each post. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a social listening pipeline. No Facebook account or cookies needed. Start with one group you follow, then add every community that matters to your market.

What data can I extract with Facebook Groups Scraper?
Using this Actor, you will be able to extract the following Facebook group data:
| 📝 Post text | 👤 Author name and ID | 🖼️ Author profile picture | 🔗 Author profile link (if visible) |
| 📅 Publish date | 🌐 Post link | 🆔 Post IDs | 👥 Group name and ID |
| 👍 Reaction total | ❤️ Reactions by type (like, love, haha, wow, sad, angry, care) | 💬 Comment count | 🔁 Share count |
| 📸 Photos and videos with size | 🗂️ Albums with every photo inside | 🏷️ Image description and product tags | 🗨️ Top comments (up to 2) with commenter |
| 🕒 Time collected | 📥 Input link |
How to use Facebook Groups Scraper
Community managers, researchers and analysts use it to scrape Facebook groups and get one clean row per post from every public group they add, in a single run.
Copy to your AI assistant:
Facebook Groups Scraper (Apify Actor ID: socialdataapi/facebook-groups-scraper, https://apify.com/socialdataapi/facebook-groups-scraper) is an Apify Actor that returns the posts of public Facebook groups as structured JSON: post text, publish date, post link, author name and profile, reaction total with a per-type breakdown, comment and share counts, photos and videos, and up to 2 top comments per post. Use it whenever someone needs Facebook group posts without cookies, a login, or a browser - tracking what a community talks about, collecting customer questions and complaints, or watching listings in Buy/Sell groups. Run it from Apify Console or through the Apify API or the apify-client library with this Actor's ID from its Apify Store page and an input like {"startUrls": ["https://www.facebook.com/groups/cheapmealideas/"], "resultsLimit": 50, "viewOption": "CHRONOLOGICAL", "onlyPostsNewerThan": "7 days"}, then read the rows from the run's default dataset. Inputs: startUrls (array, public group links or group IDs, required), resultsLimit (integer, total posts across all groups, default 20), viewOption (string, feed order "CHRONOLOGICAL" | "RECENT_ACTIVITY" | "TOP_POSTS" | "CHRONOLOGICAL_LISTINGS", default "CHRONOLOGICAL"), searchGroupKeyword (string, keep posts whose text contains this phrase, default empty), searchGroupYear (string, keep posts from this publish year, default empty), onlyPostsNewerThan (string, keep posts newer than a date YYYY-MM-DD or a period like "2 weeks"). Each dataset row is one post and is billed as one result; groups that are private, deleted or blocked add no rows and are listed with the reason in the run status and in the OUTPUT record of the key-value store. Top comments hold at most 2 comments per post; the full comment count is always returned.
Facebook Groups Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor
Point your AI assistant at the Apify MCP server and it can run this Actor on its own: the link below starts the server with Facebook Groups Scraper already added as a tool. No glue code, no scraping logic in your prompts.
$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/facebook-groups-scraper"
Step by step
- Create a free Apify account.
- Open Facebook Groups Scraper in the Apify Store.
- Paste the Facebook group URL (a group name or numeric group ID works too).
- Click Start (or send your API request).
- Download or stream your results in JSON, CSV or Excel.
How to scale Facebook Groups Scraper to bulk
Unlike a one-link-at-a-time Facebook group scraper, it takes as many group links as you need in the group URL list. The same group given twice, for example once by name and once by ID, is scraped once, and up to 5 groups are processed at the same time. The number of posts is one total for the whole run, so a run with ten groups and 500 posts stops at 500. For ongoing Facebook group monitoring, save your input as a task and attach an Apify Schedule; with a chronological feed and a date filter such as "7 days", each group stops as soon as it reaches older posts. Each post is one billed result.
✨ Features
Facebook Groups Scraper fetches clean, structured posts from Facebook groups ⚡. It's ideal for community research, social listening, Buy/Sell tracking and feeding AI agents with real member conversations, and it works as a Facebook group posts extractor when you need to export Facebook group posts to a spreadsheet. It extracts, per post:
- Post text and link – the full message and a direct link to the post
- Author – name, ID, profile picture and profile link when Facebook shows it
- Publish date – ISO 8601 time in UTC
- Engagement – reaction total, comment count and share count
- Reaction breakdown – like, love, haha, wow, sad, angry and care counts
- Attachments – photos, videos and full albums with image size and automatic image description
- Top comments – up to 2 comments with the commenter's name, profile and date
⚡ Works logged out on public groups, saves every page of posts as soon as it is read, and adds no charged rows for groups it can't open.
Use cases 💡
- Community manager — spot the posts and commenters that drive each group's conversation.
- Market researcher — collect member questions and complaints with the keyword filter.
- Brand team — run Facebook group monitoring on a schedule and compare reaction counts.
- Reseller — follow the newest Buy/Sell listings with chronological listings sorting.
- AI builder — feed post text and top comments into a RAG pipeline for summaries.
Building an AI agent? Connect Facebook Groups Scraper over MCP and let it call the actor on its own.
Why choose this actor?
- Posts saved as they are read. A recorded run of the example input returned 10 posts from the last 7 days of one group in about 8 seconds, each with its author, reaction breakdown and comment and share counts, plus 13 top comments across them.
- The numbers behind each post. A recorded post came back with 10 reactions (8 like, 2 love), 1 share, 1 comment, a photo with its size and accent color, and its top comment with the commenter's name and date.
- 4 sort orders and 3 filters. Chronological, recent activity, top posts and Buy/Sell listings, plus keyword, publish year and posts-newer-than filters that stop a chronological feed as soon as it reaches older posts.
⬇️ Input

The actor accepts a list of public Facebook group links; the group URL list is the only required field.
| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
startUrls | Yes | Array | Public Facebook group links. A group name or numeric group ID also works; duplicates are scraped once. | ["https://www.facebook.com/groups/cheapmealideas/"] |
resultsLimit | No | Integer | Total number of posts across all groups. Default 20, minimum 1. | 50 |
viewOption | No | String | Feed order: CHRONOLOGICAL (default), RECENT_ACTIVITY, TOP_POSTS or CHRONOLOGICAL_LISTINGS (Buy/Sell groups). | "CHRONOLOGICAL" |
searchGroupKeyword | No | String | Keep only posts whose text contains this word or phrase (not case sensitive). Default empty. | "chicken" |
searchGroupYear | No | String | Keep only posts published in this year. Default empty. | "2026" |
onlyPostsNewerThan | No | String | Keep only posts newer than a date (YYYY-MM-DD) or a period (7 days, 2 weeks, 1 month, 1 year). | "7 days" |
Accepted group link formats:
https://www.facebook.com/groups/cheapmealideas/https://m.facebook.com/groups/126966114029232/(mobile links and numeric IDs)cheapmealideasor126966114029232(bare group name or ID)
Free plan limits
Users on the Apify free plan can fetch up to 20 posts per run (all groups together) and 200 posts per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.
Example input
{"startUrls": ["https://www.facebook.com/groups/cheapmealideas/"],"resultsLimit": 10,"viewOption": "CHRONOLOGICAL","searchGroupKeyword": "","searchGroupYear": "","onlyPostsNewerThan": "7 days"}
⬆️ Output

Every post is one typed, normalized JSON item with the same schema on every run. Export it as JSON (default), CSV or Excel; Facebook group reactions and comments sit in the same row as the post text, and a run summary per group is also saved in the key-value store under OUTPUT.
Example output
A real post from the example input above (image links shortened):
{"facebookUrl": "https://www.facebook.com/groups/cheapmealideas","url": "https://www.facebook.com/groups/cheapmealideas/posts/28996709066628219/","time": "2026-10-01T02:40:33.000Z","date": "2026-10-01T02:40:33.000Z","scrapedAt": "2026-10-04T10:44:42.000Z","user": {"id": "100000122773780","name": "Anthony Wineland","profileUrl": "https://www.facebook.com/anthony.wineland","profilePicture": "https://scontent.fdac8-1.fna.fbcdn.net/v/t39.30808-1/756975332_38404145002506113_5143856748803103175_n.jpg"},"text": "Great chili recipe for the insta pot\n\n1lb ground beef\n1lb pork sausage \n2 cans of kidney beans \n2 cans of pinto beans\n2 cans of rotel\nBacon or bits\n1 small onion chopped \n2tsp of ground cumin \n2 garlic gloves minced \n3/4 cayenne pepper","topReactionsCount": 10,"feedbackId": "ZmVlZGJhY2s6Mjg5OTY3MDkwNjY2MjgyMTk=","reactionLikeCount": 8,"reactionLoveCount": 2,"reactionHahaCount": 0,"reactionWowCount": 0,"reactionSadCount": 0,"reactionAngryCount": 0,"reactionCareCount": 0,"id": "UzpfSTEwMDAwMDEyMjc3Mzc4MDpWSzoyODk5NjcwOTA2NjYyODIxOQ==","legacyId": "28996709066628219","attachments": [{"thumbnail": "https://scontent.fdac8-1.fna.fbcdn.net/v/t39.30808-6/795385916_39848876531366279_4471553775021054563_n.jpg","__typename": "Photo","is_playable": false,"image": {"uri": "https://scontent.fdac8-1.fna.fbcdn.net/v/t39.30808-6/795385916_39848876531366279_4471553775021054563_n.jpg","height": 701,"width": 526},"id": "39848876464699619","__isMedia": "Photo","photo_cix_screen": null,"copyright_banner_info": null,"owner": {"__typename": null,"id": null},"ocrText": "No photo description available.","url": "https://www.facebook.com/photo/?fbid=39848876464699619&set=gm.28996709066628219&idorvanity=126966114029232","accent_color": "FFD6CDBE","photo_product_tags": []}],"likesCount": 10,"sharesCount": 1,"commentsCount": 1,"topComments": [{"commentUrl": "https://www.facebook.com/groups/cheapmealideas/permalink/28996709066628219/?comment_id=29090451417253983","id": "Y29tbWVudDoyODk5NjcwOTA2NjYyODIxOV8yOTA5MDQ1MTQxNzI1Mzk4Mw==","feedbackId": "ZmVlZGJhY2s6Mjg5OTY3MDkwNjY2MjgyMTlfMjkwOTA0NTE0MTcyNTM5ODM=","date": "2026-10-02T00:59:58.000Z","text": "What is a garlic glove? ✋️","profileUrl": null,"profilePicture": "https://scontent.fdac8-1.fna.fbcdn.net/v/t39.30808-1/793519289_4439772982972315_6981034517011740396_n.jpg","profileId": "pfbid0nsYvWHDJK1qdFZboX2ptG9RBeBbqT3L3RCi4D5vC8yvCjUs4sXQ5LCgbkuee5z1Al","profileName": "Thomas Alexander","likesCount": "0","threadingDepth": 0}],"facebookId": "126966114029232","groupTitle": "Cheap Meal Ideas","pageAdLibrary": {"is_business_page_active": null,"id": "126966114029232"},"inputUrl": "https://www.facebook.com/groups/cheapmealideas/"}
How does it work?
As a public Facebook group scraper, it reads groups the way any logged-out visitor sees them, so you never share an account, a password or cookies. It uses plain HTTP requests, no browser. Requests go through a proxy, and when Facebook answers with a login page or a block, the actor waits and retries on a new connection. Each page of posts is saved to your dataset as soon as it is read, so a group that stops partway still keeps the posts collected so far. Private and deleted groups are reported straight away instead of being retried, and they add no rows. It returns only publicly visible data: what any visitor sees without logging in. The output schema is normalized and stays the same from run to run, so your code and spreadsheets keep working when Facebook changes how its pages are built.
How do you integrate Facebook Groups Scraper into your stack?
It works with what you already use: the REST API from any language, MCP for AI agents, and no-code tools such as n8n and Make.
MCP integration for AI agents
Connect the Apify MCP server to your agent with one command:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/facebook-groups-scraper"
This registers Facebook Groups Scraper as a tool your agent can call directly, with no search or add step. It works in Claude Code, Cursor and Windsurf, and the agent gets structured posts back mid-conversation.
No-code tools (n8n, Make, LangChain)
- n8n: use the Apify node's "Run an Actor" operation and pick this Actor, or point the HTTP Request node at the Actor's run-sync endpoint with your Apify token. The posts come back as items you can send to Google Sheets or Slack.
- Make: add the Apify app's "Run an Actor" module with your group links in the input, then "Get Dataset Items" to read the posts. That is the quickest way to get Facebook groups to CSV or a sheet on a schedule.
- LangChain: install
langchain-apifyand wrap the Actor withApifyActorsTool, using its ID from the Apify Store page. Your agent can then pass group links and read post text and top comments.
Is it legal to scrape Facebook data?
Scraping publicly available Facebook data is generally lawful, although Facebook's terms restrict automated access. Facebook Groups Scraper returns only publicly available data — what any user sees without logging in — and nothing from private groups. Posts and comments name real people, so under GDPR and similar laws, collecting public data is generally permissible, but storing and using it must comply with local data-protection law. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What fields does Facebook Groups Scraper return?
Each post comes with its text, publish date, post link, author and engagement counts, plus attachments and up to 2 top comments. See the data fields section for the full list.
Does Facebook Groups Scraper require a Facebook account or login?
No. Only public group posts are extracted, and no credentials or cookies are needed.
How fast does Facebook Groups Scraper run?
A recorded run returned 10 posts from one group in about 8 seconds. Every run reads live data from Facebook, not a cache.
What happens if a group is private or doesn't exist?
The group adds no rows and costs nothing. Its reason, such as "private group - its posts are only visible to members" or "group not found or no longer available", appears in the run's status message and in the OUTPUT record of the key-value store, so your code can read which groups failed.
Can I scrape multiple Facebook groups at once?
Yes. This multiple Facebook groups scraper takes a list of group links, processes up to 5 at the same time, and shares one post total across the whole run.
Does Facebook Groups Scraper work with Claude, ChatGPT, and other AI agent tools?
Yes — Facebook Groups Scraper is available as an MCP tool through the Apify MCP server. Register the server in Claude Code, Cursor or Windsurf with claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/facebook-groups-scraper". Any agent that can call an HTTP endpoint can use the REST API directly.
Does Facebook Groups Scraper return data in a format LLMs can use directly?
Yes. Every post is typed, normalized JSON with consistent field names. No HTML parsing, no selectors: pass it straight to an LLM, index it into a vector store, or feed it to an agent tool with no transformation step.
What happens when Facebook changes its layout or updates its anti-bot system?
The actor is maintained. When Facebook changes, the actor is updated, and your calls keep returning the same JSON schema with no changes on your end.
Can I use Facebook Groups Scraper without managing proxies or browser infrastructure?
Yes. Proxy connections and retries run on the actor's side, and it needs no browser. You send one request and get structured JSON back: no proxy accounts, no headless browser setup, no maintenance.
Which Facebook group fields work best for AI training data and RAG indexing?
For RAG, use the post text, the top comment text and the group name. For training data, use the reaction total, the per-type reaction counts, the comment and share counts and the publish date. Counts are integers and dates are ISO strings, so no normalization is needed.
Your feedback
Found a bug or missing a field? Let us know through the Actor's Issues tab in Apify Console. Every report is read, and fixes ship as Facebook changes.