Skip to content

Facebook Comments Scraper

Try for free

Extract public comments from Facebook posts, reels, photos, and videos. Returns comment text, timestamps, likes, and basic profile details.

💬 Facebook Comments Scraper

Extract public comments from any Facebook post, photo, video, or reel and get clean rows with the comment text, timestamp, like count, and the commenter's public name and profile link. No login, no cookies, no browser to manage. Pay only for the comments you save: $1.40 per 1,000 comments.

✨ Why use Facebook Comments Scraper?

  • 🔓 No login or cookies — reads what a logged-out visitor can see, so there is no account to risk.
  • 💸 Cheap and simple — one price per comment, replies included. 1,000 comments cost $1.40 in events.
  • 🧵 Replies on demand — switch on nested comments and get replies and replies-to-replies as their own rows.
  • 🕒 Date cutoff — keep only comments newer than a date or a relative value such as 2 weeks.
  • 🔀 Sort control — most relevant, newest, or all comments.
  • 📦 Export anywhere — download JSON, CSV, Excel, or XML, or pull results through the API.

🎯 Use cases

  • 📣 Campaign feedback — collect what people say under a brand or ad post.
  • 😊 Sentiment analysis — feed comment text into your own models or dashboards.
  • 🎥 Reel and video reactions — read the conversation under a video.
  • 🔎 Social listening — track new comments on competitor posts with a date filter on a schedule.
  • 📊 Research — export a thread into a spreadsheet for reports.

🚀 How to use

  1. Paste one or more public Facebook post, photo, video, or reel URLs into Facebook URLs.
  2. Set Maximum comments (top-level comments per URL).
  3. Optionally choose a comments mode, a date cutoff, and whether to include replies.
  4. Click Start and wait for the run to finish.
  5. Open the Output tab and export JSON, CSV, or Excel.

📥 Input

FieldKeyWhat it does
Facebook URLsstartUrlsPublic post, photo, video, or reel URLs. One comment thread is read per URL.
Maximum commentsresultsLimitTop-level comments to save per URL. Default 10.
Comments modeviewOptionRANKED_THREADED (most relevant), RECENT_ACTIVITY (newest), RANKED_UNFILTERED (all comments, default).
Comments newer thanonlyCommentsNewerThanYYYY-MM-DD, an ISO timestamp, or a relative value like 2 weeks. UTC. Forces newest-first.
Include comment repliesincludeNestedCommentsSave replies and replies-to-replies as extra rows, up to three levels. Default off.
Proxy configurationproxyConfigurationDatacenter by default. Choose residential if Facebook refuses the datacenter pool.
{
  "startUrls": [
    {
      "url": "https://www.facebook.com/humansofnewyork/posts/pfbid0BbKbkisExKGSKuhee9a7i86RwRuMKFC8NSkKStB7CsM3uXJuAAfZLrkcJMXxhH4Yl"
    }
  ],
  "resultsLimit": 10,
  "viewOption": "RANKED_UNFILTERED",
  "includeNestedComments": false,
  "proxyConfiguration": {
    "useScrapelyProxy": true,
    "scrapelyProxyGroups": ["DATACENTER"]
  }
}

📤 Output

Each comment is one dataset row.

FieldDescription
textComment text.
dateWhen the comment was posted (UTC, ISO format).
likesCountLike count reported for the comment.
profileName, profileUrl, profileId, profilePicturePublic details of the commenter.
commentId, commentUrlComment id and direct link.
facebookUrl, inputUrl, facebookId, postTitleThe post the comment belongs to.
threadingDepth0 for a top-level comment, 1 for a reply, 2 for a reply to a reply.
authorThe raw author object Facebook returns.

Reply rows also carry replyToCommentId, parentComment, and parentReply.

{
  "facebookUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid0BbKbkisExKGSKuhee9a7i86RwRuMKFC8NSkKStB7CsM3uXJuAAfZLrkcJMXxhH4Yl",
  "commentUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid0BHNjuF1BS5YXFqxRboHf6eEDcufYmoqGuFkSDmc1iNHeeZMNCvwBKrxEVKSV7KDQl?comment_id=544774060005183",
  "commentId": "544774060005183",
  "date": "2021-08-16T14:41:35.000Z",
  "text": "Great post, thanks for sharing.",
  "profileName": "Jane Doe",
  "profileUrl": "https://www.facebook.com/jane.doe.example",
  "likesCount": "0",
  "threadingDepth": 0,
  "facebookId": "6375219342552112",
  "inputUrl": "https://www.facebook.com/humansofnewyork/posts/pfbid0BbKbkisExKGSKuhee9a7i86RwRuMKFC8NSkKStB7CsM3uXJuAAfZLrkcJMXxhH4Yl"
}

(Trimmed. The real row also contains the full post title, the profile picture URL, and the raw author object.)

💰 Pricing

You pay $0.0014 per comment saved, replies included. That is $1.40 per 1,000 comments. A date filter adds $0.0014 per post that is read with that filter. Platform usage (compute and proxy) is billed on top of the events.

Worked example: one post, 10 comments, datacenter proxy, default memory. That is 10 × $0.0014 = $0.014 in events plus about $0.003 of platform usage, around $0.017 in total.

❓ FAQ

Is it legal to scrape Facebook comments?

The actor only reads content that is publicly visible without logging in. You are responsible for using the data in line with privacy law and Facebook's terms, especially for personal data.

Do I need a login or a proxy?

No login or cookies. Datacenter proxy is the default and works for most public posts. Switch to residential only if Facebook refuses the datacenter pool.

Why are there fewer comments than the number shown on the post?

The count on Facebook includes replies and comments that are not public. The actor saves public comments only.

Why did I get more rows than Maximum comments?

The limit caps top-level comments. With replies switched on, replies are saved as additional rows.

Which URLs work?

Public post, photo, reel, and video URLs. A page home URL, a private post, or a non-Facebook link is skipped.

Can I schedule it or use the API?

Yes. Schedule runs from the console, or start them and read the dataset through the API.

⚠️ Limits

  • Public threads only. Nothing is read from private posts.
  • Top-level comments are fetched in pages of 10 (about 1,000 comments a minute). Logged-out Facebook stops listing older comments on very large threads; in our test a post stopped at 2,729 comments, and the run's status message says so when a post has fewer public comments than the limit.
  • Reply depth stops at replies-to-replies.
  • Comments are saved page by page, so if a later page fails or the run is stopped, the comments already saved are kept.
  • Speed: a 10-comment run takes about 8 seconds including startup.
  • Facebook can change its pages at any time, which may cause occasional gaps.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.