LinkedIn Profile Reactions Scraper avatar

LinkedIn Profile Reactions Scraper

Pricing

from $5.00 / 1,000 linkedin profile reaction scrapeds

Go to Apify Store
LinkedIn Profile Reactions Scraper

LinkedIn Profile Reactions Scraper

Extract posts a public LinkedIn profile reacted to (liked, celebrated, supported) with action type, post URL, author handle, and text preview. Provider-backed plus public HTML fallback. Cookieless, no login and MCP-ready.

Pricing

from $5.00 / 1,000 linkedin profile reaction scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Turn a public LinkedIn person profile URL or vanity handle into one dataset row per visible reaction that person gave — like, celebrate, support, love, insightful, or funny — with the reacted-to post URL, author handle, action label, and a short post preview. Designed for lead-intent researchers, creator-vetting teams, and outreach agents who want topic-interest signals from public activity. No LinkedIn login or cookies.

The Actor reads public guest activity LinkedIn already shows on a profile, plus any reaction items a managed profile provider returns. Typical yield is a handful of recent public likes, which is enough to see what a person engages with.

Best fit for this Actor

  • Start with a person profile (/in/handle or a bare handle) when you want the posts that person reacted to, not reactors on a post you already have.
  • Use maxReactionsPerProfile to keep each profile to a bounded public-activity sample (default 25, quality prefill 10).
  • After you have reacted-to post URLs, continue with LinkedIn Profile Details Scraper on the post authors, or LinkedIn Profile Search Scraper when you still need to find people by keyword first.

Practical scenario

An agency researcher pastes https://www.linkedin.com/in/parrsam/ with maxReactionsPerProfile set to 10. The run returns rows such as reactionType: LIKE, the boutique-hotel post URL, postAuthorHandle, and a text preview. The researcher keeps authors whose topics match the client brief, then passes those author URLs into LinkedIn Profile Details Scraper for public about and experience fields.

Quick start input

{
"profileUrls": ["https://www.linkedin.com/in/parrsam/"],
"maxReactionsPerProfile": 10,
"includeShares": false,
"enrichPosts": false,
"providerOrder": "scrapecreators-first",
"maxConcurrency": 2
}

profileUrls accepts full /in/ URLs or bare vanity handles. One unique profile can produce several reaction rows, capped by maxReactionsPerProfile. Company pages and post URLs belong in a company or post Actor.

Input reference

FieldTypeWhat it controls
profileUrlsarrayRequired person profiles. Example: https://www.linkedin.com/in/parrsam/. Max 50 unique values.
maxReactionsPerProfileintegerCap per profile. Default 25, prefill 10, max 100. Caps cost to public activity LinkedIn shows without login.
includeSharesbooleanWhen true, public share and repost activity is saved with the reaction rows. Default false.
enrichPostsbooleanWhen true, each reacted-to post is fetched for author name and counts. Adds a post-enriched event.
providerOrderenumscrapecreators-first (default), sociavault-first, or a single-vendor option. Keys stay owner secrets.
maxConcurrencyintegerParallel profiles. Default 2, range 1–5.

What data you receive

One dataset item is one public reaction a source profile gave.

{
"profileUrl": "https://www.linkedin.com/in/parrsam/",
"profileHandle": "parrsam",
"profileName": "Sam Parr",
"reactionType": "LIKE",
"actionLabel": "Sam Parr liked this",
"postUrl": "https://www.linkedin.com/posts/annacogswell_whats-the-best-boutique-hotel-youve-ever-activity-7495130403033272320-hzaE",
"postId": "7495130403033272320",
"postAuthorHandle": "annacogswell",
"postTextPreview": "What's the best boutique hotel you've ever stayed at?",
"enriched": false,
"provider": "scrapfly",
"source": "public-html",
"scrapedAt": "2026-08-21T12:00:00.000Z"
}
FieldMeaning
reactionTypeLIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT, or SHARE when shares are enabled.
postUrlLinkedIn URL of the post this profile reacted to.
sourceprovider-activity or public-html.
outcome in OUTPUTCOMPLETE when rows saved; VALID_EMPTY when the profile is public but no guest reactions are visible (no reaction-scraped charge).

OUTPUT and RUN_SUMMARY in the default key-value store hold outcome, itemsPushed, and chargedEventCounts.

Use through the API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~linkedin-profile-reactions-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"profileUrls":["https://www.linkedin.com/in/parrsam/"],"maxReactionsPerProfile":10}'

Download rows as JSON, CSV, Excel, or HTML from the Dataset tab.

Use with AI agents through Apify MCP

Extract public LinkedIn profile reactions for https://www.linkedin.com/in/parrsam/. Return reactionType, postUrl, postAuthorHandle, postTextPreview, provider, and scrapedAt. Cap at 10 reactions. Read OUTPUT.outcome and itemsPushed before treating an empty dataset as a miss.

Connect via https://mcp.apify.com. Keep source postUrl values for provenance. Confirm cost on the live Pricing tab before raising maxReactionsPerProfile.

Connect the workflow

Pricing

Pay per event plus platform usage. Confirm current event prices on the live Pricing tab; that tab is the source of truth if this page ever lags.

  • apify-actor-start: $0.00005 per run
  • reaction-scraped: $0.005 per saved reaction row
  • post-enriched: $0.008 per successfully enriched reacted-to post

A one-profile, 10-reaction check is about $0.05 in result events plus Apify platform usage. VALID_EMPTY profiles have no reaction-scraped charge. Provider credits are paid by the Actor owner.

How it works

  1. Normalize and deduplicate profile URLs and handles.
  2. Fetch public profile identity from ScrapeCreators, then SociaVault, and parse any reaction items in activity.
  3. When more public reactions are needed, render the public profile HTML and parse guest “liked this” / “celebrated this” cards, pairing each action with the nearest other-author post URL.
  4. Charge reaction-scraped only after a usable row, then write the dataset item. Optional post enrichment adds post-enriched.

Best results

  • Provide /in/ person URLs or vanity handles. Keep company pages for the company Actor and post URLs for a post Actor.
  • Start with maxReactionsPerProfile at 10 for a cheap sample, then raise toward 25 when the public activity list is long.
  • Leave enrichPosts off when action type plus post URL is enough; turn it on when you need author name and post counts.
  • A missing or private-looking handle finishes SUCCEEDED with VALID_EMPTY and no reaction-scraped charge when public data has no guest reactions.

Builder's note

I found that LinkedIn’s public profile JSON from managed providers often returns an empty activity array even when the live profile page still shows “liked this” cards for other authors. I designed the runtime to keep those provider identity fields, then fall back to public HTML for the reaction rows guests can already see. The login-gated Reactions tab stays out of this contract; the useful signal is the handful of public likes LinkedIn already renders without cookies.

Use this Actor on public LinkedIn data you are authorized to process, follow applicable law and LinkedIn's terms, and keep the output in your own compliance workflow. This Actor is independent of LinkedIn.

Issues and feature requests: use the Actor Issues tab on Apify.