Facebook Comments Scraper
Pricing
Pay per event
Facebook Comments Scraper
Collect public Facebook post comments at scale. Export author name, profile link, comment text, timestamp, reaction counts, reply threads, verified badges, attached media, mentions and language. Pass any post URL and pull thousands of comments into clean JSON, CSV or Excel files.
Pricing
Pay per event
Rating
0.0
(0)
Developer
ParseForge
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share

💬 Facebook Comments Scraper
🚀 Pull every public comment from any Facebook post. Export threaded replies, author profiles, reaction counts, timestamps, mentions, attachments and language detection into clean JSON, CSV or Excel.
🕒 Last updated: 2026-04-24 · 📊 22 fields per comment · 💬 Threaded replies · 🌍 Language auto-detect · 🔗 Author profile links
The Facebook Comments Scraper visits any public Facebook post and returns a full tree of comments, replies, reactions and author metadata. Each record carries the comment text, author name, author profile URL and profile picture, timestamp, reaction totals broken down by type, reply threads, attachment type and URL (sticker, GIF, image, video), verified badge, edited flag, mentions tagged in the comment, detected language and the parent comment id for replies.
The scraper paginates through comment sections the same way the native UI does, so popular posts with tens of thousands of comments export end to end. You pass one or more post URLs, set a cap per post, and the dataset lands ready for downstream sentiment analysis, audience research, review mining or lead scoring.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Social media analysts, brand monitoring teams, marketing researchers, product managers, customer support leads, agencies | Sentiment tracking, audience feedback mining, crisis detection, competitor monitoring, influencer identification, UGC analysis |
📋 What the Facebook Comments Scraper does
Five common workflows in a single run:
- 💬 Full comment thread export. Every top-level comment plus nested replies, with parent pointers that rebuild the tree on your side.
- 👥 Author metadata. Name, profile URL, profile picture, and a verified-badge flag where Facebook exposes it.
- ❤️ Reaction intelligence. Total reaction count plus a breakdown across love, laugh, wow, sad, angry and like.
- 🧵 Attachments and mentions. Sticker, GIF, image and video attachments with source URLs, plus a mentions array with @-tagged profile names and ids.
- 🌐 Language detection. Each comment tagged with its detected two-letter language code for multilingual filtering.
💡 Why it matters: Facebook's native export tools strip almost every field you actually need for analysis. Rebuilding a parser yourself means handling GraphQL pagination, reaction breakdown decoding, and reply-depth tracking by hand. This Actor gives you the full comment graph, typed and cleaned, on every run.
⚙️ Input
| Input | Type | Default | Behavior |
|---|---|---|---|
startUrls | array of URLs | required | One or more Facebook post URLs. Accepts the full desktop URL or the /posts/{id} form. |
maxItems | integer | 10 | Cap total comments returned across all posts. Free plan tops out at 10. |
maxCommentsPerPost | integer | 50 | Per-post cap applied before the global maxItems. |
includeReplies | boolean | true | Expand reply threads under each top-level comment. |
proxyConfiguration | object | residential | Override the proxy group if you need a specific country. |
📊 Output
Every comment is returned as a flat JSON record with 22 fields.
🧾 Key fields
| Field | Type | Description |
|---|---|---|
commentId | string | Stable Facebook comment id, usable for dedup and linking. |
text | string | The comment body as plain text. |
authorName | string | Display name of the commenter. |
authorUrl | string | Full profile URL. |
authorPicUrl | string | Profile picture URL. |
timestamp | ISO 8601 | When the comment was posted. |
reactionsCount | integer | Total reactions across all types. |
reactionBreakdown | object | Counts for love, laugh, wow, sad, angry, like. |
repliesCount | integer | Number of replies under this comment. |
replies | array | Flattened reply tree when includeReplies is true. |
attachmentType | string | Sticker, photo, video, gif, link or null. |
attachmentUrl | string | Direct URL to the attached media. |
mentions | array | Tagged profiles, with name and id. |
language | string | Two-letter ISO code like en, es, pt. |
isAuthorVerified | boolean | Blue-badge flag when Facebook exposes it. |
isEdited | boolean | True when the comment has an edit history entry. |
parentCommentId | string | For replies, the id of the comment they reply to. |
postId | string | The parent post id. |
postUrl | string | Canonical URL of the original post. |
scrapedAt | ISO 8601 | Run timestamp. |
📦 Sample record
{"commentId": "1201234567890","text": "Love this campaign, the breathing exercises are great.","authorName": "Baron Walker","authorUrl": "https://www.facebook.com/profile.php?id=100002347523434","authorPicUrl": "https://scontent.fqfd1-1.fna.fbcdn.net/v/t1.6435-1/p200x200/...","timestamp": "2026-04-12T14:22:03.000Z","reactionsCount": 42,"reactionBreakdown": {"love": 28, "laugh": 0, "wow": 4, "sad": 0, "angry": 0, "like": 10},"repliesCount": 8,"replies": [],"attachmentType": null,"attachmentUrl": null,"mentions": [{"name": "Alperen", "id": "100055234090912"}],"language": "en","isAuthorVerified": false,"isEdited": false,"parentCommentId": null,"postId": "1393461115481927","postUrl": "https://www.facebook.com/nike/posts/1393461115481927","scrapedAt": "2026-04-24T12:00:00.000Z"}
✨ Why choose this Actor
- Complete fields. 22 columns covering author identity, reaction breakdown, attachment type, mentions and threading.
- Real threading. Reply trees preserved with parent pointers, not flattened into one stream.
- Language tagging. Native auto-detection saves you a separate NLP pass.
- No tokens, no auth. Pass a post URL and a cap, the Actor handles session setup.
- Ready for BI tools. Output opens directly in Sheets, Looker, BigQuery or Tableau.
🚀 How to use
- Copy a Facebook post URL from your browser.
- Paste it into the
startUrlsfield. - Set
maxItemsto your budget, and toggleincludeRepliesif you want nested threads. - Run the Actor and download JSON, CSV or Excel from the dataset tab.
🎯 Business Use Cases
- 📊 Social Media Analysts - Track sentiment shifts, reaction breakdowns, and reply spikes across brand posts to flag PR risks before they trend
- 💼 Marketing Agencies - Pull commenter profiles, mentions, and verified-badge signals to build influencer outreach lists from real engagement data
- 🔬 Product Managers - Mine product launch posts for praise, complaints, and feature requests clustered by reaction volume and language
- 🛡️ Brand Safety Teams - Monitor coordinated activity, repeated language, and reaction patterns on owned pages to detect harassment or coordinated campaigns
🔌 Automating Facebook Comments Scraper
- Schedule the Actor every hour, day or week from the Apify console.
- Send results to Slack, Google Sheets, BigQuery, Webflow or your own webhook.
- Trigger runs from n8n, Make or Zapier through the official Apify integrations.
- Call the Apify REST API directly from your backend to fire runs on demand.
🌟 Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
🤖 Ask an AI assistant about this scraper
Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:
- 💬 ChatGPT
- 🧠 Claude
- 🔍 Perplexity
- 🅒 Copilot
❓ Frequently Asked Questions
Does this work on private or group posts? No. Only public Facebook posts are supported. The Actor does not sign in and cannot access content gated by login or group membership.
How many comments can I pull from a single post? Paid plans support pulling every public comment a post exposes, up to 1,000,000 per run. Free plan caps at 10 comments per run for preview purposes.
Do I need a Facebook account or cookies? No. The Actor runs anonymously against public endpoints.
Can I filter by language or keyword?
The Actor returns a language field so you can filter downstream. Keyword search is best run on the output JSON since it preserves original casing and mentions.
How fresh is the data? Every run hits Facebook live, so the dataset reflects whatever comments and reactions exist at the moment the run finishes.
Does the output include reactions by type?
Yes. reactionBreakdown has counts for love, laugh, wow, sad, angry and like.
What happens to emoji and non-Latin scripts?
They are preserved as-is in the text field. No transliteration or stripping.
Can I rebuild the reply tree?
Yes. Every reply carries parentCommentId, so a quick groupBy(parentCommentId) reconstructs the thread structure.
🔌 Integrate with any app
The Actor plugs into Make, Zapier, n8n, Slack, LangChain, and 100+ other platforms through Apify's integration library. You can also call the Apify REST API directly from your backend.
🔗 Recommended Actors
| Actor | What it does |
|---|---|
| Facebook Groups Scraper | Pulls member count, privacy, rules and admin info from public Facebook groups. |
| Facebook Marketplace Scraper | Exports listings, prices and sellers from Facebook Marketplace by city and query. |
| Instagram Scraper | Posts, reels and profile data from public Instagram accounts. |
| TikTok Comments Scraper | Same depth of comment extraction for TikTok videos. |
| YouTube Transcript Scraper | Turn YouTube videos into searchable transcripts and metadata. |
💡 Tips
- Start with
maxItems=10on a single URL to confirm field coverage before scaling. - Posts with millions of comments will paginate for a while; run during off-hours and keep
maxCommentsPerPostset so one post doesn't exhaust your budget. - Save the JSON output alongside the
postUrlandscrapedAtfields so you can diff reaction counts over time.
🆘 Support
Open a ticket at tally.so/r/BzdKgA and include the run id. We reply same day on weekdays.
New to Apify? Create a free account with $5 credit and your first run is on the house.
⚠️ Disclaimer
This Actor collects only publicly accessible data. You are responsible for complying with Facebook's Terms of Service, local data-protection laws, and any applicable research or journalism ethics. We recommend reviewing your use case against GDPR, CCPA and Facebook's Platform Policy before archiving or redistributing personal data.