Facebook Comments Extractor ๐จ๏ธโก: Data, Details & Analytics
Pricing
from $0.40 / 1,000 results
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
Maintained by CommunityActor stats
7
Bookmarked
446
Total users
65
Monthly active users
3 hours
Issues response
2 days ago
Last modified
Categories
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
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
postUrls | List of URLs | Yes* | - | Facebook post, video, reel, or group URLs |
postUrl | Single URL | Yes* | - | Alternative to postUrls for single URL |
orderingMode | Text | No | "MOST_RELEVANT" | Sort by: "MOST_RELEVANT", "NEWEST", or "ALL" |
targetComments | Number | No | 50 | How many comments to get per URL (use -1 for all) |
includeReplies | Boolean | No | true | When true, include nested replies; when false, return only top-level comments |
includeReactions | Yes/No | No | true | Include 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:
- Pushes the top-level comments immediately with
Actor.pushData. - Fetches and pushes replies for that page.
- 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:
1active session per post URL.10initial warmers per post URL.- At least
7healthy warmers required for a warmer batch. 10additional 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 = Ninitial warmers = N * 10requested total = N * 11actual 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
| Field | Type | Description |
|---|---|---|
post_url | string | Source Facebook URL |
id | string | Unique comment/reply ID |
text | string | Comment text content |
timestamp | integer | Unix timestamp (seconds) |
comment_time | string | ISO 8601 datetime |
author_name | string | Author display name |
author_id | string | Author Facebook ID |
author_profile_picture | string | Author profile picture URL (100% coverage) |
author_profile_url | string|null | Author profile URL (when available) |
image_url | string|null | Attached image URL (~4% of comments) |
shared_link | string|null | Shared external link URL (~7% of comments) |
shared_link_title | string|null | Title of shared link |
shared_link_source | string|null | Source domain (e.g., "youtube.com") |
reactions_count | integer | Total reaction count |
reaction_types | object | Counts by type: like, love, haha, wow, care, sad, and angry |
replies_count | integer | Number of direct replies |
is_reply | boolean | true if this is a reply, false if top-level comment |
replyto_comment_id | string | Parent comment ID (only for replies) |
depth | integer | Nesting 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 } }
Get Comments with Shared Links
Filter: { "shared_link": { "$ne": null } }
Get Specific Depth Level
Filter: { "depth": { "$eq": 1 } }
๐ How to Use
Quick Start (No Coding Required)
- Open the actor in Apify Console
- Paste Facebook URLs - Copy and paste any Facebook post, video, or group URL
- Set options (optional):
- How many comments to get (default: 50, use -1 for all)
- Include replies? (default: yes)
- Sort by newest or most relevant
- Click "Start" and wait for results
- 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 ApifyClientclient = 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
๐ Legal & Privacy
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
targetCommentsto-1to 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