LinkedIn Post Comments Scraper
Pricing
from $0.60 / 1,000 comment returneds
LinkedIn Post Comments Scraper
Ten comments per post is all LinkedIn shows a logged-out visitor, and that is the ceiling here. What comes back: comment text, author name and profile URL, reactions and age. No login, no cookie to keep alive. $0.60 per 1,000 comments.
Pricing
from $0.60 / 1,000 comment returneds
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Point it at public LinkedIn post URLs. It returns the comments LinkedIn shows to a visitor who isn't logged in, one row per comment, with the commenter's name and profile URL, the reaction count and the comment's age.
No LinkedIn account. No session cookie. No li_at token to paste and re-paste every few weeks.
Before you buy, read the limits section. LinkedIn caps what a logged-out visitor sees at 10 comments per post, and that cap applies here.
Input
postUrls takes any of these and normalises them to the same post:
https://www.linkedin.com/feed/update/urn:li:activity:7302346926123798528/https://www.linkedin.com/posts/satyanadella_...-activity-7302346926123798528-jituurn:li:activity:73023469261237985287302346926123798528
Also: maxCommentsPerPost, maxRetries (attempts per post on a fresh proxy session and browser
fingerprint, default 4), requestTimeoutSecs, and an optional proxyConfiguration.
Empty input returns exactly one labelled _sample: true row and charges nothing.
Output
| Field | Notes |
|---|---|
commentId | LinkedIn's numeric id from urn:li:comment:(...) |
commentText | the full comment |
authorName, authorProfileUrl | commenter and their public profile URL |
likeCount | reactions on that comment |
commentAgeText | LinkedIn's own relative age, "1y", "9mo" |
approximateCreatedAt | that age subtracted from fetch time, so it's an approximation and not a real timestamp |
commentUrl | permalink built from the comment URN |
postActivityId, postUrl, postAuthorName | the post the comment belongs to |
postReactionCount, postCommentCount | LinkedIn's own totals for the post |
transport, retrievedAt | provenance |
Across 28 real comment rows pulled from 20 public posts on 2026-08-10, every field above was filled on 100% of rows. There's no column that's empty on every row.
Limits
10 comments per post, maximum. "See more comments" points at the signup wall. Measured
directly: a post with 762 comments and a post with 16 comments both returned exactly 10, on 8/8
fetches each, across three browser fingerprints and eight proxy sessions. ?sortBy=RECENT,
?numComments=100, ?commentsPage=2 and the /embed/ view were all tried and all return the same
10, except the embed view, which returns none. Setting maxCommentsPerPost above 10 does nothing.
Not every post shows comments to guests. Of 20 arbitrary public posts, 8 returned comments and
12 returned none, and it's a stable property of the post rather than luck: one post with 60 comments
returned zero on 8 consecutive fetches through 8 sessions and 3 fingerprints, and its canonical
/posts/ URL behaved identically. Those posts produce an uncharged NO_RESULTS row. You are not
billed for them.
Top-level comments only. Replies aren't rendered to guests.
No exact timestamps. LinkedIn only gives guests a relative age.
If you need every comment on a post, or the replies, you need a tool that logs in. This one doesn't pretend to.
What it doesn't do
No login, no cookie injection, no account rental. No reactions or likers list, no profile enrichment, no email finding. No private or connection-only posts, which come back as uncharged diagnostic rows. No residential proxy: it runs on Apify datacenter addresses with a fresh session per attempt.
Billing
$0.60 per 1,000 comments ($0.0006 each), plus $0.001 each time a run starts. Flat on every plan, no volume tiers.
One comment event per real comment row. Never charged: the empty-input sample, and BAD_INPUT,
NO_RESULTS and BLOCKED diagnostic rows. A run where every post refuses to show comments costs
the start fee and nothing else.
Price isn't the only thing to weigh here. Ten comments per post is LinkedIn's own logged-out limit, and cookie-based tools don't have it. Pick on that basis, not on price alone.
How it works
Requests go out with a real browser TLS and HTTP/2 fingerprint (impit), rotating Chrome and
Firefox profiles, and a fresh Apify datacenter session per attempt.
That transport is the whole fix. An earlier build used Node's undici and returned NO_RESULTS on
every post. LinkedIn rejected it at the TLS handshake and served a shell with no comment markup.
Same URLs, same proxy pool, same minute, impit instead: the full ~385 KB guest page with ten
section.comment blocks, 4/4 sessions.
FAQ
Do I need an account or cookie? No. Nothing to log in with, nothing to refresh.
How many comments per post? Up to 10. Many posts give fewer, some give none.
Why did a post return nothing when I can see comments on it? You're logged in and this isn't. LinkedIn hides the comment block from guests on a large share of posts. That row is a diagnostic and isn't charged.
Can I get replies? No. Guests only see top-level comments.
Is approximateCreatedAt exact? No. It converts "9mo" into a date, so it's accurate to the
granularity LinkedIn published, not to the minute. commentAgeText is the raw value if you'd rather
do your own conversion.
Bad URL or private post? One uncharged diagnostic row with an errorCode (BAD_INPUT,
BLOCKED or NO_RESULTS) and a plain-English reason.