Facebook Comment Scraper avatar

Facebook Comment Scraper

Pricing

Pay per usage

Go to Apify Store
Facebook Comment Scraper

Facebook Comment Scraper

Free to use : Extract comments & threaded replies from any Facebook reel or video ๐Ÿ’ฌ. Supports bulk URLs, 3 sort modes, full pagination, and structured output with reactions, author data & more ๐Ÿ“Š.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

FlowExtract API

FlowExtract API

Maintained by Community

Actor stats

2

Bookmarked

3

Total users

2

Monthly active users

2 hours ago

Last modified

Share

๐Ÿ’ฌ Facebook Comment Scraper Extract Comments from Reels, Videos & Posts

Facebook Comment Scraper extracts all comments including threaded replies from any Facebook reel or video, using your authenticated browser session. It handles full pagination, nested reply threads, and bulk URLs in a single run, delivering clean, structured data ready for analysis, moderation, or sentiment research.

Perfect for social media researchers, community managers, and marketers who need Facebook comment data without manually scrolling through thousands of posts.


Why scrape Facebook comments?

Facebook is one of the largest social networks in the world, with billions of public posts generating millions of comments daily. Whether you're tracking brand sentiment, researching audience reactions, or building moderation tools, comment data is invaluable but Facebook provides no official API for bulk comment extraction.

Here are the most common use cases:

  • Sentiment analysis: Feed comments into NLP models to measure positive, negative, or neutral reactions to a product, campaign, or event.
  • Content moderation: Identify toxic, spammy, or policy-violating comments at scale across multiple posts.
  • Competitive research: Monitor comments on competitor posts to understand audience pain points and opportunities.
  • Community management: Export all comments from your brand's reels or videos for reporting and response tracking.
  • Academic research: Study public discourse, language patterns, or viral content dynamics on Facebook.
  • Lead generation: Identify engaged users in niche communities who comment on relevant posts.

What data can Facebook Comment Scraper extract?

๐Ÿ’ฌ Comment Data

  • Comment ID Facebook's unique identifier for the comment
  • Comment text full body of the comment
  • Created at ISO 8601 timestamp of when the comment was posted
  • Comment URL direct link to the comment on Facebook
  • Parent ID ID of the parent comment (for replies; null for top-level comments)
  • Total reactions combined reaction count across all types
  • Reactions breakdown per-type counts (Like, Love, Haha, Wow, Sad, Angry, Care)
  • Reply count number of direct replies to the comment
  • Attachments photos or media attached to the comment (type, URL, image URL, dimensions, accessibility caption)
  • Badges special badges on the commenter's profile (e.g. "Rising fan")

๐Ÿ‘ค Author Data

  • Author ID Facebook user ID
  • Author name display name of the commenter
  • Author URL link to the commenter's Facebook profile
  • Profile picture URL thumbnail image of the author
  • Gender author's gender as reported by Facebook
  • Is verified whether the author's account is verified
  • Work info author's listed workplace (when available)

๐Ÿ”— Source Metadata

  • Source URL full URL of the scraped post or reel
  • Source ID numeric Facebook content ID
  • Source type reel, video

๐ŸŒ Language Metadata

  • Source language detected language of the comment (e.g. en_XX)
  • Translation type whether the text is original or translated

๐Ÿ“… Run Metadata

  • Scraped at ISO 8601 timestamp of when the record was collected

โš™๏ธ How to use Facebook Comment Scraper

Input Options

urls (Array required)

List of Facebook URLs or numeric IDs to scrape comments from.

Input valueWhat it extracts
https://www.facebook.com/reel/123456789All comments from that reel
https://www.facebook.com/watch/?v=123456789All comments from that video
123456789Same as above raw numeric ID works
{
"urls": [
"https://www.facebook.com/reel/813381761171953",
"https://www.facebook.com/watch/?v=123456789",
"987654321"
]
}

โš ๏ธ Share links (https://www.facebook.com/share/p/...) are not supported. Open the post directly in your browser and copy the URL from the address bar instead.


commentsIntentToken (String optional)

Controls how Facebook orders the comments returned. Mirrors the sort options available in the Facebook UI.

ValueLabelDescription
RANKED_FILTERED_INTENT_V1โญ Most Relevant (default)Friends' comments and most-engaged comments first
REVERSE_CHRONOLOGICAL_UNFILTERED_INTENT_V1๐Ÿ•’ NewestAll comments sorted chronologically, newest first
RANKED_UNFILTERED_CHRONOLOGICAL_REPLIES_INTENT_V1๐Ÿ’ฌ All CommentsAll comments including lower-engagement ones, with replies interleaved
{
"urls": ["https://www.facebook.com/reel/813381761171953"],
"commentsIntentToken": "REVERSE_CHRONOLOGICAL_UNFILTERED_INTENT_V1"
}

๐Ÿ’ก Tip: Use Most Relevant for engagement and sentiment analysis. Use Newest for real-time monitoring of fresh reactions. Use All Comments for complete data collection with no filtering.


fetchReplies (Boolean optional)

Controls whether the actor fetches threaded replies for each comment.

  • Default: false only top-level comments are collected
  • true fetches direct replies and nested sub-replies for every comment that has them
{
"urls": ["https://www.facebook.com/reel/813381761171953"],
"fetchReplies": true
}

โš ๏ธ Note: Enabling this will significantly increase the number of requests made and the time taken to complete the run, especially on posts with many comments and deep reply threads. Each reply is returned as a separate dataset item with a parent_id field referencing its parent comment.


maxResults (Integer optional)

  • Default: 10
  • Set to 0 for no limit fetches all available comments
  • Counts top-level comments and replies combined
  • Useful for sampling large posts with thousands of comments without incurring unnecessary costs. The actor stops fetching new pages as soon as this limit is reached.
{
"urls": ["https://www.facebook.com/reel/813381761171953"],
"maxResults": 500
}

customCookies (Array required for most posts)

A JSON array of browser cookie objects exported from your Facebook session. Without valid cookies, Facebook will either block requests or return no comments for non-public content.

{
"customCookies": [
{ "name": "c_user", "value": "100073931291073" },
{ "name": "xs", "value": "29%3AKUx..." },
{ "name": "datr", "value": "abc123xyz" }
]
}

๐Ÿ” Authentication

Facebook requires an authenticated session to load comments reliably.

MethodHow to get itWhen to use
Cookie JSON array (recommended)Export from browser extensionAlways most reliable
  1. Install the Copy Cookies Chrome extension
  2. Log in to facebook.com in your browser
  3. Click the extension icon โ†’ Copy as JSON
  4. Paste the result into the customCookies field

Alternatively, use Cookie-Editor: open it on facebook.com, click Export โ†’ Export as JSON, and paste the result.

โš ๏ธ Security: Your cookies provide full access to your Facebook account. They are treated as secrets and are never logged, stored, or shared. Use a dedicated Facebook account for scraping if you are concerned about account security.

โš ๏ธ Session expiry: Facebook cookies expire or rotate regularly. If you start seeing empty results or errors, re-export your cookies and update the input.


๐Ÿ“Š Sample Output

Each dataset item represents a single comment or reply. Replies are distinguished by a non-null parent_id field.

{
"source": {
"id": "4364570517119853",
"url": "https://www.facebook.com/reel/4364570517119853",
"type": "reel"
},
"comment": {
"id": "892296663703975",
"parent_id": null,
"author": {
"id": "100004647828036",
"name": "Sadeer Ayad",
"profile_picture": "https://scontent.ftlm1-1.fna.fbcdn.net/v/...",
"url": "https://www.facebook.com/sadeer.ayad.553481",
"gender": "FEMALE",
"is_verified": null,
"work_info": null
},
"text": "Don't you dare to move when you hear the music ๐Ÿ˜‚",
"created_at": "2026-03-11T00:57:18.000Z",
"created_time_unix": 1773190638,
"url": "https://www.facebook.com/reel/4364570517119853/?comment_id=892296663703975",
"total_reactions": 1600,
"reactions": {
"Like": 1105,
"Haha": 553,
"Love": 4,
"Sad": 1
},
"like_count": 1600,
"reply_count": 4,
"attachments": [],
"badges": [],
"source_language": "en_XX",
"translation_type": "ORIGINAL"
},
"scraped_at": "2026-03-14T10:42:52.848Z"
}

Reply example

Replies have a non-null parent_id pointing to their parent comment:

{
"source": {
"id": "4364570517119853",
"url": "https://www.facebook.com/reel/4364570517119853",
"type": "reel"
},
"comment": {
"id": "942208778497508",
"parent_id": "892296663703975",
"author": {
"id": "61580896441183",
"name": "James W. Mohan",
"profile_picture": "https://scontent.ftlm1-1.fna.fbcdn.net/v/...",
"url": "https://www.facebook.com/profile.php?id=61580896441183",
"gender": "MALE",
"is_verified": null,
"work_info": null
},
"text": "Sadeer Ayad or breathe",
"created_at": "2026-03-11T01:11:04.000Z",
"created_time_unix": 1773191464,
"url": "https://www.facebook.com/reel/4364570517119853/?comment_id=892296663703975&reply_comment_id=942208778497508",
"total_reactions": 51,
"reactions": {
"Haha": 41,
"Like": 10
},
"like_count": 51,
"reply_count": 3,
"source_language": "en_XX",
"translation_type": "ORIGINAL"
},
"scraped_at": "2026-03-14T10:42:57.056Z"
}

โ“ Frequently Asked Questions

Do I need a Facebook account to use this actor? Yes. Facebook heavily restricts unauthenticated access to comments. You'll need to export cookies from a logged-in browser session and paste them into the customCookies field.

How many comments can I extract for free? Apify gives new users $5 in free credit. Based on typical compute usage, you can expect to extract roughly 5,000โ€“50,000 comments within that budget, depending on post size and number of URLs.

Can I scrape multiple URLs in one run? Yes add as many URLs as you need to the urls array. The actor processes them sequentially, saving state after each URL so a crash or migration doesn't lose progress.

Does the actor fetch replies to comments? Yes, but only when fetchReplies is set to true. By default it collects top-level comments only. When enabled, each reply is returned as a separate dataset item with a parent_id field referencing its parent comment. Be aware this increases run time and credit usage significantly on posts with heavy reply threads.

What happens if the run crashes mid-way? The actor saves its progress after every successfully scraped URL. If it's interrupted (crash, migration, abort), it resumes from the next unprocessed URL when re-run no duplicate data.

Why am I getting empty results? The most common cause is expired or missing cookies. Re-export your cookies from the browser and update the customCookies input. Also check that your Facebook account is still logged in and not temporarily restricted.

What is the difference between the sort modes? Most Relevant (default) mirrors Facebook's default feed it prioritises comments from your friends and highly-reacted comments. Newest returns all comments in reverse chronological order with no filtering, ideal for monitoring fresh reactions. All Comments includes lower-engagement comments that Facebook normally filters out, giving the most complete dataset.

What URL formats are supported? Reels (/reel/), videos (/watch/?v=), and raw numeric IDs. Share links (/share/p/) are not supported.

Can I use this for private groups? Only if your authenticated account is a member of that group. The actor uses your browser session, so it can access anything your account can see.


๐Ÿ”„ Resumability

The actor saves state after every successfully processed URL. If it crashes, gets migrated, or is manually aborted, it resumes exactly where it left off on the next run no duplicate pushes, no lost progress.

TriggerWhat gets saved
After each URL completesprocessedIds list + currentIndex
Apify migrating eventFull state snapshot
End of runState cleared (clean slate for next run)

๐Ÿšซ Error Handling

SituationWhat you see in logsWhat to do
Expired or missing cookiesNo valid session requests may be rate-limitedRe-export cookies from your browser and update input
Unsupported URL formatCannot extract Facebook ID from input: ...Use a direct post/reel URL, not a share link
Facebook returns empty responseCould not parse comments from initial responseCheck cookies are valid; try again in a few minutes
Post has 0 commentsTotal comments reported by Facebook: 0Expected no data to collect

๐Ÿค Support & Resources

Get Help

Social Media


๐ŸŽฌ Video & Media

๐Ÿ  Real Estate

๐Ÿ› ๏ธ Developer Tools

๐Ÿ“ฑ Social Media


  • Public Data Access: Only processes publicly available Facebook data
  • Rate Limiting: Respects Facebook's service limits and terms of use
  • Data Protection: No storage of personal information or unauthorized data collection
  • Commercial Use: Suitable for business intelligence and research applications