Skip to content
    ↑↓ to choose · Enter to open

    · 16 min read

    Facebook Group Posts Scraper: Up to 1,000 Free Results a Month (2026)

    By CrawlerBros Engineering Team

    Each record returned by this Actor contains 22 fields covering post content, author, media, and engagement, with an additional 11 fields for group profile data when enabled. A thousand results cost $5.00 per 1,000 results on Apify's free plan, before any run-start charges. This Actor extracts data from any public Facebook group, provided you supply its URL, slug, or numeric ID. This is ideal for anyone needing to monitor discussions or perform market research within public Facebook communities. It is not for anyone who needs to scrape private or closed groups, which the Actor cannot access.

    Try it: open Facebook Group Posts Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Facebook Group Posts Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Facebook Group Posts Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 10, so a first run returns at most 10 results and costs at most $0.05 in result charges. That is enough to see the real shape of the data before deciding anything.

    Facebook Group Posts Scraper was last updated on 2026-09-17. It is one of 1,724 Actors CrawlerBros publishes on Apify, which together have 710,197 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Facebook Group Posts Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00367 $3.67
    SILVER $0.00233 $2.33
    GOLD $0.001 $1.00
    PLATINUM $0.001 $1.00
    DIAMOND $0.001 $1.00

    Charges apply per result written to the dataset. The primary control influencing your bill is maxItems, which directly determines how many posts are returned per group. To explore the Actor's capabilities without significant cost, start with the example input, which caps maxItems at 10. This ensures your first run returns at most 10 results, costing up to $0.05 in result charges.

    How do you run Facebook Group Posts Scraper from the API?

    The schema marks 1 of its 6 controls as required: startUrls. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Facebook Group Posts Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~facebook-group-posts-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"startUrls":["https://www.facebook.com/groups/pythondevelopers/"],"sortBy":"top","maxItems":10,"includeTopComments":true,"enrichGroupInfo":false,"monitoringMode":false}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "startUrls": [
        "https://www.facebook.com/groups/pythondevelopers/"
      ],
      "sortBy": "top",
      "maxItems": 10,
      "includeTopComments": True,
      "enrichGroupInfo": False,
      "monitoringMode": False
    }
    
    run = client.actor("crawlerbros~facebook-group-posts-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "startUrls": [
        "https://www.facebook.com/groups/pythondevelopers/"
      ],
      "sortBy": "top",
      "maxItems": 10,
      "includeTopComments": true,
      "enrichGroupInfo": false,
      "monitoringMode": false
    }
    
    const run = await client.actor('crawlerbros~facebook-group-posts-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which Facebook Group Posts Scraper inputs matter, and which can you skip?

    The Actor has 6 controls, with startUrls being the only required field. For startUrls, you can input Facebook group URLs, bare group slugs, or numeric IDs. Most users should focus on startUrls and maxItems to define the scope, while leaving sortBy, includeTopComments, enrichGroupInfo, and monitoringMode at their defaults for an initial run.

    • startUrls (array): Facebook group URLs (e.g. https://www.facebook.com/groups/pythondevelopers/) or bare group slugs/IDs.
    • sortBy (string): How to order the group's feed. Default: "top".
    • maxItems (integer): Maximum number of posts to return per group. Default: 50.
    • includeTopComments (boolean): Include each post's top comments in the results, with comment text, author, and reactions. Default: true.
    • enrichGroupInfo (boolean): Add each group's description, member count, admins, rules, and creation date to every post record. Default: false.
    • monitoringMode (boolean): Only return posts not seen in a previous run for the same group, so scheduled runs return just what's new. Default: false.

    Fixed-choice controls: sortBy accepts top (Top posts), chronological (newest first), recent_activity (Recent activity), listings (Buy/sell listings).

    What does Facebook Group Posts Scraper return?

    The returned records are suitable for detailed content analysis, allowing you to track discussions, identify popular topics, and analyze engagement. Each post includes text, media URLs, reaction breakdowns, and top comments. The output does not contain private group content, which this Actor cannot access.

    Output per post

    • id: string - Facebook's internal opaque post ID
    • postId: string - Real numeric post ID
    • permalinkUrl: string - Direct link to the post
    • groupId: string - Numeric ID of the group the post belongs to
    • groupUrl: string - Normalized URL of the group
    • text: string - Full post text
    • hashtags: array - Facebook hashtag page URLs found in the post text
    • creationTime: integer - Unix timestamp the post was created
    • authorId: string - Numeric ID of the post author
    • authorName: string - Name of the post author
    • authorUrl: string - URL of the post author's profile
    • authorUrlIsFallback: boolean - true when Facebook didn't provide a direct profile link and the URL was built from the author's numeric ID instead
    • attachments: array - Photos/videos attached to the post, including direct media URLs and auto-generated image captions where available
    • reactionsTotal: integer - Total reaction count
    • reactionBreakdown: array - Reaction counts by type, e.g. Like/Love/Haha/Wow/Sad/Angry/Care
    • commentsCount: integer - Total number of comments (including replies)
    • sharesCount: integer - Total number of shares
    • topComments: array - Top comments, each with text, author, reactions, and permalink
    • sharedPost: object - The original post's full data if this post is a reshare, otherwise omitted
    • group: object - Group profile data (only present when "Enrich with group info" is enabled) - see below
    • inputUrl: string - The input URL that produced this record
    • scrapedAt: string - ISO 8601 timestamp of when the record was scraped

    group` object (when "Enrich with group info" is enabled)

    • id: string - Numeric group ID
    • url: string - Normalized group URL
    • description: string - Full group description
    • memberCount: integer - Exact member count
    • memberCountFormatted: string - Abbreviated member count, e.g. "75.9K"
    • createdAt: integer - Unix timestamp the group was created
    • admins: array - Group admin names
    • rules: array - Group rules, each with a title and description
    • privacy: string - Group privacy setting, e.g. "Anyone can see who's in the group and what they post."
    • discoverability: string - Group discoverability setting
    • tags: array - Group category tags

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Facebook Group Posts Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Start by entering one or more Facebook group URLs, slugs, or numeric IDs into the startUrls input. Use a group you know has recent public activity.
    2. Set sortBy to "chronological" to see the most recent posts, which is often a good indicator of whether the group is active.
    3. Keep maxItems at its default of 50 for your first run to get a representative sample without incurring high costs.
    4. Run the Actor and examine the output. Check the text and attachments fields for content and the authorName and authorUrl for correct attribution.
    5. If the content looks correct, consider enabling includeTopComments to get engagement data. Review the topComments array for relevant discussion.
    6. To capture comprehensive group context, enable enrichGroupInfo and check the group object in the output for fields like description and memberCount.
    7. For ongoing monitoring, enable monitoringMode for a scheduled run. Verify that subsequent runs only return posts with new IDs.

    How do you apply it? Three worked playbooks

    These are Facebook Group Posts Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Community monitoring

    Outcome: Track new posts and discussions in Facebook groups relevant to your brand, product, or industry

    Configure: Set startUrls to the specific group URLs you wish to monitor. Enable monitoringMode to true. Set sortBy to "chronological" and maxItems to a value that balances data freshness with cost, such as 100 or 200.

    Working method: Begin with a single, highly relevant group URL in startUrls and run the Actor once to establish a baseline. Review the initial output to ensure all fields are correctly populated. Then, schedule the Actor to run at a chosen interval (e.g., daily or hourly) with monitoringMode enabled to automatically capture only new posts. Integrate the output into an alerting system or a dashboard to track new discussions.

    Deliverable: A daily or hourly feed of new Facebook group posts, including full text, author details, and engagement metrics, accessible via an API endpoint or a connected data store.

    Stop condition: New runs return zero new posts for an active group that you know has recent activity, indicating monitoringMode is no longer capturing updates.

    Use case 2: Market research

    Outcome: Analyze engagement patterns, sentiment, and popular topics inside niche communities

    Configure: Provide multiple Facebook group URLs in startUrls that represent niche communities. Set sortBy to "top" to focus on highly engaged content, and set maxItems to 500 to capture a broad sample. Enable includeTopComments and enrichGroupInfo to gather comprehensive data.

    Working method: Start by identifying a set of niche Facebook groups relevant to your market research. Perform an initial run with enrichGroupInfo and includeTopComments enabled. Analyze the 'text' field for keywords and themes, 'reactionBreakdown' for sentiment, and 'topComments' for qualitative insights. Look at the 'group' object for context on community size and rules. Repeat this for several groups, comparing findings to identify overarching trends and unique community characteristics.

    Deliverable: A structured dataset of up to 500 posts per group, including detailed engagement metrics, full comments, and group metadata, suitable for sentiment analysis and topic modeling.

    Stop condition: The output for a known active group shows consistent null values for text, reactions, or comments, suggesting a structural change that prevents data capture for key analysis fields.

    Use case 3: Content aggregation

    Outcome: Collect group discussions for newsletters, digests, or dashboards

    Configure: Specify the Facebook group URLs for your content sources in startUrls. Set sortBy to "recent_activity" to get the most dynamic content. Use maxItems to control the volume of content, for example 100 posts per group. Enable includeTopComments to get discussion context.

    Working method: Select a few target Facebook groups that consistently generate valuable content for your aggregation needs. Configure an initial run focusing on 'recent_activity' and including 'topComments'. Manually review a sample of the output to ensure posts and comments are suitable for your content format. Then, integrate the Actor into a scheduled workflow to periodically collect new content. Apply post-processing to filter, format, and curate the data before publishing to your newsletter or dashboard.

    Deliverable: A curated feed of recent Facebook group posts and their top comments, updated on a schedule, ready for incorporation into external content platforms like newsletters or internal dashboards.

    Stop condition: The aggregated content consistently features irrelevant or low-quality posts and comments from previously reliable groups, indicating a shift in group activity or a need to adjust input parameters.

    What breaks, and how do you design around it?

    When encountering rate limits, consider reducing the maxItems value in subsequent runs or splitting large lists of startUrls into multiple smaller runs. If you need to search for posts on a specific topic, perform the keyword filtering on the scraped data after extraction, as Facebook itself does not offer direct keyword search across a group's full post history.

    When should you not use Facebook Group Posts Scraper?

    This Actor is designed exclusively for public Facebook groups and will not function for private or closed groups, as it cannot bypass membership requirements. If your data needs involve private group content, this Actor is unsuitable; consider direct engagement with group members or seeking alternative data sources from within the community itself. For scraping posts from public Facebook Pages or individual profiles, a more targeted tool like Facebook Posts Scraper would be more appropriate. Similarly, if your primary goal is to extract comments from specific posts, the Facebook Comments Scraper would offer a more focused and efficient solution. Do not use this Actor if you require contact details for members or detailed historical data beyond what Facebook's feed sort orders provide; such data is generally not publicly exposed. If your goal is to analyze Facebook advertisements, the Facebook Ads Library Scraper is the correct tool.

    What should you check before trusting the output?

    • Look for empty text fields in posts where content is expected; this may indicate a change in Facebook's rendering.
    • Verify that authorUrl values are consistently valid, even when authorUrlIsFallback is true.
    • Check for reactionsTotal being significantly higher than the sum of reactionBreakdown counts, which could indicate partial data capture.
    • If includeTopComments is enabled, ensure topComments is an array of objects, not empty or malformed when comments exist.
    • When enrichGroupInfo is enabled, confirm that the group object contains expected fields like memberCount and description.

    None of this proves a record is correct. It gives a scheduled Facebook Group Posts Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    Can I try this Actor before committing to a paid plan?

    Yes, Apify's free plan includes $5.00 of monthly usage with no credit card required. This covers up to 1,000 results from this Actor at the free-plan price, before any run-start charges. A single example run with the default maxItems of 10 posts costs at most $0.05 in result charges.

    What happens if a Facebook group becomes private after I start scraping it?

    If a group you are scraping becomes private or is otherwise inaccessible, the Actor will return a diagnostic record indicating that no posts could be retrieved for that specific group. The run will not fail, and any other groups in the same run will continue to be processed normally. This helps you distinguish between an inactive group from an inaccessible one.

    How often is the data updated, and how fresh are the results?

    Every run of this Actor fetches Facebook's live group feed at the moment of execution. There is no caching or intentional delay, so the results always reflect what is currently visible on Facebook. The Actor was last updated on 2026-09-17.

    What is the maximum number of posts I can scrape per group in one run?

    You can scrape up to 500 posts per group in a single run. This limit is controlled by the "Max posts per group" input field. If you need more than 500 posts from a single group, you would need to run the Actor multiple times, potentially using different sort orders or monitoring mode to collect a broader range of content.

    Does enabling 'Enrich with group info' affect the cost?

    Enabling 'Enrich with group info' adds additional fields to each post record, but it does not change the number of results generated. Since billing is based on the number of results, activating this option will not directly increase your cost per result. However, it does increase the data volume, which might impact storage or processing costs on the Apify platform if you are on a very high-volume plan.

    Where to go next

    When you are ready to run it, open Facebook Group Posts Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Facebook Group Posts Scraper Actor page for the current input schema, pricing tier, and run history.

    It is part of the Facebook Scraping Suite, which puts every related Actor on one page with its price and run history.

    If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

    Other Actors we maintain for related data:

    • Facebook Posts Scraper: Scrape public Facebook Page and Profile posts and Reels - text, reactions, comments, shares, photos, videos with captions, and hashtag/link entities.
    • Facebook Comments Scraper: Scrape public comments from Facebook posts, Watch videos, and photo stories.
    • Facebook Ads Library Scraper: Scrape ads from Facebook Ad Library without cookies or authentication.
    • Facebook Ads Scraper Pro: Extract Facebook ads data from the Ad Library.
    • Facebook Reviews Scraper: Scrape public Facebook business page reviews by URL, business name search, or Page ID.
    • Facebook Pages Scraper: Discover Facebook pages through search engines and extract structured page data including IDs, names, categories, addresses, follower counts, phone numbers, emails, websites, business hours, ratings, and media.
    • Facebook Events Scraper: Scrape public Facebook event data without cookies or authentication.
    • Facebook Followers & Following Scraper: Scrape Facebook Page and Profile followers, following, and friends previews plus aggregate follower/following counts, with structured location/workplace/school parsing.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-30.

    • Actor last updated by its maintainers on 2026-09-17.

    • Run outcome figures cover the 30 day public window ending 2026-09-30.

    • Facebook Group Posts Scraper on Apify

    Featured actors

    Facebook Group Posts Scraper

    Scrape public Facebook group posts without login or cookies. Get post text, media, reactions breakdown, comments, reshares, and optional group metadata.

    Run on Apify ↗