Linkedin Post Scraper
Pricing
$19.99/month + usage
Linkedin Post Scraper
✨ LinkedIn Post Scraper to extract posts from public profiles and pages at scale. Collect content, timestamps, reactions, and engagement data quickly. Ideal for research, lead generation, and content tracking. Features: ⚡ fast scraping • 📊 clean output • 🔍 insights • 🌍 scalable automation
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperForge
Actor stats
1
Bookmarked
2
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Linkedin Post Scraper
Linkedin Post Scraper is a fast, scalable LinkedIn content scraper that extracts public posts and engagement from company and person profile URLs. It solves the pain of manually collecting LinkedIn content by automating post discovery and extraction at scale — ideal for marketers, developers, data analysts, and researchers. This LinkedIn post scraper tool helps you export LinkedIn posts with structured metadata for analytics, content tracking, and benchmarking across profiles.
What data / output can you get?
Below are real output fields the actor stores in the Apify dataset for each post. Results are also saved to the key‑value store as linkedin_posts.json for bulk download in JSON, CSV, or Excel.
| Data field | Description | Example value |
|---|---|---|
| urn | LinkedIn post URN (activity/share/ugcPost) | urn:li:activity:7223456789012345678 |
| text | Post text content | We just launched a new feature to help teams move faster… |
| url | Canonical post URL | https://www.linkedin.com/feed/update/urn:li:activity:7223456789012345678 |
| postedAtTimestamp | UNIX timestamp in milliseconds | 1712575755000 |
| postedAtISO | ISO-8601 timestamp string | 2026-04-08T09:49:15.000Z |
| timeSincePosted | Human-readable relative time | 2d |
| authorType | Person or Company | Company |
| authorFullName | Author display name | |
| authorProfileUrl | Source profile URL scraped | https://www.linkedin.com/company/google/ |
| images | Array of post image URLs (if any) | ["https://media.licdn.com/dms/image/…/post-image.jpg"] |
| numLikes | Number of reactions detected | 248 |
| numComments | Number of comments detected | 37 |
Bonus structures in each item:
- author: Rich author object with name parts, IDs, and pictures (when available).
- attributes: Profile mention entities parsed from the text/HTML.
- comments: Array of parsed comments with author metadata (subset, see truncation flags).
- reactions: Array of reaction records with reactor profile metadata (subset, see truncation flags).
- When rawData is true, rawHtml includes the full page HTML for advanced parsing.
Key features
-
⚡ Fast, scalable extraction Robust retry/backoff, concurrent fetching, and a graph crawl strategy help you scrape LinkedIn posts quickly and reliably across multiple sources.
-
🔍 Deep scrape mode Enable deepScrape to traverse additional post links discovered on the page, expanding coverage beyond initial results.
-
🧭 Date cutoff filter Use scrapeUntil to include only posts from a specific date onwards for cleaner, time-bounded datasets.
-
🧱 Structured engagement data Captures comments and reactions when available, making it a practical LinkedIn post comments scraper and LinkedIn post data extractor.
-
🧰 Raw HTML for power users Toggle rawData to include rawHtml for custom parsing or downstream enrichment in your own LinkedIn posts scraping Python pipeline.
-
🌐 Proxy support Optional proxyConfiguration improves reliability and reduces the chance of rate limits when you scrape LinkedIn posts at scale.
-
📦 Clean exports Results stream to the dataset and are saved as linkedin_posts.json for easy export to JSON, CSV, or Excel.
-
🤝 Automation-ready Built as an Apify actor — integrate via API, Make, or n8n to run a LinkedIn feed scraper on schedules and pipe results to your stack.
How to use Linkedin Post Scraper - step by step
- Sign in to Apify and open the Linkedin Post Scraper actor.
- Add your input under urls. You can paste one or multiple LinkedIn company or person profile URLs (e.g., https://www.linkedin.com/company/google/ or https://www.linkedin.com/in/someuser/).
- Set limitPerSource to control how many posts to collect per URL (default is 10).
- (Optional) Set scrapeUntil to a date (YYYY-MM-DD) to include only posts from that date onwards.
- (Optional) Toggle deepScrape for broader coverage and rawData if you want rawHtml included in each item.
- (Optional) Configure proxyConfiguration for better stability at scale.
- Click Start. The run logs will show progress as posts are found and saved to the dataset in real time.
- Export your results from the dataset in JSON/CSV/Excel, or download the compiled key-value store file linkedin_posts.json.
Pro Tip: Chain this LinkedIn posts scraper with webhooks or the Apify API to automatically export LinkedIn posts into your data warehouse or enrichment workflows in Make or n8n.
Use cases
| Use case name | Description |
|---|---|
| Marketing performance tracking | Monitor company and executive posts to quantify engagement trends and content performance over time. |
| Competitive benchmarking | Compare frequency, topics, and reactions across competitor pages to inform your content strategy. |
| Social listening & PR | Track public LinkedIn content relevant to your brand for timely analysis and response. |
| Lead gen content signals | Identify high‑engagement posts and extract context for outreach or intent research workflows. |
| Academic & policy research | Build longitudinal datasets of public posts for sentiment, topic modeling, or diffusion studies. |
| Developer API pipeline | Use the Apify API to automate runs and feed structured post data into ETL/ELT jobs and dashboards. |
| Editorial content analysis | Aggregate media- and text‑rich posts to analyze narratives, formats, and posting cadences. |
Why choose Linkedin Post Scraper?
The actor is engineered for precision and automation on public LinkedIn content — optimized for reliable, production use.
- ✅ Accurate, structured output: Rich fields for posts, authors, comments, and reactions ready for analytics.
- 🌍 Public data focus: Designed for public profiles and feeds — a reliable LinkedIn public post scraper for safe use.
- 📈 Built for scale: Batch multiple sources with backoff/retry logic and deep traversal to discover more posts.
- 💻 Developer-friendly: Works with the Apify API and integrates cleanly into Python or low‑code automations.
- 🔒 Safe and compliant: Avoid risky approaches by focusing on public content and optional proxying for stability.
- 💰 Cost‑effective operations: Streamlined extraction and clean exports reduce downstream processing costs.
- 🔗 Automation integrations: Connect results to Make or n8n for end‑to‑end pipelines without brittle browser extensions.
Bottom line: if you need a dependable LinkedIn posts scraper that balances depth, speed, and clean exports, this is it.
Is it legal / ethical to use Linkedin Post Scraper?
Yes — when used responsibly. This actor targets publicly available LinkedIn content from company and person profile pages and feeds. It does not access private or authenticated data.
Guidelines for responsible use:
- Only collect public information and respect platform policies.
- Comply with data protection laws (e.g., GDPR, CCPA) in your jurisdiction.
- Avoid personal data misuse; use results for analysis, research, or reporting.
- Consult your legal team for edge cases or jurisdiction‑specific requirements.
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}}
Input parameter reference
- urls (array, required): Add LinkedIn company or person profile URLs to scrape — one or many! Default: none.
- limitPerSource (integer): How many posts to collect from each URL. Minimum: 1. Default: 10.
- scrapeUntil (string): Filter posts — only include content from this date onwards (YYYY-MM-DD). Default: none.
- deepScrape (boolean): Scrape additional information via deeper traversal. Default: true.
- rawData (boolean): Include extra raw data in output (adds rawHtml). Default: false.
- proxyConfiguration (object): Optional — use proxy for better reliability & to avoid rate limits. Default: none.
Example JSON output (single post)
{"urn": "urn:li:activity:7223456789012345678","text": "We just launched a new feature to help teams move faster…","url": "https://www.linkedin.com/feed/update/urn:li:activity:7223456789012345678","postedAtTimestamp": 1712575755000,"postedAtISO": "2026-04-08T09:49:15.000Z","timeSincePosted": "2d","isRepost": false,"authorType": "Company","authorProfileUrl": "https://www.linkedin.com/company/google/","authorProfileId": "google","authorHeadline": "Leading company creating helpful products for everyone.","authorFullName": "Google","image": "https://media.licdn.com/dms/image/.../post-image.jpg","type": "image","images": ["https://media.licdn.com/dms/image/.../post-image.jpg"],"author": {"firstName": null,"lastName": null,"occupation": "Leading company creating helpful products for everyone.","id": "google","publicId": "google","trackingId": "YWJjMTIzZGVmNDU2Nzg5","profileId": "google","picture": "https://media.licdn.com/dms/image/.../logo.png","backgroundImage": ""},"authorName": "Google","authorTitle": "Leading company creating helpful products for everyone.","attributes": [{"start": 0,"length": 8,"type": "PROFILE_MENTION","profile": {"firstName": "example","lastName": "","occupation": "","id": "user-0","publicId": "example","trackingId": "YWJjZDEyMzQ1Njc4OTA=","profileId": "user-0","picture": "","backgroundImage": ""}}],"comments": [{"time": 1712575800000,"link": "https://www.linkedin.com/feed/update/urn:li:activity:7223456789012345678","text": "Congrats on the launch!","entities": [],"pinned": false,"originalLanguage": "English","author": {"firstName": "Jane","lastName": "Doe","occupation": "","id": "commenter-a1b2c3d4e5f6","publicId": "jane-doe","trackingId": "c29tZS10cmFja2luZy1pZA","profileId": "commenter-a1b2c3d4e5f6","picture": "","backgroundImage": "","distance": "OUT_OF_NETWORK"}}],"reactions": [{"type": "LIKE","profile": {"firstName": "John","lastName": "Smith","occupation": "","id": "reactor-0f1e2d3c4b5a","publicId": "john-smith-123456","trackingId": "dHJhY2tpbmctaWQ","profileId": "ACoAA0f1e2d3c","picture": "","backgroundImage": ""}}],"numShares": 0,"numLikes": 248,"numComments": 37,"commentsTruncated": true,"commentsComplete": false,"reactionsTruncated": false,"canReact": true,"canPostComments": true,"canShare": true,"commentingDisabled": false,"allowedCommentersScope": "ALL","rootShare": true,"shareAudience": "PUBLIC"}
Notes:
- When rawData is true, each item includes rawHtml with the full HTML of the post page.
- Some author fields may return "Unknown" if LinkedIn does not expose them in JSON‑LD for the page.
FAQ
Is there a free trial or pricing for this LinkedIn posts scraper?
Yes. On Apify, this actor includes trial minutes so you can test before subscribing. You can start runs, validate results, and then upgrade for ongoing usage.
Do I need to log in to LinkedIn or provide cookies?
No. The actor fetches publicly available pages and works as a LinkedIn public post scraper. It does not access private or authenticated data.
Which LinkedIn URLs are supported?
Company pages, person profile pages, and feed URLs are supported. Group, school, or standalone post URLs are not supported by the scraper and will return an error in logs.
What data does it extract from posts?
It extracts post content and metadata such as urn, text, url, postedAtTimestamp, postedAtISO, authorType, authorFullName, images, and engagement counts (numLikes, numComments). It also parses comments and reactions when found. See the Output Format section for full field examples.
How many posts can I export per source?
Use limitPerSource to control how many posts to collect from each URL. The default is 10, and you can increase it based on your needs.
Can it scrape LinkedIn post comments and reactions?
Yes. The output includes comments and reactions arrays when they are available on the page. Truncation flags indicate when only a subset was captured.
Can I integrate this with Python or automation tools?
Yes. As an Apify actor, it’s accessible via the Apify API and works well in automated workflows (e.g., Make or n8n). Many teams export LinkedIn posts and process them in Python pipelines.
How do I export results to CSV, JSON, or Excel?
Open the run’s dataset and use Apify’s built‑in export to download JSON/CSV/Excel. A consolidated linkedin_posts.json file is also saved in the key‑value store.
How does the scraper handle rate limits?
The actor includes retry logic with exponential backoff and supports proxyConfiguration to improve reliability when you scrape LinkedIn posts at scale.
Does deepScrape change the data returned?
deepScrape expands discovery by traversing additional post links on the page. It helps you collect more posts per source beyond the initial set.
Closing thoughts
Linkedin Post Scraper is built to extract clean, structured post data from public LinkedIn company and person pages at scale. With configurable limits, a date cutoff, optional deep traversal, and proxy support, it delivers a dependable LinkedIn post extractor for marketers, developers, analysts, and researchers. Use the Apify API to automate runs, export LinkedIn posts in bulk, and plug results into your analytics or enrichment pipelines. Start extracting smarter LinkedIn content today.