Facebook Comments Extractor ๐Ÿ—จ๏ธโšก: Data, Details & Analytics avatar

Facebook Comments Extractor ๐Ÿ—จ๏ธโšก: Data, Details & Analytics

Pricing

from $0.40 / 1,000 results

Go to Apify Store
Facebook Comments Extractor ๐Ÿ—จ๏ธโšก: Data, Details & Analytics

Facebook Comments Extractor ๐Ÿ—จ๏ธโšก: Data, Details & Analytics

โœจ 0.4 $ / 1000 results BulkScraping get all Videos, Reels, Posts, Groups โ€” and all their comments โ€” in one click. Fast, clean, and effortless. Works with multiple URLs and supports every Facebook link format. Download data in JSON, CSV, Excel for use in apps, spreadsheets, and reports.

Pricing

from $0.40 / 1,000 results

Rating

4.3

(4)

Developer

TheDoor

TheDoor

Maintained by Community

Actor stats

7

Bookmarked

446

Total users

65

Monthly active users

3 hours

Issues response

2 days ago

Last modified

Share

Facebook Comment Scraper

Extract comments, replies, reaction totals and types, author profiles, images, and shared links from any Facebook post, video, reel, or group. Fast, reliable, and easy to use - no technical knowledge required.

โšก Fast & Reliable

Scrapes thousands of comments in minutes with enterprise-grade infrastructure:

  • 1,600+ comments in 2-3 minutes
  • Automatic retry on errors
  • Works with posts, videos, reels, and groups
  • Extracts profile pictures, images, and shared links
  • Returns reaction totals and per-type counts

๐Ÿ“‹ Supported URL Formats

https://www.facebook.com/share/p/{share_id}/ (auto-resolved)
https://www.facebook.com/share/v/{share_id}/ (auto-resolved)
https://www.facebook.com/share/r/{share_id}/ (auto-resolved)
https://www.facebook.com/reel/{reel_id}
https://www.facebook.com/watch/?v={video_id}
https://www.facebook.com/{page}/videos/{video_id}
https://www.facebook.com/groups/{group}/permalink/{post_id}/
https://www.facebook.com/{page}/posts/{post_id}
https://www.facebook.com/{page}/posts/pfbid{...}
https://www.facebook.com/permalink.php?story_fbid={post_id}&id={page_id}
https://www.facebook.com/photo/?fbid={photo_id}

๐Ÿ“ฅ Input Configuration

Simple Input Example

{
"postUrls": [
"https://www.facebook.com/share/p/17UEMxPmxv/",
"https://www.facebook.com/groups/n8n.automation/permalink/25205583905788653/",
"https://www.facebook.com/watch/?v=1510975140138256"
],
"targetComments": 100,
"includeReplies": true
}

Input Options

FieldTypeRequiredDefaultDescription
postUrlsList of URLsYes*-Facebook post, video, reel, or group URLs
postUrlSingle URLYes*-Alternative to postUrls for single URL
orderingModeTextNo"MOST_RELEVANT"Sort by: "MOST_RELEVANT", "NEWEST", or "ALL"
targetCommentsNumberNo50How many comments to get per URL (use -1 for all)
includeRepliesBooleanNotrueWhen true, include nested replies; when false, return only top-level comments
includeReactionsYes/NoNotrueInclude total reactions and per-type counts

orderingMode controls Facebook's comment ordering. MOST_RELEVANT is the default ranked view, NEWEST requests newest-first comments, and ALL requests the unfiltered comment view. targetComments: -1 separately controls whether pagination continues through all comments.

includeReplies controls reply collection. Set it to true to include the complete nested reply tree, or false to return only top-level comments. The Console displays this as a single on/off checkbox.

*Provide either postUrls (multiple URLs) or postUrl (single URL).


Streaming Output

The actor writes dataset records continuously while a post is being scraped. For each comments page it:

  1. Pushes the top-level comments immediately with Actor.pushData.
  2. Fetches and pushes replies for that page.
  3. Releases the page comments, reply trees, feedback IDs, and expansion tokens before requesting the next page.

The dataset can therefore contain partial results while a long-running scrape is still active. targetComments: -1 continues until Facebook reports no next page; replies are additional records and are not included in the top-level comment limit. A network or proxy failure can leave a valid partial dataset, so callers should check the run status and per-record is_reply field.


Session Strategy

Each input post URL owns an isolated session strategy. Sessions assigned to one URL are never used for another URL's page, retry, failover, or reply request.

With dynamic replenishment enabled, the controller uses:

  • 1 active session per post URL.
  • 10 initial warmers per post URL.
  • At least 7 healthy warmers required for a warmer batch.
  • 10 additional warmers at each 1,000-comment checkpoint when more comments remain to be collected.
  • A sticky DataImpulse proxy session for every active or warmer session.

For N input URLs, the requested initial capacity is:

active sessions = N
initial warmers = N * 10
requested total = N * 11
actual total = min(requested total, MAX_SESSION_CAP)

If MAX_SESSION_CAP is lower than the requested capacity, warmers are allocated round-robin across URLs and the run logs the resulting healthy count. For example, six URLs need 66 sessions to receive one active session and ten initial warmers each; a cap of 30 creates 6 active sessions and 24 warmers instead. Raising the cap is required when every URL must retain the full warmer ratio.

For a single URL with a target of 3,500 comments, the controller starts with 1 + 10 sessions and evaluates new batches at 1,000, 2,000, and 3,000 comments. A new batch is accepted only after at least seven of its sessions are healthy. Warmup and retry responses are parsed in place and discarded after the request; raw response bodies are not retained in the session strategy.


๐Ÿ“ค Output Structure

Flat Structure (Current)

Each comment and reply is a separate dataset item with depth tracking:

{
"post_url": "https://www.facebook.com/groups/n8n.automation/permalink/25205583905788653/",
"id": "25206260245721019",
"text": "This is a top-level comment",
"timestamp": 1770810925,
"comment_time": "2026-02-11T10:15:25.000Z",
"author_name": "John Doe",
"author_id": "100001234567890",
"author_profile_picture": "https://scontent.fmpl1-1.fna.fbcdn.net/v/t39.30808-1/123456_789_n.jpg",
"author_profile_url": "https://www.facebook.com/johndoe",
"image_url": "https://scontent.fmpl1-1.fna.fbcdn.net/v/t39.30808-6/123456789_n.jpg",
"shared_link": "https://youtu.be/66u1vHTsI8E?si=iVCcmtHNZP_BvZgu",
"shared_link_title": "How to Build Automation Workflows",
"shared_link_source": "youtube.com",
"reactions_count": 15,
"reaction_types": {
"like": 10,
"love": 3,
"haha": 2
},
"replies_count": 3,
"is_reply": false,
"depth": 0
}
{
"post_url": "https://www.facebook.com/groups/n8n.automation/permalink/25205583905788653/",
"id": "25206398222373888",
"text": "This is a reply to the comment above",
"timestamp": 1770810928,
"comment_time": "2026-02-11T10:15:28.000Z",
"author_name": "Jane Smith",
"author_id": "100009876543210",
"author_profile_picture": "https://scontent.fmpl1-1.fna.fbcdn.net/v/t39.30808-1/987654_321_n.jpg",
"author_profile_url": "https://www.facebook.com/janesmith",
"image_url": null,
"shared_link": null,
"shared_link_title": null,
"shared_link_source": null,
"reactions_count": 2,
"reaction_types": {
"like": 1,
"care": 1
},
"replies_count": 0,
"is_reply": true,
"replyto_comment_id": "25206260245721019",
"depth": 1
}

Output Fields

FieldTypeDescription
post_urlstringSource Facebook URL
idstringUnique comment/reply ID
textstringComment text content
timestampintegerUnix timestamp (seconds)
comment_timestringISO 8601 datetime
author_namestringAuthor display name
author_idstringAuthor Facebook ID
author_profile_picturestringAuthor profile picture URL (100% coverage)
author_profile_urlstring|nullAuthor profile URL (when available)
image_urlstring|nullAttached image URL (~4% of comments)
shared_linkstring|nullShared external link URL (~7% of comments)
shared_link_titlestring|nullTitle of shared link
shared_link_sourcestring|nullSource domain (e.g., "youtube.com")
reactions_countintegerTotal reaction count
reaction_typesobjectCounts by type: like, love, haha, wow, care, sad, and angry
replies_countintegerNumber of direct replies
is_replybooleantrue if this is a reply, false if top-level comment
replyto_comment_idstringParent comment ID (only for replies)
depthintegerNesting level (0 = top-level, 1+ = nested reply)

Reaction Types

When reaction data is available, reaction_types contains the nonzero counts returned by Facebook:

{
"like": 10,
"love": 3,
"haha": 2
}

Supported keys are like, love, haha, wow, care, sad, and angry. Unknown Facebook reaction IDs are preserved as unknown_<reaction_id>.


โœจ What You Get

Complete Comment Data

  • ๐Ÿ“ Comment text and timestamps
  • ๐Ÿ‘ค Author names and profile pictures
  • ๐Ÿ–ผ๏ธ Attached images (when available)
  • ๐Ÿ”— Shared links with titles (YouTube, articles, etc.)
  • โค๏ธ Reaction counts (likes, loves, etc.)
  • ๐Ÿ’ฌ All replies and nested conversations

Easy to Use

  • Just paste Facebook URLs and click "Start"
  • Works with any public post, video, reel, or group
  • Get results in minutes, not hours
  • Download as JSON, CSV, Excel, or HTML
  • No coding or technical skills needed

Reliable & Fast

  • Automatically handles errors and retries
  • Processes multiple URLs at once
  • Extracts thousands of comments quickly
  • Works with all Facebook URL formats

๐Ÿ“Š Data Coverage Examples

From a test scrape of 1,613 comments/replies:

  • Profile Pictures: 1,613 (100%)
  • Shared Links: 105 (~6.5%)
  • Images: 69 (~4.3%)

๐Ÿ” Filtering Output Data

Get Only Top-Level Comments

Filter: { "is_reply": { "$eq": false } }

Get Only Replies

Filter: { "is_reply": { "$eq": true } }

Get Comments with Images

Filter: { "image_url": { "$ne": null } }
Filter: { "shared_link": { "$ne": null } }

Get Specific Depth Level

Filter: { "depth": { "$eq": 1 } }

๐Ÿš€ How to Use

Quick Start (No Coding Required)

  1. Open the actor in Apify Console
  2. Paste Facebook URLs - Copy and paste any Facebook post, video, or group URL
  3. Set options (optional):
    • How many comments to get (default: 50, use -1 for all)
    • Include replies? (default: yes)
    • Sort by newest or most relevant
  4. Click "Start" and wait for results
  5. Download data - Get your results as JSON, CSV, Excel, or HTML

That's it! No technical knowledge needed.

๐Ÿ”Œ For Developers (API Access)

Integrate this scraper into your applications using the Apify API:

JavaScript Example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
postUrls: ['https://www.facebook.com/watch/?v=1510975140138256'],
targetComments: 100,
includeReplies: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} comments and replies`);

Python Example

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('YOUR_ACTOR_ID').call(run_input={
'postUrls': ['https://www.facebook.com/groups/example/permalink/123456/'],
'targetComments': 100
})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
print(f"Scraped {len(items)} comments and replies")

See Apify API documentation for more details.


๐Ÿ’ก Use Cases

  • Market Research: Analyze customer feedback and sentiment
  • Social Listening: Monitor brand mentions and discussions
  • Content Analysis: Study engagement patterns and trends
  • Lead Generation: Find potential customers in relevant groups
  • Competitor Analysis: Track competitor posts and engagement
  • Academic Research: Collect data for social media studies

This scraper only collects publicly available data from Facebook. Users are responsible for:

  • Complying with Facebook's Terms of Service
  • Following data protection laws (GDPR, CCPA, etc.)
  • Using scraped data ethically and legally
  • Respecting user privacy

See Apify's Terms of Service for more information.


๐Ÿ› Troubleshooting

No comments returned?

  • Make sure the post is public (not private or restricted)
  • Try changing sort order from "RANKED" to "NEWEST"
  • Check if the post actually has comments

Missing some comments?

  • Set targetComments to -1 to get all comments
  • The scraper will automatically retry if Facebook limits requests

Need help? Contact support or check the Apify documentation.


๐Ÿ“ž Support

Need help? Have questions? Contact us through the Apify platform or check the documentation.


Keywords: Facebook scraper, comment scraper, social media scraper, Facebook comments, Facebook replies, social listening, sentiment analysis, market research, data extraction, web scraping