LinkedIn Profile Posts Scraper
Pricing
from $1.00 / 1,000 post scrapeds
LinkedIn Profile Posts Scraper
Scrape LinkedIn profile posts with automatic pagination. No cookies needed. Get rich post data including engagement metrics, content categories, hashtags, mentioned companies/profiles, and computed fields not available in other actors.
Pricing
from $1.00 / 1,000 post scrapeds
Rating
5.0
(1)
Developer
Capable Cauldron
Maintained by CommunityActor stats
1
Bookmarked
18
Total users
8
Monthly active users
11 hours ago
Last modified
Categories
Share
LinkedIn Profile Posts Scraper [No Cookies]
Scrape LinkedIn posts data for any profile โ including post content, full engagement metrics, media attachments, mentioned entities, and computed enrichment fields not available in other actors.
๐ฐ Pricing
$3.00 / 1,000 results
This Actor uses Pay-Per-Event pricing. You only pay for what you get:
| Event | Price |
|---|---|
| Post scraped | $0.003 |
| Profile processed | $0.01 |
Scraping 100 posts from 1 profile costs $0.31. The maxDatasetItems parameter provides a hard cost ceiling.
โจ Key Features
- No account needed โ No cookies, no login, no risk to your LinkedIn account
- Automatic pagination โ Set how many posts you want, the actor handles the rest
- 56 enriched fields per post โ More data than any other LinkedIn posts actor:
- Total engagement pre-calculated (reactions + comments + reposts)
- Content category classified automatically (text, image, video, article, document, carousel, poll)
- Hashtags extracted and counted
- Mentioned companies and profiles as structured objects
- Individual reaction breakdowns (like, love, celebrate, support, insight, funny, curious)
- ISO-8601 dates derived from timestamps for clean sorting
- Word and character counts for content analysis
- Multiple profiles per run โ Scrape one or hundreds of profiles in a single run
- Cost control โ Hard cap on dataset items to prevent runaway costs
๐ Simple Usage
Simply provide one or more LinkedIn profile usernames or URLs. The username is the last part of a LinkedIn profile URL (e.g., satyanadella from linkedin.com/in/satyanadella).
Set maxPostsPerProfile to control how many posts you want per profile. The actor automatically paginates โ no manual token handling needed.
๐ Output Structure
Each post in the dataset contains 56 fields:
{"activity_urn": "7470793400858984449","share_urn": "7470793399273537536","full_urn": "urn:li:activity:7470793400858984449","post_url": "https://www.linkedin.com/posts/adamselipsky_achieving-success-with-ai-the-official","post_type": "repost","is_repost": true,"is_shared_content": true,"text": "My conversations with customers today are less about whether to adopt AI...","content_category": "article","word_count": 157,"char_count": 990,"hashtags": ["AI", "CloudComputing"],"hashtag_count": 2,"media_type": "image","media_url": "https://media.licdn.com/dms/image/...","media_thumbnail": "https://media.licdn.com/dms/image/...","has_article": true,"article_url": "https://blogs.microsoft.com/blog/2026/06/16/achieving-success-with-ai/","article_title": "Achieving success with AI - The Official Microsoft Blog","article_subtitle": "blogs.microsoft.com","has_document": false,"document_title": "","document_page_count": null,"author_name": "Adam Selipsky","author_headline": "CEO of Helix Digital Infrastructure. Former CEO at Amazon Web Services.","author_username": "adamselipsky","author_profile_url": "https://www.linkedin.com/in/adamselipsky","author_profile_picture": "https://media.licdn.com/dms/image/...","total_reactions": 2173,"reaction_like": 1882,"reaction_love": 44,"reaction_celebrate": 204,"reaction_support": 12,"reaction_insight": 30,"reaction_funny": 1,"reaction_curious": 0,"num_comments": 187,"num_reposts": 55,"total_engagement": 2415,"mentioned_companies": [{"name": "Amazon Web Services (AWS)","urn": "https://www.linkedin.com/company/amazon-web-services/"}],"mentioned_profiles": [],"posted_date": "2026-06-11 11:05:47","posted_relative": "1w","posted_timestamp": 1781175947394,"posted_date_iso": "2026-06-11T11:05:47.394000+00:00","profile_username": "adamselipsky","scraped_at": "2026-06-17T15:30:00.000000+00:00"}
Dataset Views
Three pre-built views for quick analysis in the Apify Console:
- Overview โ Profile, author, date, text, category, URL
- Engagement Metrics โ All reaction types, comments, reposts, totals
- Content Analysis โ Category, word count, hashtags, mentions, media type
๐ง Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
usernames | Array | Yes | โ | LinkedIn usernames, member IDs, or profile URLs (e.g., ["satyanadella", "williamhgates"]) |
maxPostsPerProfile | Integer | No | 100 | Max posts to scrape per profile (1โ2,000) |
includeReposts | Boolean | No | true | When false, returns only posts originally authored by the profile |
maxDatasetItems | Integer | No | 10,000 | Hard cap on total dataset items across all profiles |
maxRetries | Integer | No | 3 | Retry attempts for failed requests |
Input example
{"usernames": ["satyanadella", "williamhgates"],"maxPostsPerProfile": 100,"includeReposts": false,"maxDatasetItems": 10000}
Filtering out reposts
A LinkedIn feed mixes three kinds of posts:
post_type | What it is | Kept when includeReposts: false? |
|---|---|---|
regular | Written by the profile | โ Yes |
repost | Someone else's post, reshared as-is | โ No |
quote | Someone else's post + added commentary | โ No |
Set includeReposts to false when you want only the profile's own writing โ for
voice analysis, content audits, or training data where reshared material would be noise.
Both plain reposts and reposts with commentary are removed. Every returned row also
carries an is_shared_content flag so you can verify the filter for yourself.
You still get the full count you asked for. Filtering is applied to each page as it
arrives, and the actor keeps paginating until it has collected maxPostsPerProfile
original posts. Asking for 1,000 gives you 1,000 โ not 1,000 minus the reposts. The
only exception is a profile that simply doesn't have that many original posts, in which
case you get everything available and the run log says how many were filtered out.
Because reposts are identified from the post data itself, this is applied after each page is fetched rather than at the source. Reshare-heavy profiles therefore take a little longer to reach the requested count.
๐ API
You can run this Actor programmatically using the Apify API.
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });const run = await client.actor("YOUR_ACTOR_ID").call({usernames: ["satyanadella"],maxPostsPerProfile: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("YOUR_ACTOR_ID").call(run_input={"usernames": ["satyanadella"],"maxPostsPerProfile": 100})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
CLI
$echo '{"usernames": ["satyanadella"], "maxPostsPerProfile": 100}' | apify call YOUR_ACTOR_ID --silent --output-dataset
Note: This Actor is an independent tool for extracting publicly available social media post data. It is not affiliated with or endorsed by any social media platform.
๐ก Popular use cases (ready-to-run templates)
- ๐ Top GTM Leaders Linkedin Posts
- ๐ Track competitor LinkedIn posts and engagement
- ๐ Analyze what makes LinkedIn posts go viral
- โ๏ธ Reverse-engineer a creator's content strategy
- ๐ Export LinkedIn posts to Google Sheets
- ๐ฏ Find B2B sales triggers in LinkedIn posts
- ๐ Monitor executives' LinkedIn activity
- ๐ค LinkedIn posts for AI agents and RAG pipelines
- ๐ Benchmark LinkedIn engagement across profiles
- #๏ธโฃ Track LinkedIn hashtag performance
- ๐ผ Analyze B2B social selling posts