Facebook Comments Scraper · No Login · $0.2/1k
Pricing
from $0.20 / 1,000 comments
Facebook Comments Scraper · No Login · $0.2/1k
Facebook comments scraper: export comments and replies of any public post to Excel, CSV or JSON. Text, author, date, reactions and reply links; no login or result cap. $0.20/1k on Business or $0.30/1k on Free; platform usage included, no start fee or filter surcharge.
Pricing
from $0.20 / 1,000 comments
Rating
0.0
(0)
Developer
Alfalfa
Maintained by CommunityActor stats
0
Bookmarked
18
Total users
5
Monthly active users
5 days ago
Last modified
Categories
Share
Facebook Comments Scraper (No Login)
Scrape comments and replies from public Facebook posts: text, author, date, reactions, reply counts and the whole reply thread with parent links. No Facebook account, login or cookies needed. Same output fields as the official Facebook Comments Scraper at $0.30 per 1,000 comments, with no start fee and no surcharge for date filters; a thousand comments in about a minute.
Works with every public post URL Facebook uses: /posts/, /photo/?fbid=, /permalink.php, /videos/, /reel/, /watch/?v=. Group posts need a login and are not supported.
What you can do with Facebook comment data
- Sentiment and brand monitoring: pull the comments under your own or a competitor's posts every day and track how people react to a launch, a campaign or a crisis.
- Audience research: find the questions, objections and requests customers write under product posts.
- Lead generation: people who comment "price?", "where can I buy this?" or "DM me" are warm leads; the comment text, name and profile ID come in one row.
- Giveaway and contest picks: export every comment under a contest post to CSV and pick winners or check entries.
- Moderation and research: collect discussions under news posts for content analysis, journalism or academic studies.
- Thread reconstruction: each reply carries
replyToCommentId,parentCommentandparentReply, so a full conversation tree can be rebuilt without guessing.
What data do you get
| Field | Example |
|---|---|
text, date, likesCount, commentsCount | comment text, 2021-08-15T19:56:39.000Z, "92" (all reactions), number of replies |
reactions | { "like": 65, "love": 25, "care": 2, "haha": 0, "wow": 0, "sad": 0, "angry": 0 }, the count of every reaction type |
profileName, profileId, profileUrl, profilePicture, author | who wrote it (profile URL when Facebook shows it publicly) |
commentId, id, feedbackId, commentUrl | comment IDs and direct link |
threadingDepth, replyToCommentId, parentComment, parentReply | 0 for comments, 1 and 2 for replies, plus the parent comment and parent reply |
attachments | photos, GIFs and videos attached to the comment |
facebookUrl, facebookId, postTitle, postDescription, pageAdLibrary, inputUrl | the post the comment belongs to |
How to scrape Facebook comments
- Paste one or more post URLs into Facebook post URLs.
- Set Max comments per post, choose the Comments mode (All, Newest or Most relevant) and switch on Include replies if you want the threads.
- Click Start. Comments stream into the dataset as they are found; export as JSON, CSV, Excel or XML, or read them through the API.
Input
| Field | Type | Description |
|---|---|---|
startUrls | array of { "url": ... } | Post URLs (same format as the official Actor, plain strings work too). |
resultsLimit | integer | Max top-level comments per post. Replies come on top of it. Empty = everything Facebook shows to a logged-out visitor. |
includeNestedComments | boolean | Also return replies (up to two levels), each as its own record. |
viewOption | RANKED_UNFILTERED / RECENT_ACTIVITY / RANKED_THREADED | All (default), Newest, Most relevant. |
onlyCommentsNewerThan | string | YYYY-MM-DD, ISO date-time, or relative (1 day, 2 weeks, 3 months). With Newest the run stops early; otherwise older comments are skipped for free. |
maxConcurrency | integer | Posts scraped in parallel (default 5). |
proxyConfiguration | object | Residential proxies by default, included in the price. Optionally pick a country or use your own proxy servers. |
Example:
{"startUrls": [{ "url": "https://www.facebook.com/humansofnewyork/posts/pfbid0BbKbkisExKGSKuhee9a7i86RwRuMKFC8NSkKStB7CsM3uXJuAAfZLrkcJMXxhH4Yl" }],"resultsLimit": 200,"includeNestedComments": true,"viewOption": "RECENT_ACTIVITY","onlyCommentsNewerThan": "30 days"}
Output
One record per comment. likesCount is the total of all reactions (a string, as in the official Actor); reactions breaks it down into the seven reaction types as Facebook shows them, with 0 for a type nobody used. likesCount can be rounded (for example 1.2K); the sum of reactions is the exact count. reactions is null when Facebook does not expose the breakdown. A top-level comment:
{"facebookUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid02EuurTwosHG9NqVFYaREi7CsT2ZwXQQwosy324tBEndNMzzPzj3g1topHMAbRCUz4l","commentUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid02EuurTwosHG9NqVFYaREi7CsT2ZwXQQwosy324tBEndNMzzPzj3g1topHMAbRCUz4l?comment_id=3000854580150022","commentId": "3000854580150022","id": "Y29tbWVudDo2Mzc1MjE5MzQyNTUyMTEyXzMwMDA4NTQ1ODAxNTAwMjI=","feedbackId": "ZmVlZGJhY2s6NjM3NTIxOTM0MjU1MjExMl8zMDAwODU0NTgwMTUwMDIy","date": "2021-08-15T19:58:31.000Z","text": "I'm struck by the goal you \"announced\" to the principal the first time you walked into the school. You've modeled resilience and lifelong learning, and admitting that it was ok to not know everything to these kids, as well as healthy risk taking. \n\nAnd I can't wait to hear the conclusion on Neveah and her mom and the amazing things they've accomplished! ","attachments": [],"author": {"id": "pfbid0LiAr9wu1KXhDrSfp77CyuFXFVuwgNCsFn7SuEqqnTXbweeB3149645PZmThD9KGCl","name": "Aimee J Bednar","url": null,"__typename": "User","gender": "FEMALE"},"profileUrl": null,"profileId": "pfbid0LiAr9wu1KXhDrSfp77CyuFXFVuwgNCsFn7SuEqqnTXbweeB3149645PZmThD9KGCl","profileName": "Aimee J Bednar","name": "Aimee J Bednar","profilePicture": "https://scontent.fvlc4-1.fna.fbcdn.net/v/t39.30808-1/7382177...","likesCount": "60","reactions": { "like": 52, "love": 7, "care": 1, "haha": 0, "wow": 0, "sad": 0, "angry": 0 },"commentsCount": 1,"threadingDepth": 0,"replyToCommentId": null,"parentComment": null,"parentReply": null,"facebookId": "6375219342552112","postTitle": "(2/3) “I knew nothing about gardening. But I knew how to google, so I looked up some easy stuff to plant. Turns out it’s...","postDescription": "(2/3) “I knew nothing about gardening. But I knew how to google, so I looked up some easy stuff to plant. Turns out it’s...","pageAdLibrary": {"is_business_page_active": false,"id": "102099916530784"},"inputUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid0BbKbkisExKGSKuhee9a7i86RwRuMKFC8NSkKStB7CsM3uXJuAAfZLrkcJMXxhH4Yl"}
A reply (with Include replies on):
{"facebookUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid02EuurTwosHG9NqVFYaREi7CsT2ZwXQQwosy324tBEndNMzzPzj3g1topHMAbRCUz4l","commentUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid02EuurTwosHG9NqVFYaREi7CsT2ZwXQQwosy324tBEndNMzzPzj3g1topHMAbRCUz4l?comment_id=560487351810151","commentId": "560487351810151","id": "Y29tbWVudDo2Mzc1MjE5MzQyNTUyMTEyXzU2MDQ4NzM1MTgxMDE1MQ==","feedbackId": "ZmVlZGJhY2s6NjM3NTIxOTM0MjU1MjExMl81NjA0ODczNTE4MTAxNTE=","date": "2021-08-16T13:39:20.000Z","text": "Aimee J Bednar Yes. The curiosity & humility that are part of this story are SO important, especially when they’re modeled for kids. ","attachments": [],"author": {"id": "pfbid0sfoZfStXQvqUocL9kuQJiz74oZkMonCXQreMDLPneWDkx2FuhhSiF3gR1fJn8bUtl","name": "Gabrielle Halko","url": null,"__typename": "User","gender": "FEMALE"},"profileUrl": null,"profileId": "pfbid0sfoZfStXQvqUocL9kuQJiz74oZkMonCXQreMDLPneWDkx2FuhhSiF3gR1fJn8bUtl","profileName": "Gabrielle Halko","name": "Gabrielle Halko","profilePicture": "https://scontent.fnce2-1.fna.fbcdn.net/v/t39.30808-1/6546181...","likesCount": "1","reactions": { "like": 1, "love": 0, "care": 0, "haha": 0, "wow": 0, "sad": 0, "angry": 0 },"commentsCount": 0,"threadingDepth": 1,"replyToCommentId": "3000854580150022","parentComment": {"commentId": "3000854580150022","id": "Y29tbWVudDo2Mzc1MjE5MzQyNTUyMTEyXzMwMDA4NTQ1ODAxNTAwMjI=","profileId": "pfbid0LiAr9wu1KXhDrSfp77CyuFXFVuwgNCsFn7SuEqqnTXbweeB3149645PZmThD9KGCl","profileName": "Aimee J Bednar","date": "2021-08-15T19:58:31.000Z","text": "I'm struck by the goal you \"announced\" to the principal the first time you walked into the school. You've modeled resilience and lifelong learning, and admitting that it was ok to not know everything to these kids, as well as healthy risk taking. \n\nAnd I can't wait to hear the conclusion on Neveah and her mom and the amazing things they've accomplished! "},"parentReply": null,"facebookId": "6375219342552112","postTitle": "(2/3) “I knew nothing about gardening. But I knew how to google, so I looked up some easy stuff to plant. Turns out it’s...","postDescription": "(2/3) “I knew nothing about gardening. But I knew how to google, so I looked up some easy stuff to plant. Turns out it’s...","pageAdLibrary": {"is_business_page_active": false,"id": "102099916530784"},"inputUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid0BbKbkisExKGSKuhee9a7i86RwRuMKFC8NSkKStB7CsM3uXJuAAfZLrkcJMXxhH4Yl"}
Pricing
$0.30 per 1,000 comments ($0.0003 per comment or reply), no start fee, no surcharge for date filters, platform usage and residential proxies included. You pay only for records written to the dataset. Set the maximum budget per run in the Actor settings; the scraper stops when it is reached and never overshoots the number you typed.
Final price. The per-comment price is everything you pay: platform usage is included, there is no start fee and no per-run minimum. Some listings on the Store show a lower number and add platform usage on top; here the number on the listing is the number on your bill.
| Monthly spend | Comments |
|---|---|
| $5, which is what the free plan includes | about 16,700 |
| $49 | about 163,300 |
| $499 | about 1,663,300 |
For comparison, the official Facebook Comments Scraper charges $2.50 per 1,000 comments on the free plan, less on higher plans, plus $1 per run and an extra fee per comment when a date filter is used.
Switching from the official Facebook Comments Scraper
- Replace the Actor ID in your integration and keep your input (
startUrls,resultsLimit,includeNestedComments,viewOption,onlyCommentsNewerThan). - Output field names are the same: every field of the official dataset schema is present with the same type. Replies are separate records with
threadingDepth,replyToCommentId,parentCommentandparentReply, as with the official Include comment replies option. On top of the official fields you getreactions(the breakdown by reaction type),facebookId,pageAdLibraryandinputUrl. resultsLimitcounts top-level comments per post; replies come on top, as in the official Actor.
Limitations
- Only comments Facebook shows to a logged-out visitor are returned. Facebook hides some comments ("filtered" replies, comments from restricted profiles), so the count can be lower than the number shown on the post itself.
profileUrlisnullwhen Facebook does not publish the commenter's profile link to logged-out visitors;profileIdis always there.- Group posts, private profiles and posts limited to friends are not supported.
- This Actor is not affiliated with, endorsed by or connected to Meta Platforms, Inc. or Facebook.
FAQ
Can I scrape Facebook comments without logging in?
Yes. The scraper reads what any visitor without an account can see. No cookies, no session, no risk to your own account.
Why do I get fewer comments than the post shows?
The number on the post counts every comment ever written, including ones Facebook hides from logged-out visitors, replies that were filtered as low quality, and comments from restricted profiles. Choose All mode to get the most.
Why do I get more records than my limit?
resultsLimit applies to top-level comments per post. With Include replies on, replies are added on top, each as its own record, the same way the official Actor counts.
Do I get the reaction types, not just a like count?
Yes. Every comment and reply has likesCount (all reactions, as in the official Actor) and reactions with the count of each type: like, love, care, haha, wow, sad and angry, exactly as Facebook shows them under the comment. likesCount can be rounded (for example 1.2K); the sum of reactions is the exact count. Useful for sentiment: a comment with many haha or angry reactions reads differently from one with love reactions.
Can I get only new comments every day?
Set onlyCommentsNewerThan to 1 day, choose Newest mode and schedule the run daily. The run stops as soon as older comments appear, so you pay only for the new ones. No filter surcharge.
How fast is it?
About 10 comments per second per post, posts run in parallel. A thousand comments take around a minute.
Is scraping Facebook comments legal?
The Actor collects publicly available data only. Comments contain personal data (names, profile IDs), so you are responsible for using them in line with GDPR, CCPA and other laws that apply to you. Scrape only what you have a legitimate reason to process.
Use it from n8n, Make, Zapier or an AI agent
- n8n, Make, Zapier: add the Apify node, pick
alfalfa/facebook-comments-scraperas the Actor, paste the same JSON input as above and read the run's dataset in the next step. A scheduled workflow that scrapes Facebook comments every morning and appends them to Google Sheets or a database takes three nodes. See the Apify integrations docs. - AI agents and MCP (Claude, Cursor, VS Code, ChatGPT): connect the Apify MCP server with this Actor as a tool,
https://mcp.apify.com/?tools=alfalfa/facebook-comments-scraper, and the agent can call it by describing what it wants in plain language. The input and output schemas are published, so the agent knows every field. See Apify MCP docs. - API and scheduling: every run is available through the Apify API and the Apify CLI; schedules, webhooks and dataset exports (JSON, CSV, Excel, XML) are built into the platform.
Examples you can run in one click
Each example opens with its input already filled in and a sample of the results, so you can change any field and run it right away.
- Comments from many Facebook posts
- Comments of a Facebook post
- Facebook comment sentiment analysis
- Facebook comment threads with replies
- Facebook comments to Google Sheets
- Facebook giveaway entries export
- Facebook giveaway winner picker
- Facebook reel and video comments
- New Facebook comments since a date
Need something the examples do not cover? Every field is on the Input tab, and any example input works unchanged in an API call or an n8n, Make or Zapier workflow.
Was this useful?
If this Actor saved you time, a short review on its Store page helps others find it and tells me what to improve next. Missing a field or stuck on an input? Open an Issue on the Actor page; issues are answered within a day.
More Facebook scrapers by Alfalfa
| Actor | What it does | Price |
|---|---|---|
| Facebook Posts Scraper | posts of any public page or profile with reactions, comment counts, media, optional video transcripts | $2 per 1,000 posts |
| Facebook Pages Scraper | page details with email, phone, address, followers, rating, About text | from $2.50 per 1,000 pages |
| Facebook Events Scraper | events by search, city, page or URL, with organizer email | $3 per 1,000 events |
| Facebook Ads Library Scraper | ads from the Meta Ad Library by keyword, advertiser page or URL, with creatives, dates, platforms and EU reach | $0.45 per 1,000 ads |
| Google Ads Transparency Scraper | every Google ad of an advertiser or website domain with format, dates, regions, previews and YouTube video ids | $0.30 per 1,000 ads |
| Google Maps Scraper | places from any search and location with address, phone, website, rating and hours, plus reviews and website emails | $0.07 per 1,000 places |
| Amazon Product Scraper | products from searches, Best Sellers lists and ASINs in 22 Amazon stores with price, rating, BSR and details | $0.28 per 1,000 products |
| LinkedIn Jobs Scraper | public LinkedIn job postings by keyword, location, date, company or URL, with full description, salary, applicants, seniority and poster | $0.30 per 1,000 jobs |
| LinkedIn Company Scraper | LinkedIn company pages from URLs, names, websites or a filtered keyword search with size, employee count, followers, offices and recent posts | $1 per 1,000 companies |
| YouTube Scraper | videos of a search, channel, playlist or URL list with views, likes, date, tags, plus transcripts and comments; no API key | $0.50 per 1,000 rows |
Same field names as the official Actors, no login, no start fees, one flat price each.
Not working?
Open an issue in the Issues tab of this Actor with the post URL and the run ID. Facebook changes its pages often; fixes usually ship within a day.