Facebook Comments & Conversation Scraper
Pricing
$3.00 / 1,000 comments
Facebook Comments & Conversation Scraper
Extract public Facebook comments and replies from posts, photos, videos, and reels. Get clean datasets with comment text, author details, timestamps, engagement counts, and thread fields for social listening, research, reporting, and AI workflows.
Pricing
$3.00 / 1,000 comments
Rating
0.0
(0)
Developer
Muhammad Qaseem Iqbal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
21 hours ago
Last modified
Categories
Share
Extract comments from public Facebook posts, photos, videos, and reels. Paste one or more Facebook URLs, choose how many results you want, and get a clean dataset with comment text, author details, timestamps, post information, and conversation fields.
This Actor is useful for social listening, campaign monitoring, content research, community analysis, reporting, and AI workflows that need Facebook comment data in a structured format.
What This Actor Does
- Scrapes publicly visible Facebook comments from post-like URLs
- Includes replies and nested replies when they are visible and can be loaded
- Lets you choose comment sorting: most relevant, newest, or all/unfiltered
- Filters comments by date
- Saves author name, profile ID, profile URL, and profile picture when visible
- Saves comment IDs, parent comment IDs, root comment IDs, and thread depth
- Removes duplicate comments caused by retries or repeated page loading
- Exports results to Apify Dataset for JSON, CSV, Excel, XML, HTML, and API use
- Saves a run summary with counts, warnings, skipped URLs, and errors
- Can also save a nested thread tree for conversation analysis
What Data Can You Extract?
| Data | Description |
|---|---|
| Post URL | Original input URL and normalized Facebook URL |
| Post details | Post ID, canonical post URL, and visible post text/title where available |
| Comment text | The visible text of each comment or reply |
| Comment links | Comment ID and direct comment URL where Facebook provides them |
| Author details | Public author name, profile ID, profile URL, and profile picture where visible |
| Dates | Normalized comment timestamp when available |
| Engagement counts | Visible likes, reactions, and reply counts where available |
| Thread structure | Parent comment ID, root comment ID, and depth in the conversation |
| Diagnostics | Sort order, extraction method, status, scrape time, and dedupe key |
Some fields can be empty if Facebook does not show that information to the running browser session.
How To Use It
- Open the Actor on Apify.
- Paste one or more public Facebook post, photo, video, or reel URLs.
- Set the maximum number of results you want.
- Choose whether to include replies.
- Choose the comment sorting option.
- Add a date filter if you only need comments from a specific time period.
- Click "Start".
- Download the results from the Dataset tab, or use them through the Apify API.
Input
The only required input is at least one Facebook URL.
| Setting | What It Means |
|---|---|
startUrls | Facebook post, photo, video, or reel URLs to scrape |
maxItems | Maximum total number of comments and replies to save across the whole run |
maxCommentsPerPost | Maximum number of top-level comments to save per Facebook URL |
includeReplies | Turn reply scraping on or off |
maxRepliesPerComment | Maximum number of replies to save for each top-level comment |
maxThreadDepth | 0 for comments only, 1 for replies, 2 for nested replies |
sortOrder | MOST_RELEVANT, RECENT_ACTIVITY, or ALL_COMMENTS |
onlyCommentsNewerThan | Optional lower date filter, such as 2026-06-01 or 7 days |
onlyCommentsOlderThan | Optional upper date filter, such as 2026-06-10 or 2 months |
outputMode | Save only flat records, or also save nested thread trees |
proxyConfiguration | Proxy settings for more stable Facebook scraping |
Example input:
{"startUrls": [{"url": "https://www.facebook.com/somepage/posts/example"}],"maxItems": 1000,"maxCommentsPerPost": 500,"includeReplies": true,"maxRepliesPerComment": 50,"maxThreadDepth": 2,"sortOrder": "RECENT_ACTIVITY","onlyCommentsNewerThan": "7 days","outputMode": "FLAT_AND_THREADS"}
Date filters accept:
- Calendar dates, for example
2026-06-01 - ISO timestamps, for example
2026-06-01T12:00:00Z - Relative values, for example
1 day,2 months,3 years, or1 hour
When onlyCommentsNewerThan is set, the Actor automatically uses newest-first loading so recent comments are found earlier.
Output
Each Dataset item represents one comment or reply.
{"recordType": "comment","inputUrl": "https://www.facebook.com/somepage/posts/example","facebookUrl": "https://www.facebook.com/somepage/posts/example","canonicalPostUrl": "https://www.facebook.com/somepage/posts/example","postId": "example","postTitle": "Example public post text","commentId": "883254471472572","parentCommentId": null,"rootCommentId": "883254471472572","commentUrl": "https://www.facebook.com/somepage/posts/example?comment_id=883254471472572","text": "Example public comment text","date": "2026-06-05T04:06:45.000Z","timestampAccuracy": "exact","profileName": "Example User","profileId": "100000000000000","profileUrl": "https://www.facebook.com/example.user","profilePicture": "https://...","likesCount": 0,"reactionsCount": 0,"repliesCount": 0,"threadingDepth": 0,"sortOrder": "RECENT_ACTIVITY","postStatus": "OK","extractionMethod": "embedded-json","dedupeKey": "facebook:example:883254471472572","scrapedAt": "2026-06-12T12:00:00.000Z","runId": "..."}
The Actor also saves helpful files to the default key-value store:
| File | What It Contains |
|---|---|
run-summary.json | Saved counts, skipped counts, per-post statuses, warnings, and errors |
threads.json | Optional nested conversation tree when outputMode is FLAT_AND_THREADS |
| Debug snapshots | Optional HTML and screenshot files for failed pages when enabled |
Comments, Replies, And Threads
Facebook comments can have replies, and replies can sometimes have another level of nested replies. This Actor stores every visible item as a separate Dataset record so the data is easy to export.
To rebuild conversations later, use:
commentIdfor the current comment or replyparentCommentIdfor the direct parent reply/commentrootCommentIdfor the top-level comment that started the threadthreadingDepthto understand whether the item is a comment, reply, or nested reply
Set outputMode to FLAT_AND_THREADS if you also want a ready-made nested threads.json file.
How Many Comments Can It Scrape?
The number of results depends on what Facebook shows publicly for your URL. A small post may only return a few comments. A large public post can return many more, up to the limits you set.
Results can be lower than the number shown on Facebook because Facebook counters may include private comments, hidden comments, replies, deleted comments, or comments only visible to logged-in users or certain regions. The best way to estimate coverage is to run a small test with your actual URLs.
Popular Use Cases
- Track audience feedback on public Facebook posts
- Monitor brand, product, or campaign conversations
- Collect comments for sentiment analysis
- Research public reactions to news, creators, events, or communities
- Build dashboards in BI tools or spreadsheets
- Send public comment data into AI and LLM workflows
- Audit high-engagement posts and identify common questions or complaints
Export And Integrations
You can download results from Apify as JSON, JSONL, CSV, Excel, XML, or HTML. You can also connect the Actor to:
- Apify API
- Apify SDKs for JavaScript and Python
- Webhooks
- Schedules and saved tasks
- Make, Zapier, Google Sheets, Slack, Airbyte, and other Apify integrations
- AI workflows through Apify MCP or API-based automation
For long-running jobs, webhooks are usually better than waiting for a run synchronously. Use run-finished events to process the Dataset after the scrape completes.
Tips For Better Results
- Use direct public Facebook post, photo, video, or reel URLs.
- Start with a small
maxItemsvalue to test the URL before running a large scrape. - Enable
includeRepliesif you want conversation context, not just top-level comments. - Use
RECENT_ACTIVITYwhen recent comments matter most. - Use date filters when you only need a specific time period.
- Use reliable proxies. Apify Proxy with residential proxies is recommended for Facebook.
- Lower concurrency if you see access restrictions or unstable runs.
- Check
run-summary.jsonafter each run to understand skipped URLs, warnings, and failures.
Public Data And Responsible Use
This Actor only extracts information visible to the running browser session. It cannot access private Facebook comments, hidden comments, closed groups, private messages, account-only data, or content behind permissions the session does not have.
You are responsible for how you use scraped data. Make sure your use case follows applicable laws, platform terms, privacy rules, and any internal compliance requirements.
FAQ
Can it scrape private Facebook comments?
No. It only works with comments that are publicly visible to the browser session.
Can it scrape replies?
Yes, when replies are visible and Facebook allows them to be loaded. Enable includeReplies and set maxThreadDepth to 1 or 2.
Why did I get fewer comments than Facebook shows?
Facebook's visible counter may include private, hidden, deleted, restricted, or reply comments. The Actor can only save comments it can actually see and load.
Why are some fields empty?
Facebook does not always show every field. For example, profile pictures, profile IDs, timestamps, likes, or reply counts may be missing or hidden for some comments.
Can I filter comments by date?
Yes. Use onlyCommentsNewerThan, onlyCommentsOlderThan, or both. You can enter dates such as 2026-06-01 or relative values such as 7 days.
Which sorting options are available?
The Actor supports MOST_RELEVANT, RECENT_ACTIVITY, and ALL_COMMENTS. Date filtering automatically switches to newest-first loading where needed.
Do I need proxies?
Proxies are strongly recommended for Facebook scraping. Apify Proxy with residential proxies usually gives more stable results than datacenter IPs.
Can I use the results in another app?
Yes. Results are saved to an Apify Dataset, so you can download them, call them through the API, connect them to webhooks, or send them to automation tools.
Troubleshooting
| Problem | Likely Cause | What To Try |
|---|---|---|
| No comments returned | The post is private, unavailable, restricted, or has no visible public comments | Test with a clearly public Facebook page post |
| Fewer comments than expected | Facebook counters include comments the Actor cannot see | Enable replies and check run-summary.json |
| Replies are missing | Replies are hidden, not loaded, or disabled by input settings | Enable includeReplies and increase maxThreadDepth |
| Run is slow | Large post, many replies, high limits, or proxy instability | Lower limits, reduce concurrency, or improve proxy quality |
| Access restricted | Facebook limited the browser session, region, or IP | Use high-quality residential proxies and lower concurrency |
| Date filter misses records | Facebook did not load older/newer records, or timestamps are not visible | Use ISO dates and run with newest-first sorting |
