Linkedin Post Scraper avatar

Linkedin Post Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Linkedin Post Scraper

Linkedin Post Scraper

๐Ÿ“ LinkedIn Post Scraper (linkedin-post-scraper) extracts public posts: text, author, date, reactions, comments, shares, hashtags & media URLs. ๐Ÿ“Š Ideal for content research, competitor tracking, social listening & lead gen. โšก Fast, reliable, CSV/JSON-ready. #LinkedIn

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeLabs

ScrapeLabs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

Linkedin Post Scraper

The Linkedin Post Scraper is a fast, reliable LinkedIn post extractor that collects public post content, authors, timestamps, images, reactions, and comments from LinkedIn company and personal profile URLs. It helps you scrape LinkedIn posts at scale for content research, competitor tracking, and social listening โ€” ideal for marketers, developers, data analysts, and researchers. With a focus on clean exports and automation, it enables repeatable LinkedIn feed scraper workflows without browser extensions.

What data / output can you get?

This LinkedIn post scraping tool outputs structured JSON for each post, ready to export LinkedIn posts to CSV, JSON, or Excel. Below are real fields the actor writes to the Apify dataset:

Data fieldDescriptionExample
urnStable post identifier derived from activity URLurn:li:activity:7234567890123456789
textPost text contentโ€œExcited to announce our new product launch!โ€
urlCanonical post URL (when available in page data)https://www.linkedin.com/feed/update/urn:li:activity:7234567890123456789
postedAtTimestampMilliseconds since epoch (UTC)1742299200000
postedAtISOISO timestamp2026-03-18T12:00:00.000Z
timeSincePostedRelative time helper2d
authorTypeโ€œCompanyโ€ or โ€œPersonโ€Company
authorProfileUrlSource profile or company URL that was scrapedhttps://www.linkedin.com/company/google/
authorProfileIdAuthor identifier (derived from URL or author data)google
authorFullNameAuthor display name from page metadataGoogle
authorHeadlineAuthor/company description from page metadataโ€œOur mission is toโ€ฆโ€
typePost type inferred from media (โ€œimageโ€ or โ€œtextโ€)image
imagePrimary image URL if presenthttps://media.licdn.com/dms/image/โ€ฆ
imagesArray of image URLs extracted from the post["https://media.licdn.com/dms/image/โ€ฆ"]
author.firstNameAuthorโ€™s first name (for Person)Sundar
author.lastNameAuthorโ€™s last name (for Person)Pichai
author.publicIdPublic ID derived from the URLgoogle
numLikesParsed like/reaction count152
numCommentsParsed comment count12
numSharesShare count field (defaults to 0 when unavailable)0
commentsArray of comment objects with author and text[{"text": "Congrats!", โ€ฆ}]
reactionsArray of reaction objects with reactor profiles[{"type": "LOVE", โ€ฆ}]
attributesMentions extracted from text/HTML (PROFILE_MENTION)[{"type":"PROFILE_MENTION", โ€ฆ}]
commentsTruncatedTrue if only a subset of comments are includedtrue
commentsCompleteTrue if all comments are includedfalse
reactionsTruncatedTrue if only a subset of reactions are includedtrue
canReact / canPostComments / canShareCapability flags (booleans)true
commentingDisabledWhether comments are disabledfalse
allowedCommentersScopeCommenting scopeALL
rootShareWhether the post is a root sharetrue
shareAudiencePost audiencePUBLIC

Notes:

  • When โ€œraw dataโ€ is enabled in input, each post also includes rawHtml containing the underlying HTML document.
  • Exports are available in JSON, CSV, or Excel via Apify Dataset. A full JSON array is also saved to the key-value store as linkedin_posts.json.

Key features

  • โšก Fast public post extraction
    Collects post text, timestamps, images, comments, and reactions from public LinkedIn pages โ€” a dependable LinkedIn post extractor for research and monitoring.

  • ๐Ÿ” Deep engagement capture
    Enable deepScrape to enrich output with more engagement details like reactions and comments, making it a capable LinkedIn post reactions scraper and LinkedIn post comments scraper.

  • ๐Ÿ—“๏ธ Date cutoff filtering
    Use scrapeUntil to include only posts from a specified date onward โ€” perfect for time-bounded LinkedIn post analytics scraper workflows.

  • ๐Ÿ“ฆ Clean, structured outputs
    Dataset-ready JSON with stable field names and arrays (comments, reactions, images). Easily export LinkedIn posts to CSV, JSON, or Excel.

  • ๐Ÿงช Raw HTML (advanced)
    Toggle rawData to include rawHtml for each post โ€” ideal for custom parsing, QA, or building your own LinkedIn post scraping tool logic downstream.

  • ๐Ÿ“š Batch scraping control
    Limit results per source with limitPerSource to build reliable pipelines across multiple profiles โ€” a practical LinkedIn profile posts scraper for teams.

  • ๐ŸŒ Proxy-ready reliability
    Optional proxyConfiguration for robust, production-grade runs with fewer rate-limit issues.

  • ๐Ÿ”Œ API-friendly and automation-ready
    Run via the Apify API and integrate with n8n or Make.com. Developers can plug results into a LinkedIn post scraper Python workflow for analytics, enrichment, or BI.

  • ๐Ÿงฉ No browser extension required
    Server-side actor โ€” no LinkedIn post scraper Chrome extension needed. More stable than ad-hoc tools and easier to automate.

How to use Linkedin Post Scraper - step by step

  1. Sign in to Apify
    Create or log in to your Apify account.

  2. Open the actor
    Find โ€œlinkedin-post-scraperโ€ in the Apify Store and click Try for free.

  3. Add input URLs
    Paste one or more LinkedIn company or personal profile URLs into urls (e.g., https://www.linkedin.com/company/google/). Multiple sources are supported.

  4. Configure limits and date
    Set limitPerSource to control the number of posts per URL. Optionally set scrapeUntil (YYYY-MM-DD) to filter for newer posts only.

  5. Choose data depth
    Keep deepScrape enabled to capture richer engagement details. Enable rawData if you need rawHtml for each post.

  6. Set proxy (optional)
    Add proxyConfiguration for improved stability and to avoid rate limits (recommended for higher-volume runs).

  7. Run the actor
    Click Start. The actor fetches each URL and collects posts. Status logs will show progress per source and totals.

  8. Download results
    Go to the Dataset tab to export LinkedIn posts in JSON, CSV, or Excel. Youโ€™ll also find a combined JSON array saved as linkedin_posts.json in the key-value store.

Pro tip: Use the Apify API to schedule runs and pipe results into your data warehouse, or connect with n8n/Make for an automated LinkedIn feed scraper pipeline.

Use cases

Use caseDescription
Social listening & brand monitoringTrack public posts, comments, and reactions to measure sentiment and engagement over time.
Competitor content trackingCompare posting cadence, topics, and engagement across companies or thought leaders.
Content research & analyticsBuild a dataset of post text and media for topic analysis, benchmarking, and LinkedIn post analytics scraper workflows.
Campaign performance reviewAggregate reactions and comments to assess content resonance without manual copy-paste.
Lead gen & outreach enrichmentUse public posts to personalize outreach and identify active accounts for follow-up.
Editorial planningIdentify themes that drive engagement and plan your editorial calendar accordingly.
Academic & market researchCollect public content for longitudinal studies, content trends, and network analysis.
API pipeline for ML/NLPFeed exported posts into a LinkedIn post scraper Python pipeline for classification, clustering, or sentiment models.

Why choose Linkedin Post Scraper?

The Linkedin Post Scraper is built for precision, automation, and stability at scale.

  • โœ… Accurate public data extraction: Structured fields for posts, comments, and reactions โ€” no messy parsing downstream.
  • ๐ŸŒ Scalable across profiles: Control batch size per source and iterate across multiple URLs reliably.
  • ๐Ÿ’ป Developer-friendly: Works seamlessly with the Apify API and can power a LinkedIn post scraping tool or Python pipeline.
  • ๐Ÿ”Œ Automation integrations: Natively fits into Make.com and n8n workflows for hands-free operation.
  • ๐Ÿ›ก๏ธ Safe and responsible: Targets publicly available posts only; no login or private data access.
  • ๐Ÿ’พ Easy exports: Export LinkedIn posts to JSON, CSV, or Excel for BI and enrichment.
  • ๐Ÿ†š Better than extensions: Server-side infrastructure is more reliable than a LinkedIn post scraper Chrome extension or manual tools.

In short, itโ€™s a production-ready LinkedIn feed scraper that prioritizes clean structure, repeatability, and integration.

Is it legal / ethical to use Linkedin Post Scraper?

Yes โ€” when used responsibly. This actor collects publicly available LinkedIn content from company and personal profile pages. It does not log in, access private data, or bypass authentication.

Guidelines for responsible use:

  • Scrape only public pages and content youโ€™re allowed to process.
  • Respect LinkedInโ€™s terms and applicable regulations (e.g., GDPR, CCPA).
  • Avoid using data for spam or other unethical activities.
  • Consult your legal team for edge cases or jurisdiction-specific requirements.

Input parameters & output format

Example input

{
"urls": ["https://www.linkedin.com/company/google/"],
"limitPerSource": 10,
"scrapeUntil": "2026-03-01",
"deepScrape": true,
"rawData": false,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Input parameters

  • urls (array, required): Add LinkedIn company or person profile URLs to scrape โ€” one or many! Default: none (required).
  • limitPerSource (integer): How many posts to collect from each URL (minimum 1). Default: 10.
  • scrapeUntil (string, nullable): Filter posts โ€” only include content from this date onwards (YYYY-MM-DD). Default: null.
  • deepScrape (boolean): Get richer data โ€” more metadata & engagement details. Default: true.
  • rawData (boolean): Include extra raw data (rawHtml) in the output for power users. Default: false.
  • proxyConfiguration (object, nullable): Optional proxy configuration for reliability and rate-limit avoidance. Default: null.

Example output (one post)

{
"urn": "urn:li:activity:7234567890123456789",
"text": "Excited to announce our new product launch!",
"url": "https://www.linkedin.com/feed/update/urn:li:activity:7234567890123456789",
"postedAtTimestamp": 1742299200000,
"postedAtISO": "2026-03-18T12:00:00.000Z",
"timeSincePosted": "2d",
"isRepost": false,
"authorType": "Company",
"authorProfileUrl": "https://www.linkedin.com/company/google/",
"authorProfileId": "google",
"authorHeadline": "Our mission is to organize the worldโ€™s information and make it universally accessible and useful.",
"authorFullName": "Google",
"image": "https://media.licdn.com/dms/image/ABC123",
"type": "image",
"images": [
"https://media.licdn.com/dms/image/ABC123"
],
"author": {
"firstName": null,
"lastName": null,
"occupation": "Our mission is to organize the worldโ€™s information and make it universally accessible and useful.",
"id": "google",
"publicId": "google",
"trackingId": "Y29uZmlnLWlkLTEyMw",
"profileId": "google",
"picture": "https://media.licdn.com/dms/image/DEF456",
"backgroundImage": ""
},
"authorName": "Google",
"authorTitle": "Our mission is to organize the worldโ€™s information and make it universally accessible and useful.",
"attributes": [
{
"start": 0,
"length": 7,
"type": "PROFILE_MENTION",
"profile": {
"firstName": "alice",
"lastName": "",
"occupation": "",
"id": "user-0",
"publicId": "alice",
"trackingId": "YWJjLXRyYWNrLTEyMw",
"profileId": "user-0",
"picture": "",
"backgroundImage": ""
}
}
],
"comments": [
{
"time": 1742461200000,
"link": "https://www.linkedin.com/feed/update/urn:li:activity:7234567890123456789",
"text": "Congrats!",
"entities": [],
"pinned": false,
"originalLanguage": "English",
"author": {
"firstName": "Jane",
"lastName": "Doe",
"occupation": "",
"id": "commenter-a1b2c3d4e5f6",
"publicId": "jane-doe",
"trackingId": "ZXhhbXBsZS10cmFjay0x",
"profileId": "commenter-a1b2c3d4e5f6",
"picture": "",
"backgroundImage": "",
"distance": "OUT_OF_NETWORK"
}
}
],
"reactions": [
{
"type": "LOVE",
"profile": {
"firstName": "John",
"lastName": "Smith",
"occupation": "",
"id": "reactor-0a1b2c3d4e5f",
"publicId": "john-smith",
"trackingId": "cmVhY3Rvci10cmFjay0y",
"profileId": "ACoAA0a1b2c3d",
"picture": "",
"backgroundImage": ""
}
}
],
"numShares": 0,
"numLikes": 152,
"numComments": 12,
"commentsTruncated": true,
"commentsComplete": false,
"reactionsTruncated": true,
"canReact": true,
"canPostComments": true,
"canShare": true,
"commentingDisabled": false,
"allowedCommentersScope": "ALL",
"rootShare": true,
"shareAudience": "PUBLIC"
}

Notes:

  • When rawData is true, each post also includes "rawHtml".
  • The actor saves all posts to the default Dataset and writes the full array to the key-value store key linkedin_posts.json.

FAQ

Do I need to log in to scrape LinkedIn posts?

No. The actor targets publicly available LinkedIn content and does not require login. It collects posts from public company and personal profile pages.

Which LinkedIn URLs are supported?

Company pages, personal profile pages, and feed URLs are supported. Direct post-only links, groups, schools, or hashtag feeds are not supported by this actor and will be treated as unsupported URL types.

Can it scrape comments and reactions?

Yes. It extracts comment objects (with authors and text) and reaction objects (with reactor profiles and reaction type such as LIKE, LOVE, CELEBRATE, SUPPORT, FUNNY, INSIGHTFUL) when present on the public page.

How do I export results to CSV or Excel?

After the run, open the Dataset and use Apifyโ€™s built-in export to download CSV, JSON, or Excel. A combined JSON array is also saved as linkedin_posts.json in the key-value store.

Does it work with Python and APIs?

Yes. You can trigger and fetch results via the Apify API and process them in your own LinkedIn post scraper Python pipelines. This makes it easy to automate end-to-end analytics and enrichment workflows.

What does deepScrape change?

With deepScrape enabled, the actor attempts to enrich output with additional engagement details (e.g., more comments/reactions where available). Disable it for faster, lighter runs.

Can I filter posts by date?

Yes. Set scrapeUntil (YYYY-MM-DD) to include only posts on or after that date. The actor filters results by postedAtTimestamp during processing.

Is this better than a Chrome extension?

For automation and reliability, yes. This server-side LinkedIn post scraping tool avoids manual steps, runs at scale, supports proxies, and integrates with pipelines โ€” making it more stable than a LinkedIn post scraper Chrome extension.

Does it support LinkedIn company posts and profile posts?

Yes. It functions as a LinkedIn company posts scraper and a LinkedIn profile posts scraper, collecting public posts from both company and personal profile URLs.

Yes โ€” when scraping public data responsibly and in compliance with applicable laws and LinkedInโ€™s terms. It does not access private or authenticated content. Always ensure your use case is compliant.

Closing CTA / Final thoughts

The Linkedin Post Scraper is built to reliably collect public LinkedIn posts, comments, reactions, and images from company and personal profiles at scale. With clean JSON output, CSV/Excel exports, and automation-ready design, it empowers marketers, analysts, developers, and researchers to turn the public LinkedIn feed into structured insights. Run it via the Apify API, plug results into your LinkedIn post extractor Python workflow, or orchestrate with n8n/Make. Start extracting smarter, structured LinkedIn post data today.