LinkedIn Profile Engagement Timeline Scraper
Pricing
from $0.49 / 1,000 results
LinkedIn Profile Engagement Timeline Scraper
Pull a LinkedIn profile's posts, reposts, comments, and reactions in one run, with the original post's author, text, and link attached to each activity. Needs your own LinkedIn session cookie.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Dataspryva
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Collect a LinkedIn profile's recent public activity in one run: the posts and reposts they published, the comments they left on other people's posts, and the reactions they gave. Each record carries the target post's author, text, URL, and engagement totals, so a like or comment arrives with the context it needs.
No cookie, login, or LinkedIn account is required. The actor reads the public version of the profile page that LinkedIn serves to logged-out visitors and search engines.
What this actor does
- Collects the three public activity tabs: Posts, Comments, and Reactions.
- Returns one record per activity, with the target post's text, author, URL, reaction total, and comment total.
- Opens each target post, when available, for exact dates, media, and the comment that the profile wrote.
- Supports one or many profile URLs or usernames in a single run.
- Filters by activity type and an optional date window.
- Emits a diagnostic row for a profile that is private, unavailable, or returns an auth wall, instead of failing the whole run.
- Empty fields are omitted, never returned as
nullor an empty string.
Output per activity
recordType—activity,error, ornoResultsactivityType—post,repost,comment, orreactionprofileName,profileUsername,inputProfileUrl— the profile that performed the activityactivityTimeAgo— LinkedIn's relative activity age (2w,3mo) for posts and comments. Reposts omit it because only the original post's age is public.originalPostTimeAgo— LinkedIn's relative age of the target post for posts, reposts, and reactions. Omitted for comments, whose card only shows the comment age.reactedAt— exact ISO activity time when public: an original post's publish time or a matched comment time. Omitted for reactions, reposts, and comments whose time is not visible.originalPostUrl,originalPostPermalink,originalPostId— canonical feed URL, the public post link, and the post IDoriginalPostedAt— exact target-post publish time, or a timestamp decoded from the post ID when the post page is unavailableoriginalAuthorName,originalAuthorProfileUrl,originalAuthorAvatar— the target post's authororiginalAuthorHeadline— kept for compatibility; public pages do not expose it, so it is normally omittedcontent— the target post's text, full when the post page is available and a preview otherwisereactionsCount,commentsCount— engagement totals for the target posttargetPostUrl,targetAuthor— target-post context for comments, reactions, and repostscommentText— the comment the profile wrotecommentIsReply—truewhen the profile replied to another commentcommentReactionsCount— reactions on the matched commentreactionType—likewhen the public card explicitly says "liked this"; omitted for the generic "reacted on this" label because the exact reaction type is not publicmediaItems— images, video, or article attachments when the public post exposes themdataSource—postPageoractivityCard, showing whether page-level details were availablescrapedAt— when the record was collected
Input
| Field | Type | Default | Description |
|---|---|---|---|
profileUrls | array | — | Public LinkedIn profile URLs or usernames. Required; up to 500 per run. |
activityTypes | array | posts, comments, reactions | posts, comments, reactions. Posts includes reposts; comments includes replies. The legacy value shares is accepted and returned as posts/reposts. |
includePostDetails | boolean | true | Open each target post for full text, exact dates, counts, media, and comment times. |
minDate | string | — | Keep posts and comments on or after this date. Reactions have no public event date and are kept. |
maxDate | string | — | Keep posts and comments on or before this date. Reactions are kept. |
maxActivitiesPerProfile | integer | 50 | Maximum records per profile across selected types (1–500). |
maxItems | integer | 500 | Maximum activity records for the whole run (1–10,000). Error rows do not count. |
Older saved tasks that send cookie, language, or proxyConfiguration still run; those keys are ignored with a note. Legacy activityType no longer filters the run because the schema supplies the default activityTypes; set activityTypes explicitly. The old shares value is rejected by the current schema; use posts.
Example: everything public for one profile
{"profileUrls": ["https://www.linkedin.com/in/satyanadella/"],"activityTypes": ["posts", "comments", "reactions"],"includePostDetails": true,"maxActivitiesPerProfile": 50}
Example: comments in a date window
{"profileUrls": ["https://www.linkedin.com/in/satyanadella/"],"activityTypes": ["comments"],"minDate": "2026-01-01","maxDate": "2026-10-23","maxActivitiesPerProfile": 20}
Example: reactions for a batch of profiles
{"profileUrls": ["https://www.linkedin.com/in/satyanadella/","https://www.linkedin.com/in/williamhgates/","adam-grant"],"activityTypes": ["reactions"],"includePostDetails": false,"maxItems": 100}
Use cases
- Sales and ABM research — see which topics a prospect comments on or reacts to before outreach.
- Influencer and executive audits — compare what a leader publishes with what they engage with.
- Competitive research — track the public posts and reactions of a competitor's team.
- Content strategy — study the posts that draw comments and reactions from a target audience.
- CRM enrichment — add recent public engagement signals to a contact record.
Limitations
- Recent public activity only. A public profile page renders one pageful per tab: typically 0–9 posts, 0–3 top-level comments, and 0–9 reactions. The "See all activities" link requires a LinkedIn sign-in, so older history is not available without a login.
- Reaction times and exact reaction types are not public. A reaction card says "liked this" or the generic "reacted on this". The actor records
reactionType: "like"only for the explicit "liked this" label; for "reacted on this" it omits the field rather than guessing celebrate, love, or another type.reactedAtis omitted for all reactions. - Reaction cards have two labels. Both "liked this" and "reacted on this" are returned as
activityType: "reaction", including when the card appears in the Posts panel. - Comment times are conditional. The profile page shows only a relative age. An exact comment time is filled when the comment is visible among the target post's public comments; otherwise
reactedAtis omitted andactivityTimeAgoremains. - Comment replies have no public parent-post link. They are returned with
commentIsReply: trueand without a target post URL. - Some profiles are private. LinkedIn may return an auth wall or HTTP 999 for a profile whose public visibility is restricted, or temporarily block a request. The actor retries, then emits a
blocked_or_privateerror row for that profile. After repeated 999 responses it may retry through Apify's automatic datacenter proxy; no proxy input is requested from you. - Target posts can disappear. If a post was deleted or made private after the activity card was rendered, the record keeps the card data and sets
dataSource: "activityCard". - Repost/share counts, views, reaction breakdowns, and the names of reactors are not public. Reposts themselves are returned as
repost; the missing numbers are not fabricated. - A public profile link may return 999 to a plain HTTP client while still opening normally in a browser. That is LinkedIn's access behaviour, not a broken record.
FAQ
Do I need a LinkedIn cookie or account? No. The actor never asks you for a cookie, login, or proxy. It reads only the public profile and post pages; after repeated 999 blocks it may use Apify's automatic datacenter proxy.
Why do I get fewer rows than I asked for?
LinkedIn renders a fixed recent-activity section per profile. There is no public "load more" or pagination, so the maximum is one pageful per tab even when maxActivitiesPerProfile is higher.
Why is reactedAt missing on a reaction?
LinkedIn does not expose when a reaction was given. The target post's own date is in originalPostedAt and originalPostTimeAgo; they are not reaction times. reactionType is filled only when the card explicitly says "liked this".
Why is reactedAt sometimes missing on a comment?
The exact comment time comes from the target post's public comment list. If the comment is not among the visible comments, only the relative activityTimeAgo is available.
Can I collect older posts or a complete history?
No. The public page exposes only the recent activity section. Schedule the actor and deduplicate on originalPostId plus profileUsername to build history forward.
Can I see who reacted to a post? No. Reactor identities are visible only to signed-in LinkedIn members, so they are not part of this actor.
Why did one profile return an error row?
That profile may hide its activity from logged-out visitors, may not exist, or LinkedIn may have returned a temporary 999. The row's status and error fields explain which case applied; other profiles in the same run continue.
Why do some comments have no target post? Those are replies to another comment. The public card shows the reply text and age but not the parent post link.
Is this affiliated with LinkedIn? No. This is an independent third-party actor that reads public pages. It is not operated by or affiliated with LinkedIn.