Facebook Comments Scraper avatar

Facebook Comments Scraper

Pricing

from $0.50 / 1,000 comments

Go to Apify Store
Facebook Comments Scraper

Facebook Comments Scraper

Scrape comments (and nested replies) from Facebook posts, photos and reels. Pushes one dataset item per fetched comments batch.

Pricing

from $0.50 / 1,000 comments

Rating

0.0

(0)

Developer

Harpoon

Harpoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share

Extract every comment (and nested reply) from Facebook posts, photos, reels, and public-group posts — author, text, timestamp, reaction and reply counts, and a direct link — as clean, ready-to-use rows.

  • Whole threads, not just the top. Follow replies as deep as you need and rebuild the conversation from a flat dataset.
  • Public groups included. Drop in a group post link and pull its comments the same way as a profile post.
  • Public data only. No login, cookies, or account required.
  • Built to finish. Large threads are capped predictably, and every result carries the IDs you need to join it back to the post.
  • One row per comment. Export to JSON, CSV, Excel, or XML straight from the dataset.

Built for brand monitoring, sentiment and UGC research, community moderation, and enriching AI/LLM datasets.

What can Facebook Comments Scraper do?

Input modeWhat it does
targets (post / photo / reel URLs)Pull every comment on the given posts.
Public-group post URLsPull every comment on a post inside a public group.
Feedback IDsTarget a post by its Facebook feedback ID instead of a URL.

You control how many comments come back (max_comments) and how deep replies are followed (max_depth), and you can choose the comment order (most relevant or newest).

Every run also gives you export to JSON / CSV / Excel / XML, API and webhook access, scheduled runs, and MCP access for AI agents.

What data can you get?

One row per comment (or reply), with these fields:

📦 Group🔎 Fields
Commentid, legacy_fbid, text, created_time (unix), url
Threaddepth (0 = top level), parent_id (the comment this replies to), reply_count
Engagementreaction_count
Authorauthor.id, author.name, author.url, author.profile_picture
Status / metafeedback_id, is_hidden_by_viewer, is_disabled, expansion_token

How to use Facebook Comments Scraper

  1. Create a free Apify account.
  2. Open Facebook Comments Scraper in Apify Console.
  3. Paste one or more post, photo, reel, or public-group post URLs into Posts / Photos / Reels / Group posts.
  4. Optionally set Max comments per target and Max reply depth.
  5. Click Start and wait for the run to finish.
  6. Download from Storage ▸ Dataset as JSON, CSV, Excel, or XML.

Input

There are two ways to identify a post — use either (they can be mixed in the same list):

  • URL — paste the post, photo, reel, or public-group post URL, e.g. https://www.facebook.com/DwayneJohnson/posts/pfbid02... or https://www.facebook.com/groups/dataminers/permalink/1282751752133803/.
  • Feedback ID — a base64 ID, a numeric object ID, or feedback:<id>. This is useful when you already store Facebook object IDs.

Comments

  • max_comments — hard cap on total comments per target, including replies (default 100). The final page is trimmed so the total never exceeds it.
  • max_depth0 = top-level comments only (default); 1 = include replies; 2 = replies of replies, and so on.
  • intent — comment order: Most relevant or Newest.

Request options

  • language — locale used when requesting the comments.

Example input

{
"targets": [
"https://www.facebook.com/DwayneJohnson/posts/pfbid02YXFDKmNP56NTXHr2ubG4sxZH69A4L9t3z7EtToNFkEBjHcqs4TJxwAKepcSWBhjvl",
"https://www.facebook.com/groups/dataminers/permalink/1282751752133803/"
],
"max_comments": 100,
"max_depth": 1,
"intent": "RANKED_UNFILTERED_CHRONOLOGICAL_REPLIES_INTENT_V1",
"language": "en"
}

See the Input tab above for every field and its default.

Output

Results land in the default dataset under Storage ▸ Dataset. A built-in Overview view (author, comment, depth, created, reactions, replies, URL) makes the data readable immediately. Download as JSON, CSV, Excel, or XML.

Sample comment

{
"id": "Y29tbWVudDoxNjQ0NzMxMjAwMzQ0Njg0XzE2MDM1NDc2NjEzNjUyODI=",
"legacy_fbid": "1603547661365282",
"depth": 0,
"parent_id": "",
"text": "I sincerely can't wait to see how you show this disease...",
"author": { "id": "1519015377", "name": "Paul Jurado", "profile_picture": "https://..." },
"created_time": 1788952909,
"feedback_id": "ZmVlZGJhY2s6MTY0NDczMTIwMDM0NDY4NF8xNjAzNTQ3NjYxMzY1Mjgy",
"reaction_count": 1,
"reply_count": 0,
"url": "https://www.facebook.com/DwayneJohnson/posts/...?comment_id=1603547661365282"
}

Replies look the same, with depth >= 1 and parent_id set to the parent comment's id. Because parent_id and depth are on every row, you can rebuild the full thread from the flat dataset, or filter to top-level comments only with depth = 0.

Use cases

  1. Brand and campaign monitoring — collect comments on your posts, filter to depth = 0, and track reaction_count over time.
  2. Sentiment and topic analysis — export comment text for keyword, sentiment, or topic modeling.
  3. Community moderation — pull replies (max_depth: 1+) and surface the most-reacted comments for review.
  4. Competitor research — compare comment volume and engagement across pages.
  5. AI / LLM datasets — use the structured fields (author, text, timestamps, reactions) to build conversation datasets.

How much does it cost?

Facebook Comments Scraper is priced per result (pay-per-result) at $1.00 per 1,000 comments ($0.001 each), plus a small Apify platform fee. Starting a run is free.

  • 1,000 comments ≈ $1.00 in actor cost.
  • 5,000 comments ≈ $5.00.
  • Filtered-out or failed items are not charged.

See the Pricing tab for plan discounts.

FAQ

Do I need a Facebook account, login, or cookies? No. The actor reads publicly available comments — no login, cookies, or account required.

Can it scrape comments on public group posts? Yes. Paste the group post link (for example https://www.facebook.com/groups/<group>/permalink/<id>/) or its numeric id as a target.

Can it get private or restricted comments? No. It only returns comments that are visible publicly. Content behind a login wall or a private group isn't accessible.

How many comments can I get? max_comments (default 100) caps the total per target, including replies. You can raise it, but very large threads take longer.

Can it get replies, or only top-level comments? Both. Set max_depth to 1 to include replies, 2 for replies of replies, and so on. 0 returns top-level comments only.

Why do the numbers differ from what I see when logged in? Public views can show fewer comments or different reaction counts than a logged-in session. The dataset reflects what is publicly available at run time.

Is it legal to extract this data? Results may contain personal data, which is protected by GDPR and similar laws. Only scrape personal data when you have a legitimate reason, and follow the terms of the data source and your local laws.

Can I use it from the API, SDKs, or an AI agent? Yes — use the API tab for JavaScript, Python, REST, and CLI examples, or connect the Apify MCP server to call it from Claude, ChatGPT, or another MCP client.

Something isn't working. Check that each target is a valid post/photo/reel URL or feedback ID. If it still fails, open an issue in the Issues tab with your input JSON.

Notes and limitations

  • Public content only — private posts, private/restricted groups, and login-walled comments are not available. Public-group posts must be reachable without logging in.
  • max_comments is a hard cap that includes replies; the final page is trimmed so the total is never exceeded.
  • Deep threads can be large — raising max_depth increases runtime and cost quickly.
  • Personal data — comments contain names and, sometimes, other personal data. Handle the results accordingly.
  • Counts can differ from the logged-in view — hidden, deleted, or viewer-specific comments won't appear.

Integrations

Call the actor from your own code or an AI agent — see the API tab for JavaScript, Python, REST, and CLI. MCP clients can add the actor via the Apify MCP server. Schedule runs or trigger them with webhooks from Apify Console.

Support

Found a bug or have feedback? Open an issue in the Issues tab, or email islam.tazerout@outlook.com.