Linkedin Post Comments Scraper
Pricing
from $1.00 / 1,000 results
Linkedin Post Comments Scraper
Collect raw comments and replies from one or more public LinkedIn post URLs.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
API ninja
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Share
What does LinkedIn Post Comments Scraper do?
LinkedIn Post Comments Scraper extracts comments, replies, commenter profiles, engagement metrics, and media from public LinkedIn posts. Add one or more post URLs, choose how many top-level comments you need, and receive a clean dataset ready for research, analysis, outreach preparation, or reporting.
You do not need to provide LinkedIn cookies or write scraping code. The Actor resolves every post URL, paginates its comments, optionally collects all replies, and transforms noisy source responses into useful fields while retaining the complete original object in rawData.
Running the scraper on Apify gives you:
- ๐ Support for one or many LinkedIn post URLs in a single run
- ๐ฌ Automatic pagination through top-level comments
- โช๏ธ Optional collection and pagination of every available reply
- ๐ค Commenter names, headlines, profile links, photos, IDs, and account indicators
- ๐ Likes, reply counts, reaction breakdowns, timestamps, mentions, links, and hashtags
- ๐ผ๏ธ Highest-resolution available profile and comment images
- ๐ฆ Downloads in JSON, CSV, Excel, HTML, XML, and other formats
- ๐ API access, scheduling, cloud storage, monitoring, webhooks, and integrations
- ๐ Automatic retries for temporary failures and malformed upstream responses
Why use LinkedIn Post Comments Scraper?
LinkedIn comments contain direct signals about what professionals care about, which questions they ask, and how an audience responds to a topic. This LinkedIn comments scraper removes the need to open threads manually and copy information one comment at a time.
Common use cases include:
- Audience research โ understand who engages with your content or relevant industry posts.
- Lead research โ discover professionals already discussing a product, problem, company, or market.
- Voice-of-customer analysis โ collect questions, objections, opinions, and recurring language.
- Content research โ find topics and conversations that generate meaningful discussion.
- Brand monitoring โ follow feedback under announcements, launches, and company updates.
- Community discovery โ identify active contributors and frequent conversation participants.
- Sentiment and topic analysis โ export text into spreadsheets, BI tools, or language models.
- Engagement reporting โ compare likes, replies, and reaction types across conversations.
Each result is normalized for immediate use, but technical users can still inspect the original LinkedIn response under rawData.
How to scrape LinkedIn post comments
- Open LinkedIn and copy the URL of a public post.
- Open this Actor in Apify Console and click Try for free.
- Add the URL under LinkedIn post URLs. Add more rows to process multiple posts.
- Set Maximum comments per post, or enable Scrape all comments.
- Choose Relevance or Newest first as the comment sort order.
- Enable Scrape replies if you also need every reply to the collected top-level comments.
- Click Start and wait for the run to finish.
- Open the Output tab to browse the clean LinkedIn comments table.
- Download the dataset or access it through the Apify API.
For a quick first test, use one public post, leave the limit at 100 comments, and keep reply scraping off. Once you have checked the output, enable replies or scrape all comments for complete conversation coverage.
How comment and reply limits work
maxComments applies separately to each input post and counts only top-level comments. Replies do not consume this limit.
When parseAllComments is enabled, the Actor ignores maxComments and requests pages until no more top-level comments are returned. When scrapeReplies is enabled, the Actor checks every saved top-level comment and automatically paginates all replies reported for that comment.
For example, if a post produces 100 saved top-level comments and those comments contain 35 replies, the final dataset contains 135 records: 100 with recordType: "COMMENT" and 35 with recordType: "REPLY".
Input
The Input tab contains five straightforward settings:
| Field | Type | Description |
|---|---|---|
postUrls | Array | One or more public LinkedIn post URLs. |
maxComments | Integer | Maximum top-level comments saved per post. |
parseAllComments | Boolean | Ignore maxComments and collect every available top-level comment. |
sortOrder | Select | Use RELEVANCE or REVERSE_CHRONOLOGICAL (newest first). |
scrapeReplies | Boolean | Collect and automatically paginate all replies belonging to the saved top-level comments. |
Example input:
{"postUrls": ["https://www.linkedin.com/posts/example_company-update-activity-1234567890"],"maxComments": 100,"parseAllComments": false,"sortOrder": "RELEVANCE","scrapeReplies": true}
Only public, accessible LinkedIn post URLs are supported. Private, deleted, restricted, or malformed URLs may not return data.
Output
The Actor saves one normalized dataset item for every top-level comment and every fetched reply. The LinkedIn comments view shows the most useful fields with formatted images, links, dates, numbers, and booleans. Apify's All fields view also contains technical identifiers, extracted metadata, and the complete original API object in rawData.
Simplified top-level comment:
{"recordType": "COMMENT","commentText": "This is a useful breakdown. Thanks for sharing!","commentId": "urn:li:comment:(activity:7451935765049044992,7451936392399532033)","parentCommentId": null,"activityId": "urn:li:activity:7451935765049044992","postUrl": "https://www.linkedin.com/posts/example","commentUrl": "https://www.linkedin.com/feed/update/example?commentUrn=example","createdAt": "2026-04-20T10:14:46.231Z","isReply": false,"isEdited": false,"isPinned": false,"likes": 31,"replies": 6,"reactionBreakdown": {"LIKE": 30,"INTEREST": 1},"commenterName": "Fabio Ciucci","commenterHeadline": "Serial Founder","commenterProfileUrl": "https://www.linkedin.com/in/fciucci","commenterImageUrl": "https://media.licdn.com/example-profile-image.jpg","commenterConnectionDegree": "3rd+","commenterIsPostAuthor": false,"commenterIsPremium": true,"commenterIsVerified": false,"commentImageUrl": null,"mentions": [],"hashtags": [],"contentLinks": [],"originalLanguage": null,"rawData": {}}
A reply uses the same structure, with recordType set to REPLY, isReply set to true, and parentCommentId identifying the top-level comment it belongs to.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Results are also available programmatically through the Apify Dataset API.
LinkedIn comments data table
| Field | Description |
|---|---|
recordType | Whether the record is a top-level COMMENT or a REPLY. |
commentText | Text written by the commenter. |
commentId | Canonical LinkedIn comment or reply URN. |
parentCommentId | Parent comment URN for replies; empty for top-level comments. |
activityId | Internal LinkedIn activity URN resolved from the input post. |
postUrl | Original LinkedIn post URL supplied in the input. |
commentUrl | Direct LinkedIn permalink for the comment or reply when available. |
createdAt | Comment creation time in ISO 8601 format. |
likes | Total likes or reactions reported for the comment. |
replies | Number of replies reported for that record. |
reactionBreakdown | Reaction totals grouped by LinkedIn reaction type. |
commenterName | Displayed name of the commenter. |
commenterHeadline | Professional headline or subtitle. |
commenterProfileUrl | Link to the commenter's LinkedIn profile. |
commenterImageUrl | Highest-resolution available profile image. |
commenterConnectionDegree | Connection label such as 1st, 2nd, or 3rd+. |
commenterIsPostAuthor | Whether the commenter is the author of the original post. |
commenterIsPremium | Whether the response includes a LinkedIn Premium indicator. |
commenterIsVerified | Whether the response includes a verified indicator. |
commentImageUrl | Highest-resolution image attached to the comment, when present. |
mentions | Profiles mentioned in the comment text. |
hashtags | Hashtags extracted from the comment text. |
contentLinks | Web links extracted from the comment text. |
rawData | Complete unmodified comment or reply object from the source response. |
Some values may be empty because LinkedIn does not expose every field for every person or comment. The original object in rawData can help with advanced processing or debugging.
How much does it cost to scrape LinkedIn comments?
The exact cost depends on the pricing displayed in the Actor's Pricing tab and the amount of work performed during a run. The main cost factors are:
- Number of LinkedIn post URLs
- Number of top-level comments requested for each post
- Whether Scrape all comments is enabled
- Whether Scrape replies is enabled and how many replies the threads contain
- Number of pagination requests and temporary retries
- Dataset storage and data transfer
For a practical estimate, run one representative post with a limit of 100 comments, review its run cost, and scale from there. Large or viral posts with deeply nested discussions require more requests and take longer.
You may be able to cover small tests with usage included in your current Apify plan. Check the Actor's Pricing tab and Apify pricing for current prices, credits, and plan limits before starting a large collection.
Tips and advanced options
Start with a limited run
Use one post and 50โ100 comments to confirm that the URL is public and the output contains the data you need. Increase the limit or enable Scrape all comments afterward.
Enable replies only when needed
Reply collection can significantly increase the number of API requests and dataset records. Leave Scrape replies off when you only need the main discussion participants; enable it when conversation context matters.
Choose the right sort order
Use RELEVANCE to retrieve the comments LinkedIn considers most relevant. Use REVERSE_CHRONOLOGICAL for newest-first monitoring. The selected order affects which comments fill a limited run.
Process media URLs promptly
LinkedIn profile and comment image URLs may be temporary and can expire. Download or process important media soon after the run rather than treating these URLs as permanent file storage.
Schedule recurring comment monitoring
Save a tested configuration as an Apify Task and run it with Apify schedules. Connect webhooks, Make, Zapier, Google Sheets, or your own application to process each completed dataset.
Access LinkedIn comments through an API
Developers can start runs and retrieve datasets through the Apify API, JavaScript client, Python client, or CLI. Use the same JSON structure shown in the input example. Keep your Apify API token private and never place it in client-side code or public repositories.
Related LinkedIn Actors
Combine this Actor with other LinkedIn data tools for broader research:
- LinkedIn Post Reactions Scraper โ collect the people and reaction types associated with a post.
- LinkedIn Company Posts Scraper โ find and analyze content published by companies.
- LinkedIn Profile Posts Scraper โ collect posts published by selected profiles.
- LinkedIn Jobs Scraper โ extract structured LinkedIn job listings.
FAQ, disclaimers, and support
Can I scrape comments from multiple LinkedIn posts?
Yes. Add multiple URLs to postUrls. The comment limit applies independently to every post.
Does the comment limit include replies?
No. maxComments limits top-level comments only. When reply scraping is enabled, replies are additional dataset records and are collected for the saved top-level comments.
Why did the Actor return fewer comments than requested?
The post may contain fewer public comments than the requested limit. LinkedIn may also hide, delete, restrict, or omit some comments. Confirm that the post is public and inspect the run log for URL-resolution or upstream API errors.
Why are replies missing?
Confirm that Scrape replies was enabled. The run's starting log should show "replies":"all". Replies are requested only for saved top-level comments that report one or more replies.
Why are some commenter fields empty?
LinkedIn does not return complete profile information for every user. Restricted, deleted, private, organization, or ghost profiles may not include a photo, headline, connection degree, profile URL, or account indicators.
Can I use the results through an API?
Yes. Runs and datasets are available through the Apify API. You can also use Apify's JavaScript and Python clients, CLI, Tasks, schedules, webhooks, and integrations.
Is scraping LinkedIn comments legal?
Web scraping laws and platform terms vary by country and use case. Collect only publicly available information, respect LinkedIn's terms and applicable privacy or data-protection laws, and do not use the Actor for spam, discrimination, harassment, or other harmful purposes. You are responsible for how you configure and use the Actor. This Actor is not affiliated with or endorsed by LinkedIn.
What are the known limitations?
- Private, deleted, restricted, or unsupported posts may not return results.
- LinkedIn or upstream provider changes can temporarily affect data availability.
- Some comments and profile fields may be missing from the public response.
- Media URLs may expire.
- Very large discussions require more pagination requests and take longer.
- Comment counts displayed on LinkedIn can differ from records available through the underlying response.
Where can I get help or request a custom solution?
If a run fails, open its log and verify that the post URL is public and accessible. Report reproducible problems through the Actor's ./issues and include the run ID, input URL, and expected behavior. Never post API tokens, credentials, or private data.
Custom LinkedIn scraping, data normalization, enrichment, and workflow integrations are also available on request.