Facebook Post Comments Scraper β Posts & Reels
Pricing
from $1.00 / 1,000 results
Facebook Post Comments Scraper β Posts & Reels
Collect public Facebook post, photo, video, and Reel comments with pagination. Export text, authors, reactions, embedded replies, and parent-post context in one row per returned comment.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
ScrapingMonkey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Collect public comments from selected Facebook posts, photos, videos, and Reels. Facebook Post Comments Scraper returns comment text, authors, reactions, timestamps, available state flags, and embedded replies, with parent-post context attached to every comment row.
Choose how many comment pages to request for each URL. The output stays in one table, with the same flat keys in JSON and ordered lists for returned replies and attachments. No Facebook login or cookies are required.
| At a glance | Details |
|---|---|
| π₯ Input | Public Facebook post, photo, video, or Reel URLs |
| π€ Output | Comments, authors, reactions, embedded replies, and post context |
| π Pagination | 1β100 pages per post; default 1 |
| π Login required | No |
| πΎ Delivery | One table, one row per returned comment |
What the Facebook post comments scraper collects π¬
Each comment includes its ID, URL, text, publication time, author, reaction count and breakdown, and available hidden, pinned, spam, or post-author flags. Attached media is retained when Facebook supplies it.
The Actor includes one level of replies embedded in the returned comment response, with reply text, authors, reactions, and media. It does not separately paginate every reply thread. Parent-post fields preserve the message, author, engagement, and attachments so the discussion stays connected to its source.
How to scrape Facebook post comments π
- Add public post, photo, video, or Reel URLs to
inputList. - Set
pagesPerPostto the number of comment pages to attempt. - Run the Actor and review rows by
statusandpost.url. - Export the dataset or connect it to an analysis workflow.
{"inputList": ["https://www.facebook.com/photo.php?fbid=1100421822647027"],"pagesPerPost": 2}
More pages can return more comments, but the setting does not guarantee an exact count or a complete discussion.
Comment data fields and output π¦
| Field group | Included data |
|---|---|
| Comment | ID, URL, text, timestamps, reactions, reply count, state flags |
| Author | IDs, username, name, profile URL, picture, verification flag |
| Comment media | Ordered URLs, types, dimensions, duration, caption and playback references |
| Embedded replies | Reply text, authors, timestamps, reactions, flags, and media in aligned lists |
| Parent post | Message, author, type, publication time, engagement, reactions, attachments |
Complete illustrative success row. Harbor Workshop and the media URLs below are examples, not a live run.
{"input": "https://www.facebook.com/harborworkshop/posts/123456789012345/","status": "success","id": "123456789099001","url": "https://www.facebook.com/harborworkshop/posts/123456789012345/?comment_id=123456789099001","text": "Can beginners join the woodworking session?","timestamp": 1788260400,"published_at": "2026-09-01T11:00:00Z","reactions_count": 3,"replies_count": 1,"is_author": false,"is_hidden": false,"is_pinned": false,"is_spam": false,"author.id": "100098765432101","author.page_id": "","author.username": "alex.morgan.example","author.name": "Alex Morgan","author.url": "https://www.facebook.com/alex.morgan.example/","author.profile_picture_url": "https://example.com/media/alex-morgan.jpg","author.is_verified": false,"reactions.id": ["1635855486666999"],"reactions.type": ["Like"],"reactions.count": [3],"media.id": [],"media.type": [],"media.url": [],"media.image_url": [],"media.thumbnail_url": [],"media.video_url_hd": [],"media.video_url_sd": [],"media.dash_manifest_url": [],"media.dash_manifest": [],"media.duration_ms": [],"media.width": [],"media.height": [],"media.alt_text": [],"media.captions_url": [],"replies.id": ["123456789099002"],"replies.url": ["https://www.facebook.com/harborworkshop/posts/123456789012345/?comment_id=123456789099001&reply_comment_id=123456789099002"],"replies.text": ["Yes, beginners are welcome. We provide the tools."],"replies.timestamp": [1788264000],"replies.published_at": ["2026-09-01T12:00:00Z"],"replies.reactions_count": [2],"replies.replies_count": [0],"replies.is_author": [true],"replies.is_hidden": [false],"replies.is_pinned": [false],"replies.is_spam": [false],"replies.author.id": ["100012345678901"],"replies.author.page_id": ["100012345678901"],"replies.author.username": ["harborworkshop"],"replies.author.name": ["Harbor Workshop"],"replies.author.url": ["https://www.facebook.com/harborworkshop/"],"replies.author.profile_picture_url": ["https://example.com/media/harbor-workshop.jpg"],"replies.author.is_verified": [false],"replies.reactions.id": [["1635855486666999"]],"replies.reactions.type": [["Like"]],"replies.reactions.count": [[2]],"replies.media.id": [[]],"replies.media.type": [[]],"replies.media.url": [[]],"replies.media.image_url": [[]],"replies.media.thumbnail_url": [[]],"replies.media.video_url_hd": [[]],"replies.media.video_url_sd": [[]],"replies.media.dash_manifest_url": [[]],"replies.media.dash_manifest": [[]],"replies.media.duration_ms": [[]],"replies.media.width": [[]],"replies.media.height": [[]],"replies.media.alt_text": [[]],"replies.media.captions_url": [[]],"replies.replies": [[]],"post.id": "123456789012345","post.story_id": "S:100012345678901:123456789012345","post.url": "https://www.facebook.com/harborworkshop/posts/123456789012345/","post.type": "carousel","post.message": "Join our Saturday open day for a tour and a hands-on woodworking session.","post.timestamp": 1788256800,"post.published_at": "2026-09-01T10:00:00Z","post.reactions_count": 24,"post.comments_count": 7,"post.shares_count": 3,"post.views_count": 0,"post.image_url": "https://example.com/media/workshop-open-day.jpg","post.thumbnail_url": "https://example.com/media/workshop-open-day-thumb.jpg","post.video_url": "","post.feedback_id": "ZmVlZGJhY2s6MTIzNDU2Nzg5MDEyMzQ1","post.is_sponsored": false,"post.is_pinned": true,"post.author.id": "100012345678901","post.author.page_id": "100012345678901","post.author.username": "harborworkshop","post.author.name": "Harbor Workshop","post.author.url": "https://www.facebook.com/harborworkshop/","post.author.profile_picture_url": "https://example.com/media/harbor-workshop.jpg","post.author.is_verified": false,"post.reactions.id": ["1635855486666999","1678524932434102"],"post.reactions.type": ["Like","Love"],"post.reactions.count": [18,6],"post.media.id": ["123456789012346","123456789012347"],"post.media.type": ["photo","video"],"post.media.url": ["https://www.facebook.com/photo/?fbid=123456789012346","https://www.facebook.com/harborworkshop/videos/123456789012347/"],"post.media.image_url": ["https://example.com/media/workshop-open-day.jpg","https://example.com/media/workshop-tour-cover.jpg"],"post.media.thumbnail_url": ["https://example.com/media/workshop-open-day-thumb.jpg","https://example.com/media/workshop-tour-thumb.jpg"],"post.media.video_url_hd": ["","https://example.com/media/workshop-tour-hd.mp4"],"post.media.video_url_sd": ["","https://example.com/media/workshop-tour-sd.mp4"],"post.media.dash_manifest_url": ["",""],"post.media.dash_manifest": ["",""],"post.media.duration_ms": [0,15000],"post.media.width": [1200,1920],"post.media.height": [800,1080],"post.media.alt_text": ["Visitors making a wooden stool at the workshop open day.","A short tour of the workshop."],"post.media.captions_url": ["","https://example.com/media/workshop-tour.vtt"]}
Each returned comment occupies one row. JSON and the table use the same literal dotted keys, including author.name, replies.text, and post.message. Reply lists align by position. Nested lists such as replies.reactions.count keep a separate list for each reply; empty positions remain in place. Embedded replies do not create additional rows.
Optional values may be empty strings, zero, false, or null. A failed row retains input, sets status to failed, and makes all comment-data columns null. Counts and flags can be defaulted when Facebook does not expose a value.
Input requirements and coverage βοΈ
| Parameter | Type | Required | Default | Rules |
|---|---|---|---|---|
inputList | Array of strings | Yes | None | At least one Facebook content URL with an identifiable target |
pagesPerPost | Integer | No | 1 | From 1 to 100 |
Supported forms include /PAGE/posts/ID, /PAGE/videos/ID, /reel/ID, story.php?story_fbid=ID, and photo links with fbid. Post paths using pfbid identifiers are accepted. Use a full content permalink rather than a Page username, bare ID, or shortened share URL without a target identifier.
The initial response counts as page 1. Later requests ask for up to 20 comments each and continue while Facebook supplies a usable next page. Duplicate comment IDs are removed within each post's collection. Facebook controls comment ordering and visibility; there is no separate sorting or full-reply-crawl setting.
Facebook comment scraping use cases π―
Customer question analysis
Group recurring questions by post and retain available author replies for customer-support review.
Campaign response reporting
Compare public comment themes, reactions, and discussion activity across a selected set of campaign links.
Moderation review queues
Send visible text, source URLs, and available state flags to an authorized human review workflow.
Public discussion research
Keep comment and reply text tied to the original post message, author, and publication data in a research dataset.
Pricing and billable comment rows π°
Check the Actor's Pricing tab for the current model and rate. Under dataset-item pricing, each saved success or failed row can be billable. One returned comment is one success row; embedded replies and parent-post fields remain in that row.
Invalid inputs, unavailable posts, an initial response with no comments, or a page that fails after retries can produce a failed row. Retry attempts do not independently add rows. More pages can produce more saved comments.
Facebook post comments API and integrations π
Replace $ACTOR_ID with the ID from the Actor's API tab and $APIFY_TOKEN with your Apify token.
curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"inputList":["https://www.facebook.com/photo.php?fbid=1100421822647027"],"pagesPerPost":2}'
Use Apify schedules for periodic collection, webhooks for completion events, and integrations for Google Sheets, Make, Zapier, cloud storage, or a text-analysis pipeline.
Reliability and limits β οΈ
Temporary failures are retried, and comments already saved remain available if a later page fails. Deleted, hidden, private, restricted, or login-gated discussions may not be retrievable even when the post URL is valid.
Facebook can return fewer comments than its displayed total. Embedded replies are a limited snapshot, not a complete reply history. Media URLs can expire. Missing counts and flags are not verified facts about the full discussion.
Frequently asked questions β
Does it work with Reel comments?
Yes. Public /reel/ URLs are accepted alongside supported post, photo, and video links.
Does it retrieve every reply?
No. It includes one level of embedded replies and does not separately paginate reply threads.
Is each reply a separate dataset row?
Embedded replies remain in aligned replies.* lists inside their parent comment row.
Can I request an exact number of comments?
You choose pages. Facebook controls how many comments are returned and whether another page is available.
What happens if a later page fails?
Previously saved comments remain available. The failed page can add a failed row after retries are exhausted.
Support, responsible use, and related actors π
For support, share the run ID, a safe public content URL, pagesPerPost, and the observed issue. Keep credentials private.
Use public discussion data lawfully and respect privacy, copyright, and applicable platform terms.