LinkedIn Comment Replies & Reactions Scraper
Pricing
from $6.00 / 1,000 linkedin comment or reply scrapeds
LinkedIn Comment Replies & Reactions Scraper
Extract LinkedIn comments, nested replies when public data includes them, and post reaction counts from post or comment URLs. Provider-backed, cookieless, MCP-ready.
Pricing
from $6.00 / 1,000 linkedin comment or reply scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Paste a public LinkedIn post URL or a comment URL (the timestamp link that contains commentUrn) and get one dataset row per public comment or nested reply: author name, profile URL, text, thread level, and the post's like/comment counts. Optional profile enrichment adds current company, location, and followers. No LinkedIn cookies or login.
Built for social-listening teams, community managers, and B2B researchers who need the visible discussion on a post — plus reaction counts — as structured JSON for agents, CRMs, and spreadsheets.
Best fit for this Actor
- This Actor is designed for public LinkedIn post URLs and comment permalinks that include
commentUrn. It works well for social listening, community review, and commenter lead lists that need author, text, thread fields, and post like/comment counts. - Start with a public post URL when you want the visible comment sample. Continue with a comment timestamp URL when you already have a specific
commentUrn. Then passauthorProfileUrlto LinkedIn Profile Email Scraper when the next step is email research.
Workflow: from a post URL to comment rows
A community manager tracking a product announcement pastes https://www.linkedin.com/feed/update/urn:li:activity:7468770468041502720/. The run returns the public visible comments (typically around 10 top-level rows), each with authorName, authorProfileUrl, text, postLikeCount, and postCommentCount. Nested replies are saved when the public provider payload includes a replies array. Reaction fields on each row are counts; commenter identity lives on the author fields.
Quick start input
{"postUrls": ["https://www.linkedin.com/feed/update/urn:li:activity:7468770468041502720/"],"maxComments": 10,"includeReplies": true,"enrichProfiles": false}
maxComments caps rows per URL (default 50). It does not invent comments that public no-login data does not expose.
Input reference
| Field | Type | What it controls |
|---|---|---|
postUrls | string[] (required) | Post URLs, comment URLs with commentUrn, numeric activity IDs, or urn:li:activity: values. Up to 100 per run. Profile and company-home URLs belong on a profile or company Actor. |
startUrls | request list | Same URLs in Apify request-object form for agent/MCP callers. |
maxComments | integer | Cap of comment + reply rows per URL. Default 50, range 1–1000. |
includeReplies | boolean | Save nested replies when the payload includes them. Default true. |
maxRepliesPerComment | integer | Cap nested replies per parent comment. Default 25. |
enrichProfiles | boolean | Add public company, location, followers, about. Extra $0.012 per enriched row. Default false. |
providerOrder | enum | ScrapeCreators first (default) or SociaVault first. Fallback fires automatically. |
includeRawData | boolean | Attach raw provider objects. Default false. |
Comment URL form
On LinkedIn, click the timestamp of a specific comment. The address bar then contains commentUrn=urn:li:comment:(activity:…,…). Paste that URL. The Actor fetches the parent post and keeps requestedCommentUrn on every saved row.
What data you receive
One dataset item is one public comment or nested reply.
{"recordType": "comment","postUrl": "https://www.linkedin.com/posts/microsoft_activity-7468770468041502720-mGV1","postId": "7468770468041502720","postAuthorName": "Microsoft","postLikeCount": 379,"postReactionCount": 379,"postCommentCount": 25,"threadLevel": 0,"text": "Looking at AI adoption county by county is where the real story is.","authorName": "Example Author","authorProfileUrl": "https://www.linkedin.com/in/example-author","commentLikeCount": 4,"provider": "scrapecreators","scrapedAt": "2026-08-21T07:00:00.000Z"}
scrapedAt is ISO-8601. OUTPUT.outcome is one of COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, UPSTREAM_FAILED, or CONFIG_ERROR.
Data table
| Field | Meaning |
|---|---|
recordType | comment or reply |
authorName / authorProfileUrl | Public commenter identity |
text | Comment or reply body |
threadLevel / parentCommentId | Thread position |
postLikeCount / postCommentCount | Post-level reaction and comment counts |
commentReactionCount / reactions | Per-comment counts when the payload includes them |
requestedCommentUrn | Present when the input was a comment URL |
Public data scope
Managed public-data providers return a visible comment sample (author, text, profile URL) plus post likeCount / commentCount. Nested replies and per-comment reaction type maps are saved when the provider payload includes them. The Actor is cookieless: public counts ship on every row, and reactor identity lists stay outside the public payload.
Pricing
This Actor uses Pay per event plus platform usage. The live Pricing tab on the Actor page is the current source of truth for event names and prices.
| Event | Price |
|---|---|
apify-actor-start | $0.00005 per run |
comment-scraped | $0.006 per saved comment or reply |
comment-enriched | $0.012 extra per successfully enriched row |
A 10-comment run without enrichment is about $0.06005 in events plus Apify platform usage. VALID_EMPTY and INVALID_INPUT runs keep comment-scraped at zero.
Use through the API
curl "https://api.apify.com/v2/acts/khadinakbar~linkedin-comment-replies-reactions-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"postUrls": ["https://www.linkedin.com/feed/update/urn:li:activity:7468770468041502720/"],"maxComments": 10}'
Read the dataset from the run's defaultDatasetId, then read OUTPUT from the default key-value store for outcome and itemsPushed.
Use with AI agents through Apify MCP
Extract public comments and post reaction counts from this LinkedIn post URL. Return author name, profile URL, comment text, threadLevel, postLikeCount, and postCommentCount. Cap at 10 rows. After the run, read OUTPUT.outcome and the default dataset for provenance, cost, and scope.
Connect the client at https://mcp.apify.com. Inspect OUTPUT before treating SUCCEEDED as complete data.
Connect the workflow
- Then pass
authorProfileUrlinto LinkedIn Profile Email Scraper when the next job is email research. - Start with LinkedIn Profile Search Scraper when you still need to discover public profiles by keyword before you have a post URL.
- Continue with LinkedIn Comments Scraper when the store listing you want is the post-comments workflow rather than this comment-URL plus reaction-count surface.
Best results
- Use a public post URL or a comment timestamp URL with
commentUrn. - Keep
maxCommentsat 10–50 for canaries and agent calls; raise it only when you need the full visible sample. - Turn on
enrichProfilesonly for outreach qualification — it adds a second provider call and $0.012 per enriched row. - Provide a public post URL. When LinkedIn returns no visible comments,
OUTPUT.outcomeisVALID_EMPTYandcomment-scrapedstays at zero.
FAQ and legal
Who appears in the reaction fields? Public providers expose reaction counts. Author identity is on comment and reply rows.
Why is the comment sample smaller than the post counter? The public post payload returns the visible sample LinkedIn exposes without a session.
Are cookies required? This Actor is cookieless. Provide a public post or comment URL only.
This Actor collects publicly available LinkedIn information for legitimate research, analytics, and lead-generation workflows. Responsible use includes complying with LinkedIn's terms of service, applicable laws, and your own outreach rules. Keep the output inside authorized research and CRM workflows.
Report issues on the Actor's Issues tab. Custom extraction work is available on request.
Builder's note
I built this Actor after live provider probes showed that "comments, replies, and reactions" in the Store often names a reactor roster that public no-login APIs omit. I learned to keep the query language buyers search for, then ship the public subset that actually arrives: comment text, nested replies when present, and counts. In my testing that contract is what MCP agents can trust.