LinkedIn Profile & Company Posts Scraper Pro avatar

LinkedIn Profile & Company Posts Scraper Pro

Pricing

from $1.00 / 1,000 results

Go to Apify Store
LinkedIn Profile & Company Posts Scraper Pro

LinkedIn Profile & Company Posts Scraper Pro

Scrape every post from any LinkedIn profile or company page: post text, media URLs, likes, comments, reposts, views, post URL, timestamp, and post type. Auto-pagination handles full feeds. No LinkedIn account or cookies needed. Export to JSON, CSV, or Excel, or run via API.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(3)

Developer

Atomus APIs

Atomus APIs

Maintained by Community

Actor stats

3

Bookmarked

68

Total users

40

Monthly active users

1.6 hours

Issues response

2 days ago

Last modified

Share

Scrape every post from any LinkedIn profile or company page: post text, media, engagement stats, author details, mentions, and repost data. Auto-pagination handles full feeds. Batch processing across multiple profiles and companies in a single run.

No LinkedIn account or cookies required.

๐Ÿ’ก For other LinkedIn tools by Dende Labs, check: https://apify.com/dendelabs


โœจ Key Features

FeatureDescription
๐Ÿ”„ Auto-paginationOne run extracts every post LinkedIn exposes. No manual page management.
๐Ÿ“ฆ Batch processingScrape posts from multiple profiles and company pages in a single run.
๐ŸŽฌ Full media supportCaptures images, videos, embedded articles, and carousel / document slide previews.
๐Ÿ“Š Engagement breakdownTotal reactions, comments, shares, and reaction-type counts (like, praise, empathy, interest, appreciation, entertainment).
๐Ÿ‘ค Author detailsName, headline, avatar, LinkedIn ID, custom website link.
๐Ÿ” Repost detectionDistinguishes simple reposts (no added text) from quote posts (with added commentary). Includes original author info.
๐Ÿ—“๏ธ Time and content filtersFilter by 24h / week / month, by absolute date, or by content type (videos, images, documents, jobs).
๐Ÿ†• Latest-post modeUse latestPostOnly to check if a profile posted recently without a full scrape.
๐Ÿ”— Flexible URL formatsProfile URLs, company URLs, or plain usernames all work.
๐Ÿ” No cookies neededNo risk of account restrictions or bans.

๐Ÿ“Š What data can this Actor extract from LinkedIn?

For every post on a target profile or company page, this LinkedIn Posts Scraper extracts:

Data categoryFields
Post contentPost text, post URL, share URL, post type, timestamp, relative "posted ago" date
MediaImage URLs, video URL, embedded article (title, summary, link), document / carousel slides
EngagementTotal reactions, comments count, shares count, per-type reaction breakdown
AuthorName, headline, avatar, LinkedIn URL, LinkedIn ID, website URL, website label
MentionsPerson and company mentions inside post text (with URL, name, type, and offset)
Repost datais_repost flag, original author info, reposter info on quote posts

See the Output section for the full JSON schema with examples.


๐Ÿš€ How to scrape LinkedIn posts from any profile or company

  1. Pick your target. Paste one or more LinkedIn profile URLs into profiles or company page URLs into companies. You can mix full URLs and plain usernames freely.
  2. Set your scope. Optional: cap maxPosts per source, filter by postedLimit (24h, week, month), or filter by postedAfterDate (ISO format such as 2026-01-01).
  3. Pick a content type. Optional: filter to videos, images, documents, jobs, or leave as all.
  4. Run the Actor. Click Start. Watch progress in the run log.
  5. Export the data. Download the dataset in JSON, CSV, or Excel, or pull it via the Apify API.

For continuous and programmatic use, the Apify platform handles scheduling, proxy rotation, monitoring, dataset storage, and integrations with Zapier, Make, n8n, Slack, and webhooks out of the box.


๐Ÿ“ฅ Input

Quick Start

{
"profiles": ["https://www.linkedin.com/in/satyanadella/"]
}

All Parameters

ParameterTypeRequiredDefaultDescription
profilesstring[]At least one of profiles or companies[]LinkedIn profile URLs or usernames
companiesstring[]At least one of profiles or companies[]LinkedIn company page URLs or usernames
maxPostsintegerNo0Max posts per source. 0 means unlimited.
postedLimitstringNononeTime filter: 24h, week, month.
postedAfterDatestringNo-Only posts after this date (ISO format, e.g. 2026-01-01).
contentTypestringNoallFilter: videos, images, documents, jobs.
sortBystringNodateSort by date (newest first) or relevance (LinkedIn ranking).
latestPostOnlybooleanNofalseOnly fetch the most recent post per source.
includeSharedPostsbooleanNotrueInclude quote posts (the user reposted and added their own text).
includeRepostsbooleanNotrueInclude simple reposts (shared as is, no added text).

Supported URL Formats

All of these work, just paste whatever you have:

โœ… https://www.linkedin.com/in/satyanadella/
โœ… https://linkedin.com/in/satyanadella
โœ… satyanadella
โœ… https://www.linkedin.com/company/microsoft/
โœ… https://linkedin.com/company/microsoft
โœ… microsoft

๐Ÿ“ค Output

The dataset contains one record per post, with type: "post".

Post

{
"type": "post",
"author_name": "Satya Nadella",
"content": "Today at Microsoft Build...",
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:123/",
"posted_at": "2026-03-15T14:30:00.000Z",
"posted_ago": "2 weeks ago",
"is_repost": false,
"images": ["https://media.licdn.com/..."],
"video_url": null,
"article": null,
"doc": null,
"mentions": [
{
"start": 0,
"length": 9,
"type": "COMPANY_NAME",
"url": "https://www.linkedin.com/company/microsoft/",
"name": "Microsoft"
}
],
"share_url": "https://www.linkedin.com/posts/...",
"engagement": {
"total_reactions": 15234,
"comments": 892,
"shares": 1205,
"reactions": [
{ "type": "LIKE", "count": 10000 },
{ "type": "PRAISE", "count": 3000 }
]
},
"author": {
"name": "Satya Nadella",
"username": "satyanadella",
"headline": "Chairman and CEO at Microsoft",
"linkedinUrl": "https://www.linkedin.com/in/satyanadella/",
"avatar": "https://media.licdn.com/...",
"linkedin_id": "ACoAAA8BYqEBCGLg...",
"website_url": "https://example.com",
"website_label": "My website"
},
"reposted_by": null,
"_metadata": {
"post_id": "7302346926123798528",
"extracted_at": "2026-03-30T12:00:00.000Z",
"source_url": "https://www.linkedin.com/in/satyanadella/"
}
}

Carousel / Document Post

When a post contains a document or carousel slides, the doc field is populated:

{
"doc": {
"title": "How we grew 10x in 6 months",
"pdf_url": "https://media.licdn.com/dms/document/...",
"slide_images": [
"https://media.licdn.com/.../0/...",
"https://media.licdn.com/.../1/...",
"https://media.licdn.com/.../2/..."
],
"total_slides": 7
}
}

slide_images contains cover previews (up to 3). Use pdf_url to access the full document.

Repost (quote post)

When the post is a quote repost, is_repost is true and reposted_by carries the original author's info:

{
"is_repost": true,
"content": "Great insight, agree completely.",
"reposted_by": {
"author_name": "Original Author",
"author_url": "https://www.linkedin.com/in/original-author/",
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:456/",
"content": "Original post text..."
}
}

๐Ÿ“Œ Examples

Example 1: Multiple profiles and companies

{
"profiles": ["satyanadella", "jeffweiner08"],
"companies": ["microsoft", "google"],
"maxPosts": 50
}

Example 2: Only original posts (no reposts)

{
"profiles": ["satyanadella"],
"includeReposts": false,
"includeSharedPosts": false
}

Example 3: Posts after a specific date

{
"profiles": ["satyanadella"],
"postedAfterDate": "2026-01-01"
}

Example 4: Quick activity check

Use latestPostOnly to check if a profile posted recently without scraping everything:

{
"profiles": ["satyanadella"],
"latestPostOnly": true
}

Example 5: Only video posts from the last week

{
"companies": ["microsoft"],
"contentType": "videos",
"postedLimit": "week"
}

Example 6: Sort by relevance, top 10 per profile

{
"profiles": ["satyanadella", "jeffweiner08"],
"sortBy": "relevance",
"maxPosts": 10
}

๐Ÿ’ฐ How much does it cost to scrape LinkedIn posts?

This LinkedIn Posts Scraper uses Apify's pay-per-event pricing. You pay per dataset item, and one item equals one scraped post. The exact per-post price is shown above the Actor on Apify Store.

What this means for you:

  • Free tier: every Apify account gets a monthly platform credit, so you can try this Actor for free.
  • Predictable cost: 1,000 posts equals 1,000 events. No surprise overruns.
  • No cost for invalid sources: private, deleted, or invalid LinkedIn URLs do not produce dataset items, so they do not bill.
  • Cap your spend: set maxPosts per source to bound the run cost, or use latestPostOnly: true for cheap activity checks.

๐ŸŽฏ Use Cases

  • ๐Ÿ”Ž Sales prospecting: build prospect lists from posts on competitor profiles or industry leaders.
  • ๐Ÿ“Š Content monitoring: track what executives, founders, or thought leaders are publishing in your space.
  • ๐Ÿ† Competitor analysis: compare engagement patterns across competitor company pages.
  • ๐Ÿ“‹ Lead enrichment: combine post data with the Comments Scraper and Reactions Scraper to map full engagement.
  • ๐Ÿ“ˆ Content strategy: spot the post types and topics that drive reactions in your industry.
  • ๐Ÿค– AI agent context: feed structured post data into LLM agents for summarization, classification, or trend detection.
  • ๐Ÿ“ฐ Brand and PR monitoring: watch a company page for product announcements, releases, or PR events.
  • ๐Ÿ“š Research and journalism: collect public statements made by public figures over time.

๐Ÿค– Integration with AI Agents

This Actor is optimized for AI agents and LLMs via the Apify MCP server.

Output Schema

The dataset is flat. Every record is a single post (type: "post"). Iterate or filter directly. Key fields useful for agents:

  • content: post text
  • author.name, author.headline: who posted and their professional context
  • engagement.total_reactions, engagement.comments, engagement.shares: engagement signal
  • posted_at, posted_ago: when the post was published
  • is_repost, reposted_by: whether the author shared someone else's content
  • mentions: people and companies tagged inside the post

Example Agent Prompt

"Scrape Satya Nadella's last 50 LinkedIn posts and return the top 5 by total reactions. Summarize the key topics and flag any product announcements."

For cheap exploratory checks, the agent can use latestPostOnly: true or maxPosts: 50 to bound cost.


๐Ÿ”— Other LinkedIn Scrapers by Dende Labs

Pair this LinkedIn Posts Scraper with our other LinkedIn tools to map full engagement:

ActorWhat it does
LinkedIn Post Comments & Replies Scraper ProExtract every comment and reply on a LinkedIn post, with reaction counts and reply tracking.
LinkedIn Post Reactions Scraper ProExtract every reactor on a LinkedIn post (name, headline, profile URL, reaction type).
LinkedIn Profile EnricherEnrich a list of LinkedIn profiles with full headline, location, experience, and contact data.

See all our LinkedIn scrapers at apify.com/dendelabs.


โ“ FAQ

Do I need a LinkedIn account or cookies to scrape LinkedIn posts?

No. This Actor uses public LinkedIn data only. You will not risk account restrictions or bans, and you do not need to provide a li_at cookie.

Is there an official LinkedIn API for posts?

LinkedIn's official Posts API requires a Marketing Developer Platform partnership and is restricted to approved partners. This Actor is a public-data alternative that does not require partnership approval.

This Actor only collects publicly visible data. Scraping public data has been ruled lawful under the U.S. Computer Fraud and Abuse Act (hiQ Labs v. LinkedIn). Always review your local laws and LinkedIn's terms before using extracted data for commercial purposes, and comply with applicable data protection laws (GDPR, CCPA).

How many posts can I scrape per profile?

LinkedIn paginates profile posts publicly. The Actor follows pagination as far as LinkedIn exposes. For very high-volume profiles, set a maxPosts cap to control cost.

Can I scrape posts from a private profile?

No. Private profiles are not publicly visible, so this Actor cannot extract posts from them.

What happens if a profile URL is invalid or deleted?

The Actor logs an error and continues with the remaining sources. No dataset item is produced for invalid URLs, so you are not billed for them.

Can I sort posts by date or relevance?

Yes. Use sortBy: "date" (default) for newest first or sortBy: "relevance" for LinkedIn's own ranking.

How do I include or exclude reposts?

Use includeReposts: false to exclude simple reshares (no added text), and includeSharedPosts: false to exclude quote posts (where the user adds their own commentary).

Can I run this LinkedIn Posts Scraper on a schedule?

Yes. Apify Schedules let you run the Actor on cron-style intervals. Combine with webhooks to push fresh data to your own systems.

How do I integrate this with my own app or pipeline?

Use the Apify API to start runs and pull dataset results. The Actor also supports webhooks on run completion and integrates with Zapier, Make, n8n, and Slack out of the box.

Why are some posts missing fields like images or video_url?

Different post types expose different fields. A text-only post has no images or video_url. A carousel post has doc.slide_images but no images. This is normal LinkedIn behavior.

Can I use this to extract data in Python or JavaScript?

Yes. The Apify API has official clients in Python and JavaScript. Run the Actor, fetch the dataset, and use it in your code.


โš ๏ธ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. LinkedInยฎ is a registered trademark of LinkedIn Corporation. All trademarks are property of their respective owners.

Use the data extracted by this Actor in compliance with applicable data protection laws (GDPR, CCPA, etc.) and LinkedIn's terms of service. Do not use the data for spam, harassment, or unlawful purposes.