LinkedIn Post Comments & Engagements Scraper avatar

LinkedIn Post Comments & Engagements Scraper

Pricing

from $6.00 / 1,000 linkedin comment scrapeds

Go to Apify Store
LinkedIn Post Comments & Engagements Scraper

LinkedIn Post Comments & Engagements Scraper

Scrape known public LinkedIn post URLs for visible comments, commenters, post authors, likes, reactions, comment counts, and engagement totals. Provider-backed with SociaVault; no user cookies required.

Pricing

from $6.00 / 1,000 linkedin comment scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape known public LinkedIn post URLs and export post-level engagement metrics plus visible comments to JSON, CSV, Excel, or the Apify API.

This actor is built for GTM teams, agencies, social listening workflows, sales researchers, analysts, and AI agents that already have LinkedIn post URLs and need the people who commented, the text they wrote, and the engagement context around each post.

The actor uses SociaVault's public LinkedIn post endpoint. It does not ask users for LinkedIn cookies, does not access private posts, and does not claim complete LinkedIn-native comment coverage. Output depends on the public data exposed by the provider for each post URL.

What It Extracts

Dataset rows can be post summary rows, comment rows, or both depending on outputMode.

FieldDescription
recordTypepost for engagement summary rows or comment for comment rows
postUrl / resolvedPostUrlInput URL and provider-returned canonical URL
postIdLinkedIn activity/article ID when available
postTitle / postTextVisible post or article content
datePublishedProvider-returned publication date
postAuthorName / postAuthorUrlPost author details
likeCount / reactionCountPost-level likes or reactions
commentCountTotal post comment count when exposed
shareCountShare/repost count when exposed
engagementCountConvenience total of available reactions/likes, comments, and shares
commenterName / commenterProfileUrlComment author details
commentTextVisible comment text
commentReactionCount / replyCountComment-level engagement when exposed
runIdApify run ID that produced the record
scrapedAtTimestamp when this actor saved the row

Inputs

  • postUrls - one or more known LinkedIn post, feed update, or Pulse article URLs.
  • maxPosts - cap on unique post URLs processed.
  • maxCommentsPerPost - cap on comment rows saved for each post. Set to 0 for post metrics only.
  • outputMode - both, comments, or posts.
  • dedupeComments - remove duplicate comments per post using URL, commenter profile, and text.
  • includeRawData - include raw provider payloads for debugging.
  • maxConcurrency - number of post URLs processed in parallel.

Example Input

{
"postUrls": [
"https://www.linkedin.com/pulse/being-father-has-made-me-better-leader-vice-versa-austen-allred/"
],
"maxPosts": 10,
"maxCommentsPerPost": 100,
"outputMode": "both",
"dedupeComments": true,
"includeRawData": false
}

Example Output

{
"recordType": "comment",
"postUrl": "https://www.linkedin.com/pulse/being-father-has-made-me-better-leader-vice-versa-austen-allred/",
"resolvedPostUrl": "https://www.linkedin.com/pulse/being-father-has-made-me-better-leader-vice-versa-austen-allred",
"postId": null,
"postTitle": "Being a Father Has Made me a Better Leader, and Vice Versa",
"datePublished": "2020-06-21T14:35:59.000+00:00",
"postAuthorName": "Austen Allred",
"postAuthorUrl": "https://www.linkedin.com/in/austenallred",
"reactionCount": 214,
"commentCount": 17,
"engagementCount": 231,
"commentPosition": 1,
"commentText": "Austen, thanks for sharing!",
"commenterName": "Jeremy M.",
"commenterProfileUrl": "https://uk.linkedin.com/in/jeremymurray",
"source": "sociavault",
"scrapedAt": "2026-06-08T00:00:00.000Z"
}

Run Summary

Every run writes OUTPUT and RUN_SUMMARY records to the default key-value store:

{
"recordsSaved": 101,
"postsProcessed": 1,
"commentsSaved": 100,
"chargedPosts": 1,
"chargedComments": 100,
"estimatedPpeCostUsd": 0.61,
"providerAttempts": 1,
"providerRetries": 0,
"providerStatusCodes": [200],
"stopReason": "finished"
}

Common stopReason values:

  • finished - all selected post URLs were processed.
  • no-results - provider returned no rows that could be saved.
  • provider-error or partial-provider-error - upstream provider failed before or after some records were saved.
  • event-limit-reached - Apify PPE charge limit stopped the run.
  • invalid-input - input did not include a valid LinkedIn post URL.
  • missing-api-key - actor owner has not configured SOCIAVAULT_API_KEY.

Pricing

This actor is designed for pay-per-event monetization:

  • apify-actor-start: platform start event.
  • post-engagement-scraped: one post-level engagement row saved.
  • comment-scraped: one LinkedIn comment row saved.

The actor logs the maximum possible PPE cost before it starts and stops before saving more comment rows than maxPosts * maxCommentsPerPost.

Limitations

This is a known-URL post detail actor, not a LinkedIn keyword search actor. For discovery, use a LinkedIn post search actor first, then feed the discovered post URLs into this actor.

LinkedIn data availability is best-effort. Some posts expose engagement counts but limited or no comments; some post types may not expose every engagement field. The actor does not scrape private LinkedIn content and does not use LinkedIn account cookies.

API Example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~linkedin-post-comments-engagements-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"postUrls":["https://www.linkedin.com/pulse/being-father-has-made-me-better-leader-vice-versa-austen-allred/"],"maxCommentsPerPost":100,"outputMode":"both"}'

This actor is intended for public web data visible through the configured provider. You are responsible for using the output in compliance with applicable laws, platform terms, privacy requirements, and your own data governance policies.