Facebook Comments Scraper - Threaded Replies, No Login
Pricing
from $1.00 / 1,000 comments
Facebook Comments Scraper - Threaded Replies, No Login
Scrape full comment threads from Facebook posts without cookies or an account. Comment text, author, timestamp, likes, and nested replies to depth 2, with the parent id on every row so the thread rebuilds exactly. Works on page posts and public group posts alike.
Pricing
from $1.00 / 1,000 comments
Rating
0.0
(0)
Developer
ApifyActors
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Facebook Comments Scraper — whole threads, replies included, no login
Pull every comment on a Facebook post, with its replies, without an account and without cookies. Page posts, video posts and public group posts all work the same way.
What it does that the others don't
- Complete threads, not the visible ones. By default it reads the thread in full, oldest first, rather than Facebook's ranked view — which is what a visitor sees and is deliberately incomplete. If you want the ranked order you can ask for it.
- Replies to depth 2, threaded properly. Every row carries
parent_comment_idanddepth, so you can rebuild the tree exactly rather than guessing from indentation. A comment'sreply_countcovers its whole sub-thread, which is why depth 2 is what makes the numbers add up. - Group posts. Public group threads read the same as page threads.
- Failed posts cost nothing. A deleted post, a comments-disabled post or a link with no usable id comes back as an error row, unbilled.
Input
| Field | What it does |
|---|---|
startUrls | Post permalinks or bare numeric post IDs, one per entry |
includeReplies | Expand reply threads to depth 2 (on by default) |
maxCommentsPerPost | 0 for the whole thread, or a cap to control spend — see the warning below |
commentsRanked | Off (default) = complete thread, oldest first. On = Facebook's ranked, partial order |
countryCode | Country to browse from |
{"startUrls": ["https://www.facebook.com/nasa/posts/1234567890123456", "284219939974539"],"includeReplies": true,"maxCommentsPerPost": 0}
⚠️ If you want replies, leave
maxCommentsPerPostat 0. The cap counts every row, replies included, and it is applied after the reply layer is merged — with top-level comments first. So on a thread with 500 comments, a cap of 50 returns 50 top-level comments and no replies at all, which looks exactly like a thread that has none.
About post URLs
Facebook has two permalink shapes. One carries a numeric post id
(/posts/<id>, /permalink/<id>, ?story_fbid=<id>, /videos/<id>, /photo?fbid=<id>) —
paste those directly. The other is the opaque /posts/pfbid… form you get from the share
button, which contains no id at all; no scraper can resolve it without already knowing the
post. Paste the numeric post ID instead — the companion Facebook Posts Scraper returns it
as post_id on every row, so chaining the two actors just works.
Output
One row per comment or reply:
{"post_id": "284219939974539","post_url": "https://www.facebook.com/nasa/posts/1234567890123456","source_name": "NASA","comment_id": "1234567890","comment_url": "https://www.facebook.com/nasa/posts/1234567890123456?comment_id=1234567890","parent_comment_id": "","depth": 0,"text": "Incredible image — what's the exposure time on this?","created_at": "2026-09-22T09:14:03Z","created_time": 1790068443,"likes": 24,"likes_label": "24","reply_count": 3,"author_name": "Jane Doe","author_id": "100001234567890","author_anonymous": false,"source_dialect": "en","attachment_type": "","attachment_url": "","scraped_date": "2026-09-23T00:28:13Z"}
depth: 0 is a top-level comment; replies carry depth: 1 or 2 and point at their parent.
Pricing
$1.00 per 1,000 comments, replies included at the same rate, plus Apify's standard $0.00005 actor start. Nothing is charged for posts that fail.
The official Apify comments scraper charges $2.00 per 1,000. Cheaper actors exist; they return top-level comments from a ranked, partial view, and several of them bill replies separately at a higher rate than the comments themselves.
Notes and limits
- Public content only. No account means no private groups and no friends-only posts.
- Some replies are not exposed to a logged-out reader. Where that happens the run log says so per comment, and the reply layer reports whether it finished complete or partial — it never reports missing replies as "this comment has none".
- Long threads take requests. Comments arrive about ten per request, so a 300-comment
thread is roughly 30 round trips and the actor paces itself through them. Budget time for
very large threads, and use
maxCommentsPerPostif you would rather cap the spend — but read the warning above first. - Rate limiting is expected and handled. The actor re-establishes its session and resumes from where it stopped rather than starting the thread over. This applies to the reply layer too, so a throttled reply query is retried rather than recorded as an empty thread.
FAQ
Do I need cookies or a Facebook account? No.
Will it get my account banned? It never logs in, so your account is never involved.
Can I get comments on a Reel? If the URL carries a numeric id, yes.
How do I get post URLs in bulk? Run the companion Facebook Posts Scraper and feed its
post_id column straight into startUrls.
Is this legal? Scraping publicly available data is generally lawful in most jurisdictions, but comments are personal data. You are responsible for your own compliance, particularly under the GDPR, and for Facebook's terms.