LinkedIn Post Scraper avatar

LinkedIn Post Scraper

Pricing

from $3.25 / 1,000 profile posts scrapeds

Go to Apify Store
LinkedIn Post Scraper

LinkedIn Post Scraper

Extract recent posts from LinkedIn profiles — headlines, dates, reaction counts, post URLs, and cover images. No login required. Pure HTTP with residential proxy.

Pricing

from $3.25 / 1,000 profile posts scrapeds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

8

Monthly active users

2 days ago

Last modified

Share

What does LinkedIn Post Scraper do?

LinkedIn Post Scraper extracts recent posts from LinkedIn public profile pages. Get post headlines, publish dates, like counts, post URLs, post types, and author info — all without logging in or using the LinkedIn API.

No login required. This scraper uses HTTP requests with residential proxy to fetch public LinkedIn profile pages and extracts structured JSON-LD data embedded in the HTML. Each profile yields approximately 15-20 of the most recent posts.

Try it now — paste a profile URL or just a slug like williamhgates and click Start.

Why this scraper stands out:

  • Extracts 11 structured fields per post including engagement metrics
  • No LinkedIn account or API key needed
  • Accepts both full LinkedIn URLs and simple slugs
  • Returns posts as clean, structured JSON ready for analysis

Who is LinkedIn Post Scraper for?

Content Marketers & Social Media Managers

  • Track what topics industry leaders and competitors are posting about
  • Analyze posting frequency and engagement patterns across profiles
  • Identify high-performing content formats (Articles vs Discussion posts)

Sales & Business Development Teams

  • Monitor prospect activity to find warm outreach triggers
  • Track what your target accounts are publishing before reaching out
  • Build conversation starters based on a prospect's recent posts

Market Researchers & Analysts

  • Collect thought leadership content across an industry segment
  • Track engagement metrics (likes) to gauge content resonance
  • Analyze posting cadence and topic trends over time

Developers & Data Engineers

  • Integrate LinkedIn post data into content monitoring pipelines via the Apify API
  • Automate competitive intelligence feeds for dashboards
  • Feed LinkedIn post data to AI agents via MCP for analysis and summarization

Why use LinkedIn Post Scraper?

  • 🔓 No login or cookies required — scrapes public profile pages without authentication
  • 💰 Pay-per-event pricing — only pay for profiles you actually scrape
  • 📊 11 structured fields per post including engagement metrics and timestamps
  • Pure HTTP — fast and lightweight, no browser overhead
  • 🔗 Flexible input — accepts full LinkedIn URLs or just profile slugs
  • 🔄 API access — integrate with 5,000+ apps via Zapier, Make, and the Apify API
  • Scheduling — set up recurring runs to track new posts over time
  • 📁 Export — download results as JSON, CSV, or Excel
  • 🏠 Residential proxy included — proxy costs are built into the pricing
  • 🤖 MCP compatible — connect directly to Claude and other AI assistants

What data can you extract?

Each post yields up to 11 structured fields:

CategoryFields
👤 ProfileprofileName, profileUrl
📝 Post ContentpostType (Article / DiscussionForumPosting), headline, postUrl
📅 DatesdatePublished, dateModified
📊 EngagementlikeCount
🖼️ MediaimageUrl
✍️ AuthorauthorName
🕐 MetadatascrapedAt

Post types explained:

  • Article — long-form LinkedIn articles published by the user
  • DiscussionForumPosting — standard LinkedIn feed posts and status updates

How much does it cost to scrape LinkedIn posts?

This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform and proxy costs are included.

FreeStarter ($29/mo)Scale ($199/mo)Business ($999/mo)
Per profile$0.005$0.005$0.005$0.005
100 profiles$0.50$0.50$0.50$0.50
1,000 profiles$5.00$5.00$5.00$5.00

A one-time $0.01 start fee applies per run to cover initialization.

Real-world cost examples:

InputProfilesApprox. postsCost
1 profile1~15-20~$0.015
10 profiles10~150-200~$0.06
100 profiles100~1,500-2,000~$0.51

Each profile returns up to ~20 recent posts. You pay per profile scraped, not per post — so more posts per profile means better value.

How to scrape LinkedIn posts

  1. 🔗 Go to LinkedIn Post Scraper on Apify Store
  2. 📋 Click Try for free to open the Actor in Apify Console
  3. 👤 Enter LinkedIn profile URLs or slugs (e.g., williamhgates, satyanadella)
  4. ⚙️ Optionally set Max Profiles to limit how many profiles to process
  5. ▶️ Click Start and wait for the run to finish
  6. 📊 Preview the results in the Dataset tab
  7. 💾 Export data as JSON, CSV, or Excel — or connect via API

Input parameters

ParameterTypeRequiredDefaultDescription
profileUrlsArray of stringsYesLinkedIn profile URLs or slugs. Accepts full URLs (https://www.linkedin.com/in/williamhgates/) or just the slug (williamhgates).
maxProfilesIntegerNo100Maximum number of profiles to process (1-1,000). Each profile returns ~15-20 posts.

Input example:

{
"profileUrls": [
"https://www.linkedin.com/in/williamhgates/",
"satyanadella",
"raborrego"
],
"maxProfiles": 10
}

Output example

Each profile produces multiple post objects in the dataset. Here is a sample output:

{
"profileName": "Bill Gates",
"profileUrl": "https://www.linkedin.com/in/williamhgates/",
"postType": "Article",
"headline": "A phone call that saves lives",
"datePublished": "2026-03-08T01:47:00.000+00:00",
"dateModified": null,
"postUrl": "https://www.linkedin.com/pulse/phone-call-saves-lives-bill-gates-yspvc",
"likeCount": 5258,
"imageUrl": null,
"authorName": "Bill Gates",
"scrapedAt": "2026-03-21T23:30:33.043Z"
}
{
"profileName": "Bill Gates",
"profileUrl": "https://www.linkedin.com/in/williamhgates/",
"postType": "DiscussionForumPosting",
"headline": "Big day for my family as my youngest daughter, Phoebe, graduated from college...",
"datePublished": "2026-02-15T18:22:00.000+00:00",
"dateModified": "2026-02-16T09:10:00.000+00:00",
"postUrl": "https://www.linkedin.com/posts/williamhgates_big-day-activity-7298765432109876543-AbCd",
"likeCount": 12340,
"imageUrl": "https://media.licdn.com/dms/image/v2/example.jpg",
"authorName": "Bill Gates",
"scrapedAt": "2026-03-21T23:30:34.112Z"
}

Tips and best practices

  • 🎯 Start small — test with 1-3 profiles first to verify the data meets your needs before scaling up
  • 🔄 Schedule recurring runs — set up daily or weekly runs to track new posts from profiles you care about
  • 📋 Use slugs for convenience — you can skip the full URL and just enter williamhgates instead of the full LinkedIn URL
  • ⚠️ Some profiles may be blocked — LinkedIn occasionally returns a 999 status code for anti-bot protection. These profiles are skipped automatically. If a specific profile fails, try running it again later
  • 📊 Combine with other data — pair post data with LinkedIn Profile Scraper to get full profile details alongside posts
  • 🧮 Budget planning — each profile costs $0.005 plus a one-time $0.01 start fee per run. Batch profiles into fewer runs to minimize start fees
  • 🕐 Post coverage — the scraper extracts posts visible on the public profile page, which is typically the 15-20 most recent posts

Use with Claude AI (MCP)

This actor is available as a tool in Claude AI through the Model Context Protocol (MCP). Add it to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Example prompts

  • "Scrape the recent LinkedIn posts from Bill Gates and summarize the main topics he's writing about"
  • "Get posts from these 5 LinkedIn profiles and rank them by engagement (likes)"
  • "What has Satya Nadella been posting about on LinkedIn this month?"

Learn more in the Apify MCP documentation.

Integrations

LinkedIn Post Scraper works with the full Apify ecosystem and thousands of external tools.

Monitor competitor content on autopilot

  • Schedule daily runs for a list of competitor profiles
  • Connect to Slack via Zapier to get alerts when new posts appear
  • Feed results into Google Sheets for ongoing tracking

Enrich your CRM with prospect activity

  • Pull recent posts for a list of prospects from your CRM
  • Push post data back to HubSpot, Salesforce, or Pipedrive via webhooks
  • Trigger outreach sequences when prospects post about relevant topics

Content research pipeline

  • Scrape posts from industry thought leaders weekly
  • Send results to Google Sheets or Airtable for your content team
  • Use post headlines and engagement data to inform your content calendar

AI-powered analysis

  • Feed post data to GPT or Claude for sentiment analysis and topic extraction
  • Summarize posting trends across multiple profiles
  • Generate outreach drafts referencing a prospect's recent posts

Supported integrations:

  • 🔗 Zapier, Make (Integromat), n8n
  • 📊 Google Sheets, Airtable, Excel
  • 💼 HubSpot, Salesforce, Pipedrive
  • 💬 Slack, Microsoft Teams, Discord
  • 🗄️ S3, Google Cloud Storage, Dropbox
  • 🔌 REST API, webhooks, GraphQL

API usage

Call LinkedIn Post Scraper programmatically using the Apify API. Here are examples in multiple languages.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('automation-lab/linkedin-post-scraper').call({
profileUrls: ['williamhgates', 'satyanadella'],
maxProfiles: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((post) => {
console.log(`${post.authorName}: ${post.headline} (${post.likeCount} likes)`);
});

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/linkedin-post-scraper").call(run_input={
"profileUrls": ["williamhgates", "satyanadella"],
"maxProfiles": 10,
})
for post in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{post['authorName']}: {post['headline']} ({post['likeCount']} likes)")

cURL

# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/automation-lab~linkedin-post-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"profileUrls": ["williamhgates", "satyanadella"],
"maxProfiles": 10
}'
# Fetch results (replace DATASET_ID with the value from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=json"

Web scraping of publicly available data is generally legal, as confirmed by the US Ninth Circuit ruling in hiQ Labs v. LinkedIn (2022), which held that scraping public LinkedIn profiles does not violate the Computer Fraud and Abuse Act (CFAA).

This Actor only accesses publicly available LinkedIn profile pages — the same data any visitor can see without logging in. It does not bypass any authentication, access private data, or violate LinkedIn's login barriers.

However, you should:

  • Review LinkedIn's Terms of Service for your use case
  • Comply with applicable data protection laws (GDPR, CCPA, etc.)
  • Use the collected data responsibly and ethically
  • Consult legal counsel if you have specific compliance questions

For more information, see Apify's guide on the legality of web scraping.

Legality

Scraping publicly available data is generally legal according to the US Court of Appeals ruling (HiQ Labs v. LinkedIn). This actor only accesses publicly available information and does not require authentication. Always review and comply with the target website's Terms of Service before scraping. For personal data, ensure compliance with GDPR, CCPA, and other applicable privacy regulations.

FAQ

How many posts can I get per profile? The scraper extracts posts visible on the public LinkedIn profile page, which typically includes the 15-20 most recent posts. This is a limitation of what LinkedIn shows on the public page without login.

Why did a profile return no results? LinkedIn sometimes returns a 999 status code as an anti-bot measure. The scraper automatically skips these profiles and logs a warning. If a specific profile consistently fails, try again later — LinkedIn's blocking is temporary and rotating.

Can I get the full post body text? Currently, the scraper extracts headlines only, not the full post body. The headline is the text LinkedIn includes in the page's structured data (JSON-LD). Full body text requires authenticated access, which this scraper does not use.

Does this scraper require a LinkedIn account? No. LinkedIn Post Scraper works entirely without login. It fetches the public version of profile pages using residential proxies, extracting data from the JSON-LD metadata embedded in the HTML.

What is the difference between Article and DiscussionForumPosting? Article refers to long-form LinkedIn articles (published via LinkedIn's article editor). DiscussionForumPosting refers to standard feed posts, status updates, and shared content.

Can I scrape posts from company pages? No — this scraper is designed for personal profile pages only. For company data, use LinkedIn Company Scraper.