Empty Python project
Pricing
Pay per usage
Pricing
Pay per usage
Rating
5.0
(1)
Developer
Sa Ph
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
What does Facebook Group Crawler do?
Facebook Group Crawler crawls posts from selected Facebook groups, detects engagement counters, extracts member count when visible, and returns a structured dataset with the hottest post and all collected posts. You can run it manually, schedule it on Apify, call it through the Apify API, export results, and optionally send a Telegram report or write full crawl history to Google Sheets.
The Actor is designed for monitoring public or accessible Facebook groups where your provided Facebook session has permission to view content. It uses Playwright with a saved browser/session state, so the quality of results depends on the active Facebook account, group access, and Facebook page layout at run time.
Why use Facebook Group Crawler?
Use this Actor to monitor community activity, identify posts with high engagement, track active discussion groups, and send daily summaries to an operations or marketing team. Results can stay in Apify Dataset for API access and export, or be mirrored into Google Sheets for reporting workflows.
Key benefits:
- Crawl one group, multiple groups, or groups listed in Google Sheets.
- Detect a top/hot post by engagement score.
- Store full post history to Google Sheets with one row per post.
- Send a compact Telegram summary after the run.
- Schedule recurring runs with Apify Saved tasks and schedules.
How to use Facebook Group Crawler
- Open the Actor on Apify Console.
- Enter
groupUrlandgroupName, or provide agroupsarray. - Optionally enable
useGoogleSheetand provide Google Sheet settings. - Optionally enable
writeFullHistoryToGoogleSheetto save every post row. - Optionally enable
sendTelegramand provide Telegram credentials through input or environment variables. - Run the Actor and check the Dataset output.
- For daily runs, create an Apify Saved task and schedule it.
Input
You can configure the Actor from the Input tab. Main fields:
groupUrl: one Facebook group URL.groupName: display name for the single group.groups: JSON array like[{"name":"Group A","url":"https://www.facebook.com/groups/..."}].maxRounds: number of scroll rounds.useGoogleSheet: read group list from a Google Sheet.writeFullHistoryToGoogleSheet: write every collected post to a Google Sheet.googleSpreadsheetId,googleInputSheetName,googleOutputSheetName: Google Sheet settings.googleCredentialsJsonorGOOGLE_CREDENTIALS_JSON: service account credentials.sendTelegram,telegramBotToken,telegramChatId: Telegram report settings.
Google Sheet input rows should include group_url and name columns. The Actor also accepts common alternatives such as URL, url, groupName, and Tên Group.
Output
The Actor pushes one dataset item per group. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Example:
{"group_name": "Example Group","group_url": "https://www.facebook.com/groups/example","member_count": "12K members","posts_fetched": 18,"posts_with_time_count": 6,"hot_post": {"author": "Nguyen Van A","content": "Sample post content","reactions": 10,"comments": 25,"shares": 2,"score": 37,"url": "https://www.facebook.com/groups/example/posts/123/"},"posts": []}
Data table
| Field | Description |
|---|---|
group_name | Input group name |
group_title | Title detected from Facebook |
group_url | Group URL |
member_count | Visible member count |
posts_fetched | Number of posts collected |
posts_with_time_count | Posts with detected timestamp |
hot_post | Highest scoring post |
posts | Full collected post list |
status | Crawl status |
Pricing / Cost estimation
How much does it cost to scrape Facebook group data? Cost depends mainly on maxRounds, number of groups, and whether Facebook loads slowly. A small single-group run usually uses a small amount of compute. Larger Google Sheet runs with many groups should be scheduled carefully and tested with a low maxRounds first. Apify free tier limits may apply based on your account plan.
Tips or Advanced options
Keep maxRounds modest for scheduled monitoring. Use Apify schedules instead of running an internal scheduler in the Actor. Store Telegram and Google credentials as Apify secrets or environment variables rather than plain input. Refresh the Facebook session if runs start showing login forms or zero posts. For Google Sheets output, the Actor writes these columns: crawl_time, group_url, group_title, member_count, crawl_status, error_message, posts_fetched, has_top_post_24h, user, time_vn, url, likesCount, commentsCount, sharesCount, engagement, and text.
FAQ, disclaimers, and support
Is this legal? Scraping may be subject to Facebook terms, privacy rules, and local laws. Only collect data you are allowed to access and process.
Why is output empty? The Facebook session may be expired, the group may be private, Facebook may show a checkpoint, or the page layout may have changed.
Can it send Telegram alerts? Yes. Enable sendTelegram and provide TELEGRAM_TOKEN and TELEGRAM_CHAT_ID, or the equivalent input fields.
Can it read groups from Google Sheets? Yes. Enable useGoogleSheet, provide a spreadsheet ID, input sheet name, and service account credentials with access to the sheet.
For bugs or feature requests, use the Issues tab on the Actor page. Custom extraction fields, dashboards, and workflow integrations can be added as a custom solution.

