# LinkedIn Post Comments Scraper: Top Comments, No Login (`themineworks/linkedin-post-comments-scraper`) Actor

Scrape the comments LinkedIn shows a logged-out visitor under any public post: text, commenter name and profile link, exact time, reactions, and the post's author and full comment count. About 10 comments per post. No login.

- **URL**: https://apify.com/themineworks/linkedin-post-comments-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Social media, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.35 / 1,000 comments

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## LinkedIn Post Comments Scraper: Top Comments, No Login

[![10 LinkedIn comments with commenter, exact time and reactions in 4 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/linkedin-post-comments-scraper-hero.png)](https://console.apify.com/actors/Xb5Wir4SNPi0XJmcK/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 245,000 runs across 280+ public actors.

Updated 26 Oct 2026: first release. Post links, urns or ids in, one row per comment out: text, commenter name and profile link, exact time, reaction count, and the post's author and true comment count on every row. Bookmark this Actor on its Store page so it is one click away next time.

### Read this first: how many comments you get

LinkedIn shows a visitor who is not logged in the **first page of a post's comments only**. That is **9 or 10 comments per post**, ranked "most relevant" by LinkedIn, and a "See more comments" link that leads to its sign-up page. This actor does not log in, so 10 is the ceiling: in our test, 24 posts with 10 or more comments each returned 10 comments for 17 of them, 9 for 5, and fewer for 2 where LinkedIn hid some. Setting `maxCommentsPerPost` above 10 returns the same 10.

If you need every comment under a post, this is not the tool. If you need the top comments of many posts, with who wrote them and how many comments each post really has, in seconds and for cents, it is.

Guide and FAQs: [LinkedIn Post Comments Scraper on themineworks.com](https://themineworks.com/actors/linkedin-post-comments-scraper/).

### Why choose this actor?

- **The comments LinkedIn ranks highest, with the people behind them.** Text with line breaks, commenter name, canonical profile link (`/in/` or `/company/`), whether it is a person or a page, profile picture, reactions on the comment, attached images, and whether the post's own author wrote it.
- **An exact time for every comment.** LinkedIn shows "1mo". Each comment id carries its creation time, so `posted_at` is an ISO timestamp accurate to the second, next to `posted_ago` as LinkedIn shows it. We checked it against the dates LinkedIn publishes for the same comments.
- **The real size of the thread, on every row.** `post_comment_count` is LinkedIn's own count of all comments on the post and `post_comments_shown` is how many a logged-out visitor can see, so you always know what you did not get. 35 posts in our test had 2,639 comments in total; LinkedIn showed 249 of them.
- **Cheap to run.** A post page is about 22 KB over the wire (about 190 KB unpacked) and takes about 3 seconds. 257 requests in our tests at up to 12 at a time returned no refusals and no sign-in pages.
- **Pay per comment, nothing for errors.** Links that are not posts, posts LinkedIn will not show, duplicates and the summary row are never charged. No LinkedIn account, cookies or API key.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/Xb5Wir4SNPi0XJmcK/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works LinkedIn family:** [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Email Finder](https://apify.com/themineworks/linkedin-email-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [LinkedIn Newsletter Scraper](https://apify.com/themineworks/linkedin-newsletter-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the input (JSON view) and press Start. It returns the first 10 comments of a public post by Satya Nadella that has 177 comments. It took 4 seconds in our test run:

```json
{
  "postUrls": ["https://www.linkedin.com/feed/update/urn:li:activity:7503582702164574208"],
  "maxCommentsPerPost": 10
}
```

Put several posts on separate lines to read them in one run. A post that two of your inputs point at is delivered once.

Apify's free plan includes $5 of credit every month, which covers about 2,700 comments at this actor's price.

#### Copy to your AI assistant

```text
themineworks/linkedin-post-comments-scraper on Apify. Reads the comments LinkedIn shows a logged-out visitor under public LinkedIn posts, with no login: about 10 per post (the first page, ranked most relevant), one flat row per comment. Call ApifyClient("TOKEN").actor("themineworks/linkedin-post-comments-scraper").call(run_input={"postUrls": ["https://www.linkedin.com/posts/microsoft_activity-7503582702164574208-jTf2"], "maxCommentsPerPost": 10}), then client.dataset(run["defaultDatasetId"]).list_items().items. Give postUrls (list of post links, urns such as urn:li:activity:7503582702164574208, or the bare number; up to 500 per run). Optional: maxCommentsPerPost (default 10, 1 to 100, LinkedIn shows at most about 10 logged out). Comment rows have no _type field and carry comment_id, comment_url, text, commenter_name, commenter_headline, commenter_profile_url, commenter_username, commenter_type, commenter_image_url, posted_at, posted_ago, reaction_count, image_urls, is_post_author, position, post_id, post_url, post_author_name, post_author_url, post_published_at, post_comment_count, post_reaction_count, post_comments_shown, scraped_at. Each run also writes one row with _type "summary", one with _type "info" when comments were delivered, and a row with _type "error" for each input that could not be read; none of these is charged. Replies, reply counts and the pinned mark are not shown to logged-out visitors and are not returned. Full spec: GET https://api.apify.com/v2/acts/themineworks~linkedin-post-comments-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **Any post link.** The link from "Copy link to post" (`/posts/<name>_<words>-activity-<number>-<code>`), a `/feed/update/urn:li:activity:<number>` link, an urn such as `urn:li:ugcPost:<number>`, or the bare number. Tracking parameters are ignored.
- **Post context on every row.** Post id and link, author name and link, publish time, LinkedIn's comment and reaction counts for the post, and how many comments were shown. Group by `post_id` to compare posts.
- **LinkedIn's own order.** `position` is the rank LinkedIn gives the comment (1 = first). It is the "most relevant" order, which favours comments with reactions.
- **Companies and people told apart.** `commenter_type` is `person`, `company`, `school` or `showcase`, so you can filter pages out of a list of people.
- **Stops cleanly.** A post LinkedIn answers with a sign-in page on two different IPs is reported as private or removed. Eight unreadable posts in a row end the run. The run stops before its time limit and keeps every row. The summary row says why.
- **A run summary** with one entry per post: comments on the post, comments LinkedIn showed, comments delivered, requests used.

### What you do not get

Say it before you buy it. Not shown to a logged-out visitor, so not in the data:

- **Comments past the first page** (the 10 limit above).
- **Replies and reply counts.** The page shows the comment, not its thread.
- **The pinned mark and the "Author" badge.** `is_post_author` is worked out by comparing the commenter with the post's author instead.
- **Most commenters' headlines.** LinkedIn prints a headline under a few commenters' names (7 of 249 comments in our test); `commenter_headline` has it when it is there and is empty otherwise.
- **Who reacted or reposted.** Only counts are public.

### How to use it

#### Basic: the top comments of a few posts

```json
{
  "postUrls": [
    "https://www.linkedin.com/posts/microsoft_activity-7503582702164574208-jTf2",
    "urn:li:activity:7508124905897467904",
    "7506360360753364993"
  ]
}
```

One request per post. The three formats can be mixed.

#### Who engages with a competitor

Collect the links of a competitor's recent posts (the [LinkedIn Company Posts Scraper](https://apify.com/themineworks/linkedin-company-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) lists them), paste them here, and filter the rows on `commenter_type: "person"`. Each row carries `commenter_profile_url` for the next step.

#### Engagement check across many posts

```json
{
  "postUrls": ["...", "..."],
  "maxCommentsPerPost": 3
}
```

`post_comment_count` and `post_reaction_count` are on every row, so even 3 comments per post give you LinkedIn's real counters for each post at the same price per comment.

#### Brand and sentiment sampling

Read the text of the highest ranked comments of your own posts or a campaign's posts. Because LinkedIn ranks by engagement, the sample leans toward the comments people reacted to.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `postUrls` | array of strings | required | Post links, urns or ids, one per line. Up to 500 per run. |
| `maxCommentsPerPost` | integer | `10` | Most comments per post, 1 to 100. LinkedIn shows about 10, so more than 10 returns the same 10. |

### What data do you get?

One row per comment. Comment rows have no `_type` field; the summary, info and error rows do, so a filter on `_type` separates them.

| Field | What it is |
|---|---|
| `comment_id` | LinkedIn comment id, e.g. `7503590284941774849` |
| `comment_url` | Link to the comment (opens the post with the comment highlighted when you are signed in) |
| `text` | Comment text with line breaks. Empty for an image only comment |
| `commenter_name` | Display name, or the page name for a company |
| `commenter_headline` | Headline when LinkedIn shows it (about 1 comment in 35) |
| `commenter_profile_url`, `commenter_username` | Canonical `https://www.linkedin.com/in/...` link and its last part |
| `commenter_type` | `person`, `company`, `school` or `showcase` |
| `commenter_image_url` | Profile picture, when the commenter has one |
| `posted_at`, `posted_ago` | ISO 8601 UTC time from the comment id, and the label LinkedIn shows (`1mo`, `4d`) |
| `reaction_count` | Reactions on the comment |
| `image_urls` | Images attached to the comment, when there are any |
| `is_post_author` | True when the commenter is the person or page that wrote the post |
| `position` | Place in LinkedIn's order, 1 = first |
| `post_id`, `post_url` | The post's activity id and link |
| `post_author_name`, `post_author_url` | Who wrote the post |
| `post_published_at` | When the post was published, from its id |
| `post_comment_count`, `post_reaction_count` | LinkedIn's counters for the whole post |
| `post_comments_shown` | How many comments a logged-out visitor can see on this post |
| `scraped_at` | When the row was written |

**Summary row** (`_type: "summary"`, never charged): `posts_requested`, `posts_read`, `posts_failed`, `posts_with_comments`, `posts_without_comments`, `comments_delivered`, `charged_for`, `comments_shown_by_linkedin`, `comments_on_posts_total`, `comments_not_reachable`, `avg_comments_shown_per_post`, `duplicate_posts_skipped`, `http_requests`, `http_megabytes`, `bytes_per_comment_delivered`, `ended_on_deadline`, `stopped_by_max_cost`, `stopped_by_block_guard`, `shortfall_reason`, and `per_post`. The same summary is saved as the `OUTPUT` record of the run.

**Error rows** (`_type: "error"`, never charged): one per input that could not be read, with `error_type` (`invalid_url`, `not_found`, `wall`, `blocked`, `layout`, `fetch_error`), `identifier`, `reason` and `http_status`.

#### Stable fields for automations

These were present in every comment row of our test runs (249 rows from 35 posts), and their names will not change:

| Field | What it is |
|---|---|
| `comment_id` | The key to store and join on |
| `comment_url` | Link to the comment |
| `commenter_name` | Who wrote it |
| `commenter_profile_url` | Their profile or page |
| `commenter_type` | Person or page |
| `posted_at` | Exact time |
| `reaction_count` | Reactions on the comment |
| `position` | LinkedIn's rank |
| `post_id` | The post |
| `post_comment_count` | The post's full comment count |
| `post_comments_shown` | How many were visible |

Optional, present only when LinkedIn shows a value: `text` (247 of 249; the rest were image only), `commenter_image_url` (207), `image_urls` (8), `commenter_headline` (7).

#### Output examples

A comment from the sample post, with the commenter's identity replaced by a placeholder (the shape and the other values are as returned, test run of 26 Oct 2026):

```json
{
  "comment_id": "7503590284941774849",
  "comment_url": "https://www.linkedin.com/feed/update/urn:li:activity:7503582702164574208?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7503580660893118464%2C7503590284941774849%29",
  "text": "Satya, this raises an interesting question beyond football.\nThe advantage may not simply come from giving coaches more information or more AI. It may depend on where AI enters the decision-making sequence.\n...",
  "commenter_name": "Jordan Example",
  "commenter_profile_url": "https://www.linkedin.com/in/jordan-example",
  "commenter_username": "jordan-example",
  "commenter_type": "person",
  "commenter_image_url": "https://media.licdn.com/dms/image/v2/D4E03AQ.../profile-displayphoto-scale_400_400/...",
  "posted_at": "2026-09-09T23:08:53Z",
  "posted_ago": "1mo",
  "reaction_count": 7,
  "is_post_author": false,
  "position": 1,
  "post_id": "7503582702164574208",
  "post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7503582702164574208",
  "post_author_name": "Satya Nadella",
  "post_author_url": "https://www.linkedin.com/in/satyanadella",
  "post_published_at": "2026-09-09T22:38:46Z",
  "post_comment_count": 177,
  "post_reaction_count": 3020,
  "post_comments_shown": 10
}
```

A company page that commented, from a Microsoft post:

```json
{
  "comment_id": "7519075396072656896",
  "text": "The most useful measure of AI adoption is not how ...",
  "commenter_name": "Example Tech",
  "commenter_profile_url": "https://www.linkedin.com/company/example-tech",
  "commenter_type": "company",
  "posted_at": "2026-10-22T16:41:12Z",
  "posted_ago": "3d",
  "reaction_count": 1,
  "position": 6,
  "post_author_name": "Microsoft",
  "post_author_url": "https://www.linkedin.com/company/microsoft",
  "post_comment_count": 90,
  "post_comments_shown": 10
}
```

The summary row of a 45 link run, trimmed (10 of the links led to posts that another link had already covered):

```json
{
  "_type": "summary",
  "posts_requested": 45,
  "posts_read": 35,
  "duplicate_posts_skipped": 10,
  "comments_delivered": 249,
  "comments_shown_by_linkedin": 249,
  "comments_on_posts_total": 2639,
  "comments_not_reachable": 2390,
  "avg_comments_shown_per_post": 7.1,
  "http_requests": 47,
  "http_newer_layout_cut": 2,
  "http_sign_in_walls": 0,
  "http_refused": 0,
  "http_megabytes": 9.01
}
```

An error row for a link that is not a post (nothing charged):

```json
{ "_type": "error", "error_type": "invalid_url", "identifier": "https://www.linkedin.com/in/satyanadella", "reason": "This is a profile or company link, not a post. Open the post, use \"Copy link to post\" from its three dots menu, and paste that link." }
```

### Pricing

Pay per event: you pay for the comments you receive, plus a flat $0.003 per run, whatever memory you choose.

| Event | When it is charged | Free plan | Bronze (Starter) | Silver (Scale) | Gold (Business) |
|---|---|---|---|---|---|
| `comment-scraped` | Once per comment row stored in your dataset | $1.80 per 1,000 | $1.80 per 1,000 | $1.80 per 1,000 | $1.35 per 1,000 |
| `run-start` | Once per run, after the first post returned comments | $0.003 | $0.003 | $0.003 | $0.003 |

The price of one comment is the price per 1,000 divided by 1,000.

Never charged:

- inputs that are not LinkedIn posts (each gets an error row);
- posts LinkedIn will not show to a visitor who is not logged in (private or removed posts);
- a post that a second input of the same run points at;
- comments past your `maxCommentsPerPost`;
- the summary, info and error rows;
- a run with no valid input, or one whose posts show no comments: the start fee is charged only once a post has returned comments;
- anything past your "Max cost per run". The actor checks the budget before each batch of rows and stops while the total is still below your limit, so the run ends SUCCEEDED with a partial result and a status message saying so.

### Run it on a schedule

1. Open the actor in Apify Console, set your input and click **Save as a new task**.
2. In the task, open **Schedules**, click **Add schedule** and pick how often (every day, every Monday at 08:00 and so on).
3. Compare runs on `comment_id` to see new top comments, and on `post_comment_count` to watch a post's thread grow.
4. Optional: add an integration (Google Sheets, Slack, a webhook) so each run lands where your team works.

### FAQ

#### What does this actor read?

The public page LinkedIn serves for a post to a visitor who is not logged in: the post's counters and the first page of its comments, as anyone sees them in a private browser window. It does not log in, send anything to LinkedIn, or read what sits behind the sign-in page.

#### Why only about 10 comments per post?

Because that is all LinkedIn shows a visitor who is not logged in. We tried the sort order, paging parameters, a comment deep link, the embed page and the mobile host on a post with 177 comments: every one returned the same 10 comments, no comments, or a redirect. A tool that returns hundreds of comments per post has to be logged in as someone. This one is not, on purpose, so it cannot do that.

#### Can I get replies?

No. The logged-out page shows comments without their replies and without reply counts. Neither is in the rows.

#### Why is `commenter_headline` usually empty?

LinkedIn prints a headline under the commenter's name for about 1 comment in 35 when you are not logged in. The headline is on the commenter's profile page, but LinkedIn refuses most profile requests from cloud servers and each profile page is about 700 KB, so we do not fetch them. If you need headlines, use the `commenter_profile_url` column with our [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

#### Why did some of my posts return an error?

`wall` means LinkedIn sent the visitor to its sign-in page on two different IPs: the post is private, was removed, or the id is wrong. `not_found` is an HTTP 404. `blocked` means LinkedIn refused the request on every try. Each failed post has an error row with the reason, and nothing is charged for it.

#### Do posts with no comments cost anything?

No. A post that shows no comments produces no rows and no charge. Its counters appear in the summary row.

#### How long does a run take?

In our tests: 4 seconds for the "Try it" input, 68 seconds for 45 links (35 distinct posts) at three posts at a time, and 90 requests in 45 seconds at six at a time. The default time limit is 3,600 seconds; the actor stops before it and keeps every row.

#### Do I need an account, cookies or a proxy?

No. The actor reads public pages over Apify Proxy, which is included. Nothing to set up.

#### Which formats can I download?

JSON, CSV, Excel, XML, RSS and HTML from the run's Storage tab or through the API. The dataset has two ready views: Comments, and Comments by post. In CSV and Excel, `image_urls` is flattened into columns.

#### Can I use it from Claude, ChatGPT or Cursor (MCP)?

Yes, through Apify's MCP server. Connector URL: https://mcp.apify.com/?tools=themineworks/linkedin-post-comments-scraper

- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: turn on developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http linkedin-post-comments-scraper "https://mcp.apify.com/?tools=themineworks/linkedin-post-comments-scraper"`

#### Is it legal to scrape LinkedIn post comments?

The actor reads only what LinkedIn shows to anyone without logging in. Comments are written by people, so names and profile links are personal data: you are responsible for how you use them, including GDPR and CCPA, and for LinkedIn's terms. This is general information, not legal advice.

### Integrations

- **Google Sheets**: send each run's comments to a sheet with Apify's Google Sheets integration; one row per comment fits a sheet as is.
- **Make, Zapier and n8n**: start a run and read its dataset with the Apify apps and nodes, for example "top comments on our latest post to Slack every Monday".
- **Webhooks**: have Apify call your URL when a run succeeds, then fetch the dataset.
- **API and SDKs**: run it from Python or JavaScript with the Apify client, or with a plain HTTP call (see "Copy to your AI assistant" above).
- **MCP clients**: Claude, ChatGPT, Cursor and VS Code can run it as a tool through the connector URL in the FAQ.

### More from The Mine Works

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Email Finder](https://apify.com/themineworks/linkedin-email-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Newsletter Scraper](https://apify.com/themineworks/linkedin-newsletter-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Candidate Finder](https://apify.com/themineworks/linkedin-candidate-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a post that shows more comments in a private browser window than this actor returns, or a field that comes back empty? Open an issue in the Issues tab with the post link and the run ID, and we will look at it. For a field you need or a new source, email dmineworks@gmail.com.

*Read the top comments of any public LinkedIn post, with the commenter, profile link, exact time, reactions and the post's true comment count, about 10 per post, no login.*

# Actor input Schema

## `postUrls` (type: `array`):

LinkedIn posts, one per line. Use "Copy link to post" from the post's three dots menu, for example https://www.linkedin.com/posts/microsoft_activity-7503582702164574208-jTf2. An urn (urn:li:activity:7503582702164574208) or the bare number (7503582702164574208) works too. Profile links, company links and articles are not posts. Up to 500 posts per run.

## `maxCommentsPerPost` (type: `integer`):

The most comments to return for each post, 1 to 100. LinkedIn shows a logged-out visitor only the first page of a post's comments, 9 or 10 in our tests, so a number above 10 returns the same 10. Example: 10.

## Actor input object example

```json
{
  "postUrls": [
    "https://www.linkedin.com/feed/update/urn:li:activity:7503582702164574208"
  ],
  "maxCommentsPerPost": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "postUrls": [
        "https://www.linkedin.com/feed/update/urn:li:activity:7503582702164574208"
    ],
    "maxCommentsPerPost": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/linkedin-post-comments-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "postUrls": ["https://www.linkedin.com/feed/update/urn:li:activity:7503582702164574208"],
    "maxCommentsPerPost": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/linkedin-post-comments-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "postUrls": [
    "https://www.linkedin.com/feed/update/urn:li:activity:7503582702164574208"
  ],
  "maxCommentsPerPost": 10
}' |
apify call themineworks/linkedin-post-comments-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/linkedin-post-comments-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Xb5Wir4SNPi0XJmcK/builds/ad1womoR5SFpbytix/openapi.json
