LinkedIn Profile Posts Scraper · No Cookies avatar

LinkedIn Profile Posts Scraper · No Cookies

Pricing

from $1.50 / 1,000 posts

Go to Apify Store
LinkedIn Profile Posts Scraper · No Cookies

LinkedIn Profile Posts Scraper · No Cookies

Scrape recent posts, quote posts, and reposts from public LinkedIn profiles with text, media, author details, and engagement—no login or cookies.

Pricing

from $1.50 / 1,000 posts

Rating

0.0

(0)

Developer

Data Slayer

Data Slayer

Maintained by Community

Actor stats

2

Bookmarked

214

Total users

30

Monthly active users

4 days ago

Last modified

Share

LinkedIn Profile Posts Scraper — No Cookies

Collect recent posts, quote posts, and reposts from public LinkedIn personal profiles. Get clean post text, canonical URLs, author details, media, mentions, publication dates, and engagement counts without providing a LinkedIn login or session cookie.

Paste one or more profile URLs, choose how many posts you need, optionally set a date cutoff, and click Run. Results are ready to download as JSON, CSV, or Excel or use in an automated workflow.

Watch the demo

What this LinkedIn profile posts scraper returns

Each successful dataset row represents one usable LinkedIn post and includes:

  • Post text, public post ID, URN, canonical LinkedIn URL, and publication time
  • A stable post_type: post, quote_post, or repost
  • Author name, headline, profile URL, public identifier, image, and LinkedIn ID when available
  • Likes, comments, shares, and reaction counts by type
  • Images, videos, and linked articles in one media array
  • People and companies mentioned in the post
  • Original-post content, author, media, and engagement for quote posts and reposts when LinkedIn exposes it
  • The requested source_profile_url on every row for reliable bulk-run tracing

This Actor returns engagement counts and reaction-type totals. It does not return the individual people who reacted or the text of individual comments; those belong in dedicated post-reaction and post-comment workflows.

How to scrape posts from a LinkedIn profile

  1. Open the Input tab.
  2. Add one or more public LinkedIn personal-profile URLs, such as https://www.linkedin.com/in/satyanadella/.
  3. Set Maximum Posts per Profile. The default is 20.
  4. Optionally set Only Posts From to an exact date or a relative period such as 30 days.
  5. Click Run and open the Dataset tab to preview or download the results.

No LinkedIn account, browser extension, or proxy configuration is required from you.

Input

FieldTypeRequiredDefaultDescription
profileUrlsArray of stringsYes1–100 public LinkedIn personal-profile URLs. Company and individual-post URLs are not accepted.
maxPostsIntegerNo20Maximum usable posts returned for each profile. Accepted range: 1–1,000.
postedAfterStringNoReturn posts published on or after an exact date/time or relative period such as 30 days, 6 months, or 1 year.

Example input:

{
"profileUrls": [
"https://www.linkedin.com/in/satyanadella/",
"https://www.linkedin.com/in/williamhgates/"
],
"maxPosts": 20,
"postedAfter": "30 days"
}

maxPosts applies separately to every profile. For example, two profiles with maxPosts: 20 can return up to 40 post rows.

Output

The default dataset uses one canonical schema. Duplicate URL aliases, unstable relative dates, and empty repost placeholders are excluded. Optional scalar values use null; collection fields such as reactions, mentions, and media use empty arrays when no values are available.

{
"source_profile_url": "https://www.linkedin.com/in/satyanadella/",
"post_id": "7485746420684296192",
"post_urn": "urn:li:ugcPost:7485746369614307328",
"post_url": "https://www.linkedin.com/posts/satyanadella_looking-forward-to-ignite-this-fall-join-activity-7485746420684296192-GKhn",
"post_type": "post",
"text": "Looking forward to Ignite this Fall! Join me in San Francisco or online.",
"published_at": "2026-07-22T17:23:45.134Z",
"edited": false,
"author_id": "ACoAAAEkwwAB9KEc2TrQgOLEQ-vzRyZeCDyc6DQ",
"author_name": "Satya Nadella",
"author_headline": "Chairman and CEO at Microsoft",
"author_profile_url": "https://www.linkedin.com/in/satyanadella",
"author_public_identifier": "satyanadella",
"author_type": "profile",
"author_image_url": "https://media.licdn.com/...",
"likes": 2024,
"comments": 77,
"shares": 198,
"reactions": [
{ "type": "like", "count": 1790 },
{ "type": "support", "count": 12 },
{ "type": "love", "count": 118 },
{ "type": "insightful", "count": 17 },
{ "type": "celebrate", "count": 85 },
{ "type": "funny", "count": 2 }
],
"mentions": [],
"media": [
{
"type": "video",
"url": "https://dms.licdn.com/...",
"thumbnail_url": "https://media.licdn.com/..."
}
],
"original_post": null
}
Output fieldMeaning
source_profile_urlExact profile URL that produced the row
post_id, post_urnPublic post ID and LinkedIn entity identifier
post_urlCanonical LinkedIn post URL without tracking parameters
post_typepost, quote_post, or repost
text, published_at, editedPost content and publication metadata
author_*Flattened author fields designed for clean CSV exports
likes, comments, sharesNative numeric engagement totals
reactionsNormalized reaction counts: like, support, love, insightful, celebrate, and funny
mentionsMentioned people or companies, including IDs and URNs when available
mediaImages, videos, or linked articles in one consistent array
original_postNested original-post details for quote posts or reposts; otherwise null

Profile-level failures are kept out of the successful post dataset. Check the run's OUTPUT record for a summary of requested profiles, successful profiles, failed profiles, posts written, and any error details.

Common use cases

  • Thought-leader monitoring: Track what executives, founders, creators, and industry experts publish over time.
  • Sales research: Understand a prospect's recent priorities before writing a relevant outreach message.
  • Content intelligence: Compare topics, formats, posting cadence, and engagement across public profiles.
  • Competitive research: Monitor public posts from leaders at competing companies.
  • Recruiting research: Review a candidate's public professional content and areas of interest.
  • Reporting and analysis: Send structured post data to spreadsheets, databases, dashboards, or AI analysis workflows.

Automation and API access

Run the Actor manually, on a schedule, through the Apify API, or from tools that connect to Apify. Common workflows include:

  • Schedule a weekly run to monitor a list of profiles
  • Use a webhook when a run finishes
  • Export results to JSON, CSV, or Excel
  • Send the dataset to Make, Zapier, Google Sheets, a database, or your own application
  • Use the canonical fields in an LLM, RAG pipeline, or content-analysis agent

The API tab contains generated examples for Python, JavaScript, CLI, HTTP, OpenAPI, and MCP usage.

Pricing

This Actor uses pay-per-event pricing: each successful post written to the default dataset is one billable post event, plus the Actor-start event shown on the Pricing tab. Use maxPosts and postedAfter to control result volume and cost. See the live Pricing tab for the current rate for your Apify plan.

Limitations

  • Supports public LinkedIn personal profile URLs. It does not accept company-page or individual-post URLs.
  • Only data publicly exposed by LinkedIn can be returned. Private, deleted, unavailable, or restricted profiles may return no posts.
  • LinkedIn can limit how many historical posts are publicly available, so the Actor cannot guarantee a complete lifetime archive.
  • Engagement counts can change after a run as people continue interacting with a post.
  • Individual comments and reactor identities are not included.
  • For a repost that LinkedIn exposes without usable post details, the Actor skips the empty placeholder and continues fetching toward maxPosts when more pages are available.

Other LinkedIn Actors by Data Slayer

ActorWhat it does
LinkedIn Profile ScraperExtract public profile, career, skill, and education data
LinkedIn Post Analytics ScraperAnalyze one LinkedIn post in depth
LinkedIn Company ScraperExtract public LinkedIn company information
LinkedIn Company Posts ScraperCollect recent posts from company pages

Frequently asked questions

No. The Actor does not ask for a LinkedIn login, password, li_at cookie, or browser session. Your LinkedIn account is not used to run it.

Can I scrape several profiles in one run?

Yes. Add up to 100 profile URLs to profileUrls. Every output row retains its source_profile_url so you can trace it back to the requested profile.

Can I fetch only recent posts?

Yes. Set postedAfter to an exact date or a relative period such as 7 days, 3 months, or 1 year.

Does it include reposts and quote posts?

Yes. The post_type field distinguishes normal posts, quote posts, and reposts. When original-post details are available, they are returned in original_post.

Does it return comments and the people who reacted?

It returns comment totals and a reaction-type count breakdown. It does not return individual comment records or individual reactor profiles.

How do I report a problem?

Open the Actor's Issues tab and include the run ID plus a non-sensitive example input. This makes the issue easier to reproduce and resolve.

Responsible use

This Actor extracts publicly available information. You are responsible for using the data in accordance with applicable laws, privacy requirements, LinkedIn's terms, and Apify's policies. Avoid collecting or using personal data in ways that could harm, discriminate against, or unfairly target individuals.