LinkedIn Post Scraper
Pricing
$19.99/month + usage
LinkedIn Post Scraper
✨ Scrape LinkedIn posts from public profiles and pages with this Apify Actor. Extract content, timestamps, reactions, and engagement data quickly. Ideal for research, lead generation, and content tracking. Features: ⚡ fast scraping • 📊 clean data • 🔍 insights • 🌍 scalable automation
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperX
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
17 days ago
Last modified
Categories
Share
LinkedIn Post Scraper
The LinkedIn Post Scraper is a fast, reliable LinkedIn post extractor that lets you scrape LinkedIn posts from public company pages, personal profiles, and feeds — capturing text, timestamps, images, comments, and reactions at scale. It solves the manual, error-prone work of monitoring content by providing a LinkedIn content scraper built for marketers, developers, data analysts, and researchers. With this LinkedIn post scraper tool, you can automate engagement tracking, enrich analytics, and export LinkedIn posts data into your pipelines with confidence.
What data / output can you get?
Below are real output fields this LinkedIn post data extractor saves to your dataset and to a JSON file. Results are pushed item-by-item during the run and the full array is saved at the end for easy downloads (export to JSON, CSV, or Excel on Apify).
| Data type | Description | Example value |
|---|---|---|
| urn | Unique LinkedIn URN for the post | urn:li:activity:1234567890 |
| text | Post text content | “We’re hiring data engineers in Berlin! Apply below.” |
| url | Canonical URL to the post | https://www.linkedin.com/feed/update/urn:li:activity:1234567890 |
| postedAtTimestamp | Unix timestamp in milliseconds | 1712246400000 |
| postedAtISO | ISO-8601 timestamp | 2024-04-04T10:00:00.000Z |
| timeSincePosted | Humanized relative time | 3d |
| authorType | Author classification | Company |
| authorProfileUrl | Source page the posts were collected from | https://www.linkedin.com/company/google/ |
| authorProfileId | Author profile identifier inferred from URL or data | |
| authorFullName | Author/company/person name (when available) | |
| authorHeadline | Author/company summary/description (when available) | “Search the world's information...” |
| type | Detected post type by media presence | image |
| image | Primary image URL (if detected) | https://media.licdn.com/.../post-image.jpg |
| images | Array of image URLs (if detected) | ["https://media.licdn.com/.../1.jpg"] |
| author | Nested author object (name, IDs, picture, etc.) | { "firstName": "Sundar", "publicId": "google", ... } |
| attributes | Extracted profile mentions in text/HTML | [ { "type": "PROFILE_MENTION", "profile": { ... } } ] |
| comments | Sampled comments array with author metadata | [ { "text": "Congrats!", "author": { ... } } ] |
| reactions | Sampled reactions array with reactor profiles | [ { "type": "LIKE", "profile": { ... } } ] |
| numShares | Share count (best-effort; default 0) | 0 |
| numLikes | Reactions/likes count (best-effort parse) | 128 |
| numComments | Comment count (best-effort parse) | 14 |
| commentsTruncated | Indicates comments list is a sample | true |
| commentsComplete | Indicates if all comments are present | false |
| reactionsTruncated | Indicates reactions list is a sample | true |
| canReact | Permission flag | true |
| canPostComments | Permission flag | true |
| canShare | Permission flag | true |
| commentingDisabled | Indicates if commenting is disabled | false |
| allowedCommentersScope | Allowed commenters scope | ALL |
| rootShare | Indicates if item is a root share | true |
| shareAudience | Audience visibility | PUBLIC |
| rawHtml | Raw HTML of the page (only when rawData=true) | "..." |
Notes:
- When deepScrape is enabled, the LinkedIn post engagement scraper explores more post pages to enrich reactions and comments.
- If rawData is enabled, each record also includes rawHtml for advanced parsing.
- You can export datasets to JSON, CSV, or Excel directly from your Apify run.
Key features
-
⚡ Fast, scalable extraction
Optimized HTTP client with retries/backoff and optional async crawling for rapid discovery — ideal as a LinkedIn feed scraper when you need larger coverage. -
🔎 Deep scraping toggle
Enable deepScrape to traverse post pages and enrich each item with more engagement details (comments and reactions) for comprehensive analysis. -
💬 Comments & reactions capture
Works as a LinkedIn post comments scraper to include sampled comments and a reactions collector with basic reactor profiles for each interaction. -
🗓️ Date filtering
Use scrapeUntil to include only posts from a specific date onward, focusing your analytics on the most relevant time window. -
🌐 Proxy configuration
Built-in support for Apify proxy configuration improves reliability and helps avoid rate limits — perfect for continuous automations. -
📦 Clean, structured output
Consistent JSON with author details, timestamps, images, engagement counts, and policy flags — ready for BI and downstream pipelines. -
🤖 Automation-ready workflows
Designed to run via the Apify API and connect with n8n or Make.com — no LinkedIn post scraper Chrome extension or browser automation required. -
👨💻 Developer friendly
Trigger runs via the Apify API and integrate with backends or LinkedIn post scraper Python workflows for production-grade pipelines. -
🛡️ Public data only
Targets publicly available pages and content; the actor does not handle login or cookies for a safer, compliant approach.
How to use LinkedIn Post Scraper - step by step
- Sign up or log in to your Apify account.
- Open the LinkedIn Post Scraper actor in the Apify Store.
- Add input data:
- Paste one or more LinkedIn URLs into urls (company pages, personal profiles, or feeds). Example: https://www.linkedin.com/company/google/
- Configure settings:
- limitPerSource: Set how many posts to collect per source (default 10).
- scrapeUntil: Optionally filter by date (YYYY-MM-DD) to include only posts from that date onward.
- deepScrape: Enable to explore post pages and enrich comments/reactions; disable for a quick sweep.
- rawData: Enable to include rawHtml in each record for custom parsing.
- proxyConfiguration: Optionally add proxy settings for better reliability.
- Start the run:
- The logs show each source and every saved item. With deepScrape on, the actor explores additional post pages for more engagement data.
- Review results:
- Dataset: Each post is pushed as a separate item in your run dataset in real time.
- Key-value store: A full array is saved to linkedin_posts.json for bulk download.
- Export or integrate:
- Export as JSON, CSV, or Excel from the dataset, or trigger via the Apify API to automate and export LinkedIn posts data at scale.
Pro tip: Turn on deepScrape for richer engagement and wire the dataset into n8n or Make.com for automated reporting or CRM enrichment.
Use cases
| Use case name | Description |
|---|---|
| Social media monitoring for brands | Track company and competitor posts to measure engagement trends and benchmark content performance over time. |
| Content strategy for marketers | Aggregate public posts, images, and timestamps to inform topics and formats that drive reactions and comments. |
| Recruitment marketing insights | Collect public posts from employer-brand pages to study hiring announcements and audience feedback. |
| Competitive intelligence | Monitor public updates from peers’ profiles and pages to understand positioning and messaging shifts. |
| Academic & trend research | Build datasets of public posts for topic modeling, sentiment analysis, and time-series studies. |
| API pipelines & data engineering | Trigger via the Apify API and feed structured post data into ETL, warehouses, and dashboards. |
| CRM/BI enrichment | Export to CSV/JSON/Excel for analytics and engagement reporting in your BI stack. |
Why choose LinkedIn Post Scraper?
A production-ready LinkedIn post scraping software focused on precision, scale, and automation across public pages and profiles.
- ✅ Accurate public data extraction: Captures text, images, timestamps, and engagement using structured signals and best-effort parsing.
- 🌍 Scales across sources: Configure per-source limits and use deepScrape to traverse more posts per company or profile.
- 👨💻 Developer access: Run via the Apify API and integrate with a LinkedIn post scraper Python or backend workflow effortlessly.
- 🔌 Workflow integrations: Connect outputs to n8n and Make.com — no brittle browser plugins or extensions required.
- 🛡️ Safer, compliant approach: Scrapes only publicly available content; no authenticated access is used by this actor.
- 💰 Cost-effective reliability: Built on Apify infrastructure with proxy support for resilience and rate-limit handling.
In short, it’s a robust LinkedIn post extractor that outperforms manual tools and unstable extensions for ongoing, automated monitoring.
Is it legal / ethical to use LinkedIn Post Scraper?
Yes — when used responsibly. This actor targets publicly available content on LinkedIn company pages, profiles, and feeds. It does not access private profiles or require authentication.
Guidelines:
- Only collect public information and respect platform norms.
- Ensure your use complies with data protection laws (e.g., GDPR, CCPA) and your organizational policies.
- Avoid republishing personal data without a lawful basis.
- Consult your legal team for edge cases, especially at large scale or when combining datasets.
Input parameters & output format
Example JSON input
{"urls": ["https://www.linkedin.com/company/google/"],"limitPerSource": 10,"scrapeUntil": "2026-03-01","deepScrape": true,"rawData": false,"proxyConfiguration": {"useApifyProxy": true}}
Parameters
- urls (array of string) — Add LinkedIn company or person profile URLs to scrape — one or many! Required: Yes. Default: none.
- limitPerSource (integer) — How many posts to collect from each URL. More = more data! Required: No. Default: 10 (minimum 1).
- scrapeUntil (string, pattern YYYY-MM-DD) — Filter posts — only include content from this date onwards. Required: No. Default: null.
- deepScrape (boolean) — Scrape additional information for richer metadata & engagement details. Required: No. Default: true.
- rawData (boolean) — Include extra raw data in output (adds rawHtml). Required: No. Default: false.
- proxyConfiguration (object) — Optional — use proxy for better reliability & to avoid rate limits. Required: No. Default: null.
Example JSON output (single post)
{"urn": "urn:li:activity:1234567890","text": "We’re hiring data engineers in Berlin! Apply below.","url": "https://www.linkedin.com/feed/update/urn:li:activity:1234567890","postedAtTimestamp": 1712246400000,"postedAtISO": "2024-04-04T10:00:00.000Z","timeSincePosted": "3d","isRepost": false,"authorType": "Company","authorProfileUrl": "https://www.linkedin.com/company/google/","authorProfileId": "google","authorHeadline": "Search the world's information...","authorFullName": "Google","image": "https://media.licdn.com/.../post-image.jpg","type": "image","images": ["https://media.licdn.com/.../post-image.jpg"],"author": {"firstName": null,"lastName": null,"occupation": "Search the world's information...","id": "google","publicId": "google","trackingId": "abcd1234","profileId": "google","picture": "https://media.licdn.com/.../logo.png","backgroundImage": ""},"authorName": "Google","authorTitle": "Search the world's information...","attributes": [{"start": 0,"length": 7,"type": "PROFILE_MENTION","profile": {"firstName": "sundar","lastName": "","occupation": "","id": "user-0","publicId": "sundar","trackingId": "efgh5678","profileId": "user-0","picture": "","backgroundImage": ""}}],"comments": [{"time": 1712250000000,"link": "https://www.linkedin.com/feed/update/comment/12345","text": "Congrats!","entities": [],"pinned": false,"originalLanguage": "English","author": {"firstName": "Alex","lastName": "Smith","occupation": "","id": "commenter-1a2b3c4d5e6f","publicId": "alex-smith","trackingId": "ijkl9012","profileId": "commenter-1a2b3c4d5e6f","picture": "","backgroundImage": "","distance": "OUT_OF_NETWORK"}}],"reactions": [{"type": "LIKE","profile": {"firstName": "Maria","lastName": "Gonzalez","occupation": "","id": "reactor-7f6e5d4c3b2a","publicId": "maria-gonzalez","trackingId": "mnop3456","profileId": "ACoAA7f6e5d4c","picture": "","backgroundImage": ""}}],"numShares": 0,"numLikes": 128,"numComments": 14,"commentsTruncated": true,"commentsComplete": false,"reactionsTruncated": true,"canReact": true,"canPostComments": true,"canShare": true,"commentingDisabled": false,"allowedCommentersScope": "ALL","rootShare": true,"shareAudience": "PUBLIC"}
Notes:
- The field rawHtml is included only when rawData is true.
- Comments and reactions arrays are sampled; commentsTruncated and reactionsTruncated indicate sampling.
- Each item is pushed to the dataset in real time, and a complete array is saved to the key-value store as linkedin_posts.json.
FAQ
Is there a free trial?
Yes. The Apify listing includes 120 trial minutes so you can test the LinkedIn post scraping software before subscribing. Check the actor’s Apify Store page for current details.
Do I need to log in to LinkedIn or provide cookies?
No. This actor targets publicly available pages and does not handle authentication or cookies. It’s designed to work as a public data LinkedIn content scraper, not a private account automation tool.
Which LinkedIn pages are supported?
Company pages, personal profile pages, and feed URLs are supported as sources to scrape LinkedIn posts. Unsupported URL types (e.g., groups, schools, individual post URLs) return a clear error item for transparency.
Can it scrape comments and reactions?
Yes. With deepScrape enabled, it enriches posts with sampled comments and reactions when available. The output includes comments, reactions, and flags like commentsTruncated and reactionsTruncated to indicate sampling.
How many posts can I collect per source?
Use limitPerSource to control how many posts are collected from each URL. The default is 10, and you can increase it to gather more data per source.
Can I filter by date?
Yes. Use scrapeUntil (YYYY-MM-DD) to include only posts from that date onward. The actor filters out posts older than the specified date.
Does it support API or Python integrations?
Yes. As an Apify Actor, it can be triggered via the Apify API and integrated into backend workflows — an ideal fit for teams building a LinkedIn post scraper Python pipeline.
Is a proxy required?
A proxy isn’t required, but using proxyConfiguration is recommended for better reliability and to avoid rate limits during larger or frequent runs.
Where are the results saved?
Each post is pushed to the run’s dataset, and a full results array is saved to the key-value store as linkedin_posts.json at the end of the run.
Closing CTA / Final thoughts
The LinkedIn Post Scraper is built to reliably scrape LinkedIn posts from public profiles and pages, delivering clean, structured data for analysis and automation. With deep engagement capture, date filtering, and proxy support, it helps marketers, developers, analysts, and researchers build repeatable insight pipelines. Trigger it via the Apify API, integrate it in your LinkedIn post scraper Python workflows, and export to JSON/CSV/Excel to operationalize engagement analytics. Start extracting smarter LinkedIn post data today and turn public content into actionable intelligence.