LinkedIn Profile Posts Scraper · No Cookies
Pricing
from $1.50 / 1,000 posts
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
Maintained by CommunityActor stats
2
Bookmarked
214
Total users
30
Monthly active users
4 days ago
Last modified
Categories
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, orrepost - 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
mediaarray - 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_urlon 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
- Open the Input tab.
- Add one or more public LinkedIn personal-profile URLs, such as
https://www.linkedin.com/in/satyanadella/. - Set Maximum Posts per Profile. The default is 20.
- Optionally set Only Posts From to an exact date or a relative period such as
30 days. - 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
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
profileUrls | Array of strings | Yes | — | 1–100 public LinkedIn personal-profile URLs. Company and individual-post URLs are not accepted. |
maxPosts | Integer | No | 20 | Maximum usable posts returned for each profile. Accepted range: 1–1,000. |
postedAfter | String | No | — | Return 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 field | Meaning |
|---|---|
source_profile_url | Exact profile URL that produced the row |
post_id, post_urn | Public post ID and LinkedIn entity identifier |
post_url | Canonical LinkedIn post URL without tracking parameters |
post_type | post, quote_post, or repost |
text, published_at, edited | Post content and publication metadata |
author_* | Flattened author fields designed for clean CSV exports |
likes, comments, shares | Native numeric engagement totals |
reactions | Normalized reaction counts: like, support, love, insightful, celebrate, and funny |
mentions | Mentioned people or companies, including IDs and URNs when available |
media | Images, videos, or linked articles in one consistent array |
original_post | Nested 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
maxPostswhen more pages are available.
Other LinkedIn Actors by Data Slayer
| Actor | What it does |
|---|---|
| LinkedIn Profile Scraper | Extract public profile, career, skill, and education data |
| LinkedIn Post Analytics Scraper | Analyze one LinkedIn post in depth |
| LinkedIn Company Scraper | Extract public LinkedIn company information |
| LinkedIn Company Posts Scraper | Collect recent posts from company pages |
Frequently asked questions
Do I need a LinkedIn account or cookie?
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.