Linkedin Post Scraper
Pricing
$19.99/month + usage
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
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 field | Description | Example |
|---|---|---|
| urn | Stable post identifier derived from activity URL | urn:li:activity:7234567890123456789 |
| text | Post text content | โExcited to announce our new product launch!โ |
| url | Canonical post URL (when available in page data) | https://www.linkedin.com/feed/update/urn:li:activity:7234567890123456789 |
| postedAtTimestamp | Milliseconds since epoch (UTC) | 1742299200000 |
| postedAtISO | ISO timestamp | 2026-03-18T12:00:00.000Z |
| timeSincePosted | Relative time helper | 2d |
| authorType | โCompanyโ or โPersonโ | Company |
| authorProfileUrl | Source profile or company URL that was scraped | https://www.linkedin.com/company/google/ |
| authorProfileId | Author identifier (derived from URL or author data) | |
| authorFullName | Author display name from page metadata | |
| authorHeadline | Author/company description from page metadata | โOur mission is toโฆโ |
| type | Post type inferred from media (โimageโ or โtextโ) | image |
| image | Primary image URL if present | https://media.licdn.com/dms/image/โฆ |
| images | Array of image URLs extracted from the post | ["https://media.licdn.com/dms/image/โฆ"] |
| author.firstName | Authorโs first name (for Person) | Sundar |
| author.lastName | Authorโs last name (for Person) | Pichai |
| author.publicId | Public ID derived from the URL | |
| numLikes | Parsed like/reaction count | 152 |
| numComments | Parsed comment count | 12 |
| numShares | Share count field (defaults to 0 when unavailable) | 0 |
| comments | Array of comment objects with author and text | [{"text": "Congrats!", โฆ}] |
| reactions | Array of reaction objects with reactor profiles | [{"type": "LOVE", โฆ}] |
| attributes | Mentions extracted from text/HTML (PROFILE_MENTION) | [{"type":"PROFILE_MENTION", โฆ}] |
| commentsTruncated | True if only a subset of comments are included | true |
| commentsComplete | True if all comments are included | false |
| reactionsTruncated | True if only a subset of reactions are included | true |
| canReact / canPostComments / canShare | Capability flags (booleans) | true |
| commentingDisabled | Whether comments are disabled | false |
| allowedCommentersScope | Commenting scope | ALL |
| rootShare | Whether the post is a root share | true |
| shareAudience | Post audience | PUBLIC |
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
-
Sign in to Apify
Create or log in to your Apify account. -
Open the actor
Find โlinkedin-post-scraperโ in the Apify Store and click Try for free. -
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. -
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. -
Choose data depth
Keep deepScrape enabled to capture richer engagement details. Enable rawData if you need rawHtml for each post. -
Set proxy (optional)
Add proxyConfiguration for improved stability and to avoid rate limits (recommended for higher-volume runs). -
Run the actor
Click Start. The actor fetches each URL and collects posts. Status logs will show progress per source and totals. -
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 case | Description |
|---|---|
| Social listening & brand monitoring | Track public posts, comments, and reactions to measure sentiment and engagement over time. |
| Competitor content tracking | Compare posting cadence, topics, and engagement across companies or thought leaders. |
| Content research & analytics | Build a dataset of post text and media for topic analysis, benchmarking, and LinkedIn post analytics scraper workflows. |
| Campaign performance review | Aggregate reactions and comments to assess content resonance without manual copy-paste. |
| Lead gen & outreach enrichment | Use public posts to personalize outreach and identify active accounts for follow-up. |
| Editorial planning | Identify themes that drive engagement and plan your editorial calendar accordingly. |
| Academic & market research | Collect public content for longitudinal studies, content trends, and network analysis. |
| API pipeline for ML/NLP | Feed 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.
Is it legal to use?
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.