Empty Python project avatar

Empty Python project

Pricing

Pay per usage

Go to Apify Store
Empty Python project

Empty Python project

Empty project in Python.

Pricing

Pay per usage

Rating

5.0

(1)

Developer

Sa Ph

Sa Ph

Maintained by Community

Actor 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

  1. Open the Actor on Apify Console.
  2. Enter groupUrl and groupName, or provide a groups array.
  3. Optionally enable useGoogleSheet and provide Google Sheet settings.
  4. Optionally enable writeFullHistoryToGoogleSheet to save every post row.
  5. Optionally enable sendTelegram and provide Telegram credentials through input or environment variables.
  6. Run the Actor and check the Dataset output.
  7. 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.
  • googleCredentialsJson or GOOGLE_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

FieldDescription
group_nameInput group name
group_titleTitle detected from Facebook
group_urlGroup URL
member_countVisible member count
posts_fetchedNumber of posts collected
posts_with_time_countPosts with detected timestamp
hot_postHighest scoring post
postsFull collected post list
statusCrawl 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.