Facebook Comments Scraper πŸ”₯$0.25/1K: Reel & Post Comments avatar

Facebook Comments Scraper πŸ”₯$0.25/1K: Reel & Post Comments

Pricing

from $0.24 / 1,000 results

Go to Apify Store
Facebook Comments Scraper πŸ”₯$0.25/1K: Reel & Post Comments

Facebook Comments Scraper πŸ”₯$0.25/1K: Reel & Post Comments

πŸ”₯ Save money: only $0.25 per 1,000 comments. ⚑ High-speed scraping for Reel & Post Comments. Get replies, shared links and images from videos and groups too.

Pricing

from $0.24 / 1,000 results

Rating

4.9

(7)

Developer

TheDoor

TheDoor

Maintained by Community

Actor stats

8

Bookmarked

1.4K

Total users

278

Monthly active users

0.97 hours

Issues response

2 hours ago

Last modified

Features

Limited permissions

Share

Facebook Comment Scraper

Facebook comment scraper for any public post link: Page posts, group posts, reels, videos, photos and share links. Paste the links, click Start, and get one row per comment with the author, the text, the exact time, the reactions and the reply count.

Before you start: it reads post links, not whole Pages or groups. A bare link like facebook.com/natgeo is not accepted, because a Page has many posts and no single comment thread. Private groups, friends-only posts and other restricted posts are skipped.

Also included: the count for each reaction type, replies to replies, only new comments on repeat runs so you don't pay again for comments you already got, and a live status line on the run page.

πŸ”— Works withPage posts, group posts, reels, videos, watch links, photos and share links (/share/p/, /share/v/, /share/r/)
πŸ’― Links per runPaste 100+ links of any type into one run, with no fixed cap. Up to 20 are read at the same time. A link that fails is skipped and the others keep going.
πŸ“„ OutputOne row per comment, plus one row per reply if you turn replies on
πŸ“Š DataText, time, author, reactions by type, reply count, photos, shared links
♾️ How manyAll the comments Facebook shows a logged-out visitor: set Target comments to -1
⚑ SpeedUp to 1,300 comments a minute across many links: 2,000 comments from 50 posts in about 90 seconds. 10,000+ comments from big posts in about 15 minutes. Measured at 2 GB memory.
πŸ”“ Account neededNone. Public content only.
πŸ’° Price$0.25 per 1,000 results ($0.24 on Scale and Business plans). A reply counts as one result. Apify's free $5 a month covers about 20,000 results.

What you get: seven comments from a run on 6 November 2026, showing the main columns, with names and profile links blurred.

Facebook comments as rows in the Output tab

Using an AI agent?
Actorthedoor/facebook-comment-scraper
The one required fieldpostUrls, a list of links
Cap the billSet maxTotalChargeUsd on the run, for example 0.50
Why a link gave nothingRead the run's status message: it counts links with no comments and links that failed
MCP linkhttps://mcp.apify.com/?tools=fetch-actor-details,thedoor/facebook-comment-scraper

What you can do with it

  • Read what customers say under your own or a competitor's posts.
  • Find people who ask about a product or service. Each comment comes with the author's name and profile link, so your sales team knows who to reach out to.
  • Follow a post on a schedule and pay only for the new comments each time.
  • Feed comments into a spreadsheet, a sentiment tool or an AI workflow.

How to use it

  1. Paste your links into Post URLs, one per line.

  2. Set Target comments, the number of comments per link. Start with 50 to see the data.

  3. Turn on Include Replies if you want the answers under each comment.

  4. Click Start. The status line at the top of the run shows each step:

    Status lineWhat is happening
    Checking links: 3 of 10Each link is checked: is it public, and does it have comments?
    Reading comments: 4 of 9 links done, 1,250 results so farComments are being collected. Results appear in the Output tab as they arrive.
    Done: 2,400 comments and 310 replies from 8 of 10 links. 1 link had no comments. 1 link could not be read fully...The run is finished, with what it got and why any link gave nothing.
  5. Download the results as JSON, CSV or Excel.

Need the post links first? Run the Facebook Page Scraper or the Facebook Group Post Scraper, then paste their post URLs here.

How much does it cost?

You pay $0.25 for every 1,000 results on the Free and Starter plans, and $0.24 on Scale and Business. Each comment is one result, and each reply is one result. The run start fee is $0.00005 per GB of memory, which is almost nothing.

You collectCost
100 comments from each of 10 posts (1,000 results)about $0.25
100 comments from each of 10 posts, each with up to 10 replies (at most 11,000 results)at most $2.75
20,000 results, the amount Apify's free $5 a month coversabout $5

Three ways to keep the bill under control:

  • Target comments: the top-level comments per link. -1 reads the whole post, so check how many comments the post has first.
  • Max replies per comment: replies are extra results on top of Target comments. The most one link can give is targetComments x (1 + maxReplies).
  • Maximum cost per run: set it in the run options (maxTotalChargeUsd in the API). The run stops there, and the results it already collected stay in your dataset.

πŸ’΅ Follow a post and pay only for new comments

If you check the same post more than once, turn on Only new comments for the next run (onlyNewComments). Without it, every run reads the post again and charges you again for comments you already have. With it, the Actor remembers the newest comment you got from each post, and each run returns only what came after it.

Turn on Only new comments for the next run in the input form

  • First run: comments as usual, newest first.
  • Every next run: only comments posted since your last run. Reading stops at the first comment you already have, so the run also ends sooner.
  • No new comments: 0 results and no result fee, only the tiny run start fee. The status line says so.
  • A run fails partway: your place is kept, so the next run still picks up those comments.
One post with 2,000 comments, checked daily for 30 days, 50 new comments a dayResultsCost
Normal runs, the whole post every day60,000 or more$15 or more
With onlyNewComments3,450about $0.86

When it is worth using:

  • Your own ad or launch post: answer new questions and complaints while the post is running.
  • A competitor's announcement: collect new reactions day by day without paying for the old ones.
  • A viral or news post: follow the conversation as it grows.
  • A giveaway or support thread: pick up each new entry or question since the last check.
  • Sentiment over time: add only the new results to your sheet, with no duplicates to clean.

To set it up:

  1. Paste the post link and turn on Only new comments for the next run.
  2. Set Target comments to -1.
  3. Click Save as a new task, then add a schedule to it. Hourly suits a viral post; daily or weekly suits a quiet one.

Good to know:

  • Turn it on from the first run. Runs with the option off do not save your place.
  • A low Target comments loses nothing. If a post gets 500 new comments and Target comments is 100, each run returns the next 100 from where the last one stopped. Comments newer than those wait until the backlog is done. Use -1 to get everything new in one run.
  • New replies under old comments are not returned. You get replies under new comments only.
  • Your place is saved per Apify account and per post.
  • Your place is saved when a post finishes. If the timeout or your cost limit stops a run in the middle of a post, the next run reads that post from the last saved place, so those comments come back and are charged again.
  • It works together with commentsNewerThan. A comment must pass both.

What you give it

{
"postUrls": [
"https://www.facebook.com/CNN/posts/1510975140138256",
"https://www.facebook.com/reel/787423957218284"
],
"targetComments": 50,
"includeReplies": true,
"maxReplies": 10
}
FieldDefaultWhat it does
postUrlsrequiredFacebook links, always as a list, even for one link.
targetComments100Top-level comments per link, 1 or more. -1 gets them all. 0 stops the run with an input error. Replies are not counted here.
includeRepliesoffAlso get replies, including replies to replies.
maxReplies100Replies per top-level comment, all levels counted. -1 gets them all, 0 gets none.
orderingModeALLALL is Facebook's order with every comment. MOST_RELEVANT is the same without comments Facebook hides as likely spam. NEWEST is newest first.
includeReactionsonAdd the reaction total and the count for each type.
commentsNewerThanemptyOnly comments from a recent period, counted back from when the run starts: 30 minutes, 24 hours, 7 days. Leave it empty for all dates. The number must be above 0: 0 days stops the run with an input error. For today's comments use 24 hours.
onlyNewCommentsoffOnly comments posted since your last run on that post. See the section above.

With commentsNewerThan or onlyNewComments, comments come newest first and orderingMode is ignored.

Links it accepts: /posts/, /videos/, /reel/, /watch/?v=, /photo/?fbid=, photo.php, permalink.php, /groups/.../posts/, /groups/.../permalink/, and share links (/share/p/, /share/v/, /share/r/).

What you get back

One row per comment or reply. This is a real row from a run on 6 November 2026, with the author's details hidden:

{
"post_url": "https://www.facebook.com/reel/787423957218284",
"id": "1229229358963577",
"comment_url": "https://www.facebook.com/reel/787423957218284?comment_id=1229229358963577",
"text": "And i have to use paper straw...",
"timestamp": 1760102853,
"comment_time": "2025-10-10T13:27:33.000Z",
"author_name": "...",
"author_id": "...",
"author_profile_picture": "...",
"author_profile_url": "...",
"image_url": null,
"media": [],
"shared_link": null,
"shared_link_title": null,
"shared_link_source": null,
"shared_post": null,
"reactions_count": 295,
"reaction_types": { "like": 290, "haha": 5 },
"replies_count": 10,
"is_reply": false,
"depth": 0
}

What each field means:

FieldIn plain words
post_urlThe link you pasted, so you can see which post the comment came from.
idThe comment's unique number. Use it to spot the same comment across runs.
comment_urlA direct link that opens this comment on Facebook.
textWhat the person wrote.
comment_timeWhen it was written, as a readable date and time in UTC.
timestampThe same time as a number, handy for sorting in code.
author_nameThe name of the person or Page that wrote it.
author_idThat author's Facebook id.
author_profile_urlA link to the author's profile. null when Facebook gives no public link.
author_profile_pictureA link to the author's profile picture.
reactions_countAll reactions on the comment added up.
reaction_typesThe same reactions split by type: like, love, haha, wow, care, sad, angry. Only types with a count appear; {} means no reactions.
replies_countHow many direct replies the comment has.
is_replyfalse for a comment, true for a reply.
depthHow deep it sits: 0 is a comment, 1 a reply, 2 a reply to a reply. Facebook shows at most 2 levels, so a reply to a level-2 reply is also 2.
replyto_comment_idOn replies only: the id of the comment or reply it directly answers (its direct parent).
image_urlThe photo attached to the comment, if any.
mediaEverything attached to the comment: photos, videos or stickers. [] means nothing is attached.
shared_linkA link the person shared in the comment.
shared_link_title, shared_link_sourceThat link's title and its website, for example youtube.com.
shared_postA Facebook post shared in the comment, with its link and text.

reactions_count and reaction_types are left out when includeReactions is off. Other fields with no value come back as null.

The Output tab also has ready views: top-level comments only, replies only, comments with images, and comments with links.

When you get few or no results

The status line tells you how each link ended, and the Log tab lists the links under COMPLETED, NO_COMMENTS and FAILED. Links that give nothing add no rows to your dataset and cost nothing.

What you seeWhat it meansWhat to do
Input error: Comments newer than cannot be 0...0 days or 0 weeks would keep only comments from this very second. The run stops before reading, with no result fee.Use a time such as 24 hours or 7 days, or leave the field empty for all dates.
Input error: Target comments must be 1 or more...0 or a number below -1 asks for no comments. The run stops before reading.Use 1 or more, or -1 for all comments.
Input error: Add at least one Facebook post link...The list of links is empty.Paste at least one link.
1 link had no commentsThe post is readable and has no comments.Nothing to fix.
1 link had no comments in your time frameNothing was posted in the period you set, or the post has no comments.Widen Comments newer than, or leave it empty.
1 link had no new commentsWith onlyNewComments, nothing new since your last run.Nothing to fix.
1 link could not be read fullyThe post is private, deleted or blocked, or the link is not a post. Results read before the problem are kept.Open the link in a private browser window. If you can see the post there, run it again.
Fewer comments than the post showsFacebook's counter includes deleted comments and comments hidden from logged-out visitors.Nothing to fix.
The run stopped earlyIt reached the run timeout or your maximum cost per run.Raise the limit and run again.

What it does not do

  • Posts, not Pages. A link to a whole Page or group is not accepted. Get the post links first with the scrapers above.
  • Public content only. Private groups, friends-only posts and other restricted posts are skipped, and the other links still run.
  • It does not remove duplicates between links. Two links to the same post, such as a /posts/ link and a /watch/ link, are read and charged twice.
  • Reply counts can be higher than the replies you get. replies_count comes from Facebook and can include replies hidden from logged-out visitors.
  • A run has a time limit. The default is 1 hour with 4 GB of memory. A very big post may need a longer timeout: at 400 to 700 comments a minute, one hour reads about 24,000 to 42,000 comments. If the timeout is reached, the results collected so far stay in your dataset.
  • No email or phone numbers. Commenters' contact details are not returned.
  • It is not an official Facebook tool. theDoor is independent and is not affiliated with or endorsed by Facebook or Meta.

Questions people ask

Why did I get fewer comments than the post shows? Facebook's counter also counts deleted comments and comments hidden from visitors who are not logged in. You get the comments Facebook shows to a logged-out visitor. See When you get few or no results.

Why did I get more rows than Target comments? Replies are extra rows on top of targetComments. Lower maxReplies or turn replies off.

Can I get every comment? Set targetComments to -1 to get all the comments Facebook shows a logged-out visitor.

Can I call it from code, Make, n8n or an AI agent? Yes. The API tab has Python, JavaScript and HTTP examples. In Python:

# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("thedoor/facebook-comment-scraper").call(
run_input={
"postUrls": ["https://www.facebook.com/CNN/posts/1510975140138256"],
"targetComments": 50,
},
max_total_charge_usd=0.50, # the most this run may spend
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["comment_time"], row.get("reactions_count"), (row.get("text") or "")[:80])

Is it legal? It reads only public comments. Comments and author names are personal data under GDPR and similar laws, so collect them only for a clear reason and keep only what you need.

Support

Open the Issues tab and paste the link you used and the run ID.

⌂ 捒网址