LinkedIn Posts Scraper avatar

LinkedIn Posts Scraper

Pricing

from $1.35 / 1,000 saved posts

Go to Apify Store
LinkedIn Posts Scraper

LinkedIn Posts Scraper

Scrape LinkedIn posts from profiles, companies, post URLs, feed updates, and search targets. Export text, authors, media, comments, reactors, reaction counts, repost context, and optional author profiles.

Pricing

from $1.35 / 1,000 saved posts

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

28

Total users

18

Monthly active users

a day ago

Last modified

Share

🔎 LinkedIn post scraper for clean post datasets

LinkedIn Posts Scraper exports LinkedIn posts from profile feeds, company pages, direct post URLs, feed updates, LinkedIn post-search URLs, and keyword searches. It is built for social listening, hiring research, competitor tracking, market research, sales intelligence, and repeat reporting when you need one dataset with source IDs, text, author details, publish dates when visible, media, engagement counts, reaction breakdowns, repost context, and optional paid enrichments.

📦 Data you can export

Each saved dataset item is one accepted LinkedIn post. It can include:

  • postId and activityUrn when LinkedIn exposes source-native IDs
  • postUrl for review, deduplication, and follow-up workflows
  • matchedInputs showing which URL or search query found the post
  • text, headline, and publishedAt
  • author with name, ID, URL, headline, profile/company type, and optional profile details
  • engagement with reaction, comment, repost, and per-reaction counts
  • repost with quote or repost context when LinkedIn identifies shared content
  • reactors with visible people or companies who reacted, when reactor enrichment is enabled
  • media with image URLs, video metadata, document metadata, and link URLs
  • comments with visible commenter identity, text, dates, URLs, and like counts when comment enrichment is enabled

Fields can be null or empty arrays when LinkedIn does not show that value for a specific post, region, session state, author, or content type. The Actor keeps unavailable source data empty instead of inventing values.

🚀 How to run it

  1. Add one or more targets in LinkedIn URLs, Search queries, or both.
  2. Optional: use author, company, industry, mention, content type, date, and search page filters to narrow search results.
  3. Set Posts per target and Total post limit for the run size you want.
  4. Optional: enable paid enrichments for comments, reactors, or author profile details.
  5. Start the Actor.
  6. Open the dataset, export it, or pull rows through the Apify API.

Good target examples:

  • https://www.linkedin.com/in/williamhgates/
  • https://www.linkedin.com/company/google/
  • https://www.linkedin.com/posts/...
  • https://www.linkedin.com/feed/update/urn:li:activity:7474530647273934848/
  • https://www.linkedin.com/search/results/content/?keywords=hiring%20software%20engineer
  • hiring software engineer

URL targets and search queries are both first-class inputs. You can mix them in one run when you want one dataset that combines known LinkedIn pages with broader keyword discovery.

⚙️ Input

FieldWhat it does
targetUrlsLinkedIn profile, company, direct post, feed update, or post-search URLs.
searchQueriesKeywords or Boolean-style phrases for LinkedIn post search.
authorUrlsOptional LinkedIn profiles or companies used to narrow search-query results.
authorIdsOptional LinkedIn profile or company IDs used to narrow search-query results.
authorCompanyNamesOptional company names for posts from people associated with those companies.
authorIndustryIdsOptional LinkedIn industry IDs for author filtering.
mentioningMemberUrlsOptional LinkedIn members that searched posts should mention.
mentioningCompanyUrlsOptional LinkedIn companies that searched posts should mention.
sortBySearch order: newest posts or most relevant posts.
contentTypeCollect all posts or focus search results on images, videos, documents, jobs, live videos, or collaborative articles.
dateFromKeep posts published on or after this date when the post date is visible.
dateToKeep posts published on or before this date when the post date is visible.
includeQuotePostsInclude shared posts where the author added their own text.
includeRepostsInclude shared posts without added author text.
startPageStart search collection from this LinkedIn search results page.
scrapePagesCollect this many search pages when the post limit does not stop first.
includeTopCommentsPublic form label: Include comments. Saves visible comments nested on each post. Each saved comment is charged.
maxTopCommentsPerPostPublic form label: Comments per post. Set 0 to collect every visible comment up to the Actor limit.
includeReactorsSaves visible people or companies who reacted to each post. Each saved reactor is charged.
maxReactorsPerPostSet 0 to collect every visible reactor up to the Actor limit.
authorProfileModeAdd no profile details, main author profile details, or full author profile details.
maxPostsPerTargetMaximum posts to collect from each URL or search query. Set 0 to collect every available post up to the total limit.
maxTotalPostsMaximum saved posts across the whole run.

Example input:

{
"targetUrls": [
{ "url": "https://www.linkedin.com/in/williamhgates/" },
{ "url": "https://www.linkedin.com/company/google/" }
],
"searchQueries": ["hiring software engineer"],
"authorUrls": ["https://www.linkedin.com/company/google/"],
"sortBy": "date",
"contentType": "all",
"includeTopComments": true,
"maxTopCommentsPerPost": 3,
"includeReactors": true,
"maxReactorsPerPost": 5,
"authorProfileMode": "main",
"maxPostsPerTarget": 25,
"maxTotalPosts": 100
}

🧾 Output example

{
"postId": "7474530647273934848",
"activityUrn": "urn:li:activity:7474530647273934848",
"postUrl": "https://www.linkedin.com/posts/williamhgates_i-got-involved-in-global-health-back-in-1997-activity-7474530647273934848-VLxg",
"matchedInputs": ["https://www.linkedin.com/in/williamhgates/"],
"text": "I got involved in global health back in 1997 when I read a statistic I couldn't believe.",
"headline": "Bill Gates on LinkedIn",
"publishedAt": "2026-06-21T18:36:16.374Z",
"author": {
"name": "Bill Gates",
"id": "ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc",
"url": "https://www.linkedin.com/in/williamhgates/",
"headline": "Chair, Gates Foundation and Founder, Breakthrough Energy",
"type": "profile",
"profile": {
"location": "Seattle, Washington, United States",
"about": "Co-chair of the Bill & Melinda Gates Foundation.",
"followerCount": 35000000,
"connectionCount": null,
"websites": [],
"positions": [],
"education": []
}
},
"engagement": {
"reactionCount": 2497,
"commentCount": 268,
"repostCount": 155,
"reactions": [
{ "type": "LIKE", "count": 2201 },
{ "type": "PRAISE", "count": 296 }
]
},
"repost": null,
"reactors": [
{
"reactionType": "LIKE",
"authorName": "Grace Hopper",
"authorId": "ACoAAExample123",
"authorUrl": "https://www.linkedin.com/in/grace-hopper/",
"authorHeadline": "Computer scientist"
}
],
"media": {
"imageUrls": ["https://media.licdn.com/dms/image/..."],
"video": null,
"document": null,
"linkUrls": []
},
"comments": [
{
"commentId": "urn:li:comment:(activity:7474530647273934848,7474900000000000000)",
"commentUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7474530647273934848?commentUrn=urn%3Ali%3Acomment%3A...",
"text": "Important work.",
"authorName": "Ada Lovelace",
"authorId": "ACoAAExample456",
"authorUrl": "https://www.linkedin.com/in/ada-lovelace/",
"publishedAt": "2026-06-21T20:10:00.000Z",
"likeCount": 12
}
]
}

💳 Pricing

This Actor uses pay-per-event pricing. You are charged only for saved results:

  • one post event for each LinkedIn post saved to the dataset
  • one comment event for each visible comment saved inside a post
  • one reaction event for each visible reactor saved inside a post
  • one author profile event when author profile enrichment is saved

No-result searches, invalid targets, skipped unavailable posts, and empty enrichment arrays do not create paid result events. Keep paid enrichments off for a cheaper first run, then turn them on when you need comments, reactors, or author profile details.

⚠️ Limits and caveats

  • No user-provided LinkedIn cookies, login details, browser extension, or LinkedIn API key are required.
  • The Actor returns source-visible post data only. Private, deleted, restricted, unavailable, or not-exposed posts can be skipped.
  • LinkedIn may expose different fields for different posts, regions, authors, content types, and run times.
  • Comments, reactors, and author profile details are saved as nested data on the post item. They are not emitted as separate dataset rows.
  • Setting comment or reactor limits to 0 asks the Actor to collect every visible item up to the Actor limit.
  • Date filters apply when LinkedIn exposes a usable publication date.
  • Higher limits and paid enrichments can take longer because the Actor has to collect and enrich more source-visible data.

🔌 Integrations

  • Use the Apify API to start runs and pull JSON dataset items into your app.
  • Schedule repeat runs for weekly LinkedIn social listening, account monitoring, or reporting.
  • Export results as JSON, CSV, Excel, XML, RSS, or HTML from the dataset.
  • Send finished runs to webhooks, Make, Zapier, n8n, BI tools, CRMs, or data warehouses.

❓ FAQ

🔐 Do I need LinkedIn cookies?

No. You do not need to provide LinkedIn cookies, a LinkedIn login, a user agent, or an API key.

🔎 Can I search LinkedIn posts by keyword?

Yes. Add one or more Search queries, or paste a LinkedIn post-search URL into LinkedIn URLs. You can also narrow search results with author, company, industry, mention, content type, date, and page controls.

🏢 Can I export LinkedIn company posts?

Yes. Add LinkedIn company page URLs to LinkedIn URLs. The output can include company post text, source URLs, publish dates when visible, media, engagement counts, repost context, and optional comments or reactors.

👤 Can I track LinkedIn profile posts?

Yes. Add LinkedIn profile URLs to LinkedIn URLs. The Actor saves accepted posts from those profiles and keeps author context on each post row.

📣 Can I measure LinkedIn post engagement?

Yes. Each post row can include visible reaction, comment, and repost totals. If you enable paid enrichments, the Actor can also save visible comments and reactors nested on the post item.

🎯 Can I mix profiles, companies, direct posts, and search queries?

Yes. URL targets and search queries can be mixed in one run. The output keeps matchedInputs so you can see which target or search query found each post.

💬 Are comments and reactions separate dataset rows?

No. Comments, reactors, and author profile details stay nested on the saved post item. They are charged as saved enrichments, but they are not emitted as separate dataset rows.

📦 Will every post have comments, reactors, media, author profiles, and dates?

No. Those fields depend on what LinkedIn exposes for that post during the run and which paid enrichments you enable. Missing source data appears as null or an empty array.

🧩 Why not use the LinkedIn API?

The LinkedIn API is useful when you have approved API access for your own app and use case. This Actor is for Apify workflows where you need source-visible LinkedIn post data exported to a dataset, API, schedule, webhook, or integration.

🔁 What are LinkedIn alternatives?

For adjacent public social data, you can use actors for Facebook posts, Reddit posts and comments, Instagram profile stats, and cross-platform social media stats. Use this Actor when the source you need is LinkedIn post content.

📝 Changelog

  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré