LinkedIn Activity Feed Scraper with Engagement Filters avatar

LinkedIn Activity Feed Scraper with Engagement Filters

Pricing

from $0.49 / 1,000 results

Go to Apify Store
LinkedIn Activity Feed Scraper with Engagement Filters

LinkedIn Activity Feed Scraper with Engagement Filters

Pull posts, articles, and reposts from LinkedIn profile activity feeds, with reaction/comment/date filters and a per-reaction-type breakdown. Requires a LinkedIn session cookie.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Nimbryxo-studio

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape LinkedIn profile posts, company posts, and individual public post URLs without cookies, logins, or an API key. Get the full post text, author name and profile URL, exact publish date, reaction and comment totals, the visible comments, media, and clear original/quote/repost flags.

What this actor does

  • Three modes: postUrls for specific public posts, profiles for a profile's recent posts, and companies for a company's recent posts.
  • Cookieless by design: reads public LinkedIn pages only, so there is no session cookie to export, expire, or leak.
  • Exact post data: full text, author identity, ISO publish date, reaction total, comment total, media URLs, and the comments visible on the public page.
  • Correct reshare semantics: postType separates original, quote, and repost; repostOf names the original author and text when LinkedIn exposes them.
  • Filters: media type, post type, relative date window, minimum reactions, minimum comments, and a global record cap. Empty fields are omitted.

Output per post

  • postId, postUrl, postedAt — numeric activity ID, canonical post URL, exact ISO publish date
  • authorName, authorProfileUrl, authorType, authorAvatar, authorFollowers — author identity; authorType is Person or Organization
  • content — full post text
  • hashtags — hashtags found in the post text
  • mediaType — text, image, video, article, repost; legacy values document, carousel, poll, and event are accepted by the filter but are not exposed on public pages
  • mediaUrls, mediaItems — image URLs, or a video URL with thumbnail, duration, and embed URL
  • articleTitle — live article/link title when the post is an article-style or image/link share
  • comments — up to 10 visible comments, each with authorName, text, postedAt, and reactionsCount
  • commentsCount — total comment count on the post
  • reactionsCount — total reaction count (likes plus other reactions)
  • postType — original, quote, or repost
  • isRepost, isQuotePost — flags for reshared and quote posts
  • repostOf — original authorName, authorProfileUrl, authorType, content, and postUrl when available
  • inputUrl — the post or target URL that produced this record
  • inputProfileUrl — profile URL (mode=profiles)
  • inputCompanyUrl — company URL (mode=companies)
  • dataSource — public-post, public-profile, or public-company
  • partial — present and true when only the discovery stub could be read (for example, the post page was blocked)
  • recordType — post for post records, error for diagnostic rows
  • scrapedAt — ISO 8601 run timestamp

Legacy compatibility fields remain part of the output contract but are omitted when the public page does not expose them: authorHeadline, articleUrl, linkPreview, documentUrl, pollOptions, mentionedPeople, mentionedCompanies, reactionBreakdown, repostsCount, and viewsCount. See Limitations.

Diagnostic rows have recordType: "error", targetType, inputUrl, status (invalid, not_found, blocked, empty, or fetch_failed), error, optional httpStatus, and scrapedAt. They are not counted toward maxItems.

Input

FieldTypeDefaultDescription
modestringpostUrlspostUrls, profiles, or companies
postUrlsarray–Public post URLs, feed-update URLs, activity URNs, or numeric activity IDs (mode=postUrls)
profileUrlsarray–Profile URLs or public identifiers, e.g. https://www.linkedin.com/in/williamhgates/ or williamhgates (mode=profiles)
companyUrlsarray–Company URLs or slugs, e.g. https://www.linkedin.com/company/google/ or google (mode=companies)
maxPostsPerProfileinteger50Maximum posts kept per profile or company (1–500); public pages expose about 6–8 profile posts and 2–10 company posts
mediaTypearray–Keep only text, image, video, article, or repost; empty keeps all
postTypesarray["text","image","video","article","document","repost"]Legacy type filter; left at its default it changes nothing, otherwise it is merged with mediaType
datePostedstringAny time"" (any time), r86400 (24 hours), r604800 (week), or r2592000 (month)
minReactionsinteger0Minimum reaction count
minCommentsinteger0Minimum comment count
includeRepostsbooleantrueKeep quote posts and reposts; set to false to drop them
maxItemsinteger1000Global cap on post records (1–10000); error rows do not count
proxyConfigurationobject–Optional. The actor works without a proxy

Example: one public post URL

{
"mode": "postUrls",
"postUrls": [
"https://www.linkedin.com/posts/williamhgates_how-better-data-helped-us-cut-child-mortality-activity-7329207003942125568-_gfJ"
]
}

Example: recent posts from several profiles

{
"mode": "profiles",
"profileUrls": [
"https://www.linkedin.com/in/satyanadella/",
"https://www.linkedin.com/in/adam-grant/"
],
"maxPostsPerProfile": 8
}

Example: company posts with engagement filters

{
"mode": "companies",
"companyUrls": ["https://www.linkedin.com/company/google/"],
"datePosted": "r2592000",
"minReactions": 100,
"includeReposts": false
}

Example: a mixed list of posts, with comments and media

{
"mode": "postUrls",
"postUrls": [
"https://www.linkedin.com/feed/update/urn:li:activity:7518622101692436482/",
"https://www.linkedin.com/posts/nvidia_ai-is-technology-activity-7518633624649252864-9XSo",
"https://www.linkedin.com/feed/update/urn:li:activity:7518239029990023168/"
],
"mediaType": ["image", "video", "article"],
"minComments": 5,
"maxItems": 50
}

Use cases

  • Content research — collect full posts and visible comments from experts, creators, and companies you track.
  • Competitive intelligence — monitor the latest company posts and compare engagement across peers.
  • Lead generation — find active, high-engagement authors and the posts that sparked discussion.
  • Influencer vetting — check real reaction and comment counts before a sponsorship or partnership.
  • Campaign reporting — export exact dates, post URLs, and engagement totals for a reporting window.
  • Dataset building — assemble a clean post corpus for topic modelling, sentiment analysis, or LLM training.

Limitations

  • Public surfaces only. Private profiles, member-only posts, and pages that return a login wall or HTTP 999 are reported as diagnostic error rows instead of being bypassed.
  • Profile depth is about 6–8 posts. A public profile page shows only its latest posts and has no "load more" for logged-out visitors. maxPostsPerProfile cannot unlock older history.
  • Company depth is about 2–10 posts. It comes from the company home page, not the /posts/ tab, which is login-gated. Older company posts are not available.
  • Comments are the visible subset. The public page exposes up to 10 comments, with text, author name, date, and likes. It does not expose replies, comment permalinks, or commenter profile URLs.
  • These fields are not public: shares/reposts counts, views/impressions, per-reaction-type breakdown, reactor or liker identities, and author headlines. They are omitted rather than estimated.
  • Some media labels are not public: document, carousel, poll, and event posts are not distinguishable on the public post page, so they are reported as text, image, video, or article based on what the page exposes.
  • Date filters apply to what was discovered. In profile and company modes, only the latest page of posts is filtered; the filter does not make older posts appear.
  • A failed hydration can produce a partial record. When a profile or company page lists a post but its public post page is blocked, the record keeps the listing text, date, author, and reaction count and is marked partial: true.

FAQ

Do I need a LinkedIn cookie or login? No. This actor reads public LinkedIn pages only. There is no cookie field to fill and no account risk.

How many posts can I get per profile? About 6–8 recent posts per profile. That is the public page's own limit; setting maxPostsPerProfile higher does not add pagination.

How many posts can I get per company? About 2–10 recent posts from the company home page. Older company posts are behind a login wall.

Why are shares, views, or the reaction breakdown missing? LinkedIn does not publish those values on public post pages. The actor deliberately omits them instead of returning zeros or guesses.

What is the difference between quote and repost? A quote adds the sharer's own commentary above the original content. A repost shares the original without new commentary. repostOf carries the original author and text when LinkedIn exposes them.

Are the comments the full thread? No. They are the up-to-10 comments LinkedIn renders on the public page, in the order LinkedIn shows them. Replies and commenter profile URLs are not included.

Why did I get an error row instead of a post? The post, profile, or company was private, deleted, rate-limited, or returned a login wall. The row's status and error fields say which case occurred; other targets in the same run still return data.

Can I scrape a specific old post? Yes, if it is public. Put its URL, feed-update URL, activity URN, or numeric ID in postUrls.

Can I run this on a schedule? Yes. A daily run with one public post URL is enough to return data and keep a dataset fresh.

Is this affiliated with LinkedIn? No. This is an independent, third-party actor; it is not operated by or affiliated with LinkedIn.