# LinkedIn Comments Scraper | Extract Post Engagement Data (`benjarapi/linkedin-post-comments`) Actor

Scrape LinkedIn post comments quickly. Extract text, mentions, nested replies, and reactor profile data. Export to JSON, CSV, or Excel. No accounts/cookies required

- **URL**: https://apify.com/benjarapi/linkedin-post-comments.md
- **Developed by:** [Benjar Scraping API](https://apify.com/benjarapi) (community)
- **Categories:** Automation, Social media, Lead generation
- **Stats:** 85 total users, 13 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$3.00 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## LinkedIn Post Comments Scraper

Effortlessly extract all comments and replies from any LinkedIn post, article, or video. Get detailed engagement data including the commenter's name, headline, profile URL, comment text, media, and nested replies — all structured and ready for analysis.

### Why Use This LinkedIn Comments Scraper?

- **Comprehensive Extraction** — Collect thousands of comments from any LinkedIn post, regardless of whether it's an activity, share, or ugcPost.
- **Smart URL Resolution** — Simply paste the post URL. The scraper automatically resolves complex LinkedIn links and finds the underlying content URN to ensure no comments are missed.
- **Rich Structured Data** — Get the exact comment text, timestamps, mentions, attached media, and commenter's profile data.
- **Nested Replies** — Configurable option to extract nested replies to comments.
- **Export-Ready** — Download results as JSON, CSV, Excel, or any format supported by Apify.

### Input

| Field | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `postUrl` | string | Yes | — | URL or ID of the LinkedIn post to scrape comments for (e.g. `https://www.linkedin.com/posts/activity-123456789`) |
| `maxComments` | integer | No | `100` | Maximum number of top-level comments to collect. Set higher to get all comments on viral posts. |
| `sortOrder` | string | No | `RELEVANCE` | Sort order for comments (`RELEVANCE` or `RECENT`). |

### Usage Examples

#### Scrape up to 1000 comments by relevance

```json
{
    "postUrl": "https://www.linkedin.com/posts/activity-7397121047453523969",
    "maxComments": 1000,
    "sortOrder": "RELEVANCE"
}
````

### Output — LinkedIn Comment Data Structure

Each run produces a dataset where every item represents a single top-level comment (which may include a `replies` array) with the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `comment_id` | string | The ID of the comment |
| `text` | string | The text content of the comment |
| `posted_at` | object | Timestamps and relative time the comment was posted |
| `author.name` | string | Full name of the commenter |
| `author.profile_url` | string | Direct link to the commenter's LinkedIn profile |
| `stats` | object | Likes, replies, and other interaction counts on the comment |
| `mentions` | array | Mentions of profiles or companies within the comment |
| `media` | object | Attached images or articles in the comment |
| `replies` | array | Nested reply comment objects |
| `totalComments` | integer | The total number of comments on the post |

#### Sample Output

```json
[
  {
    "comment_id": "7123456789",
    "text": "This is a great insight! Thanks for sharing.",
    "posted_at": {
      "timestamp": 1700654321000,
      "date": "2023-11-22T12:00:00.000Z",
      "relative": "1d"
    },
    "is_edited": false,
    "is_pinned": false,
    "comment_url": "https://www.linkedin.com/feed/update/...",
    "author": {
      "name": "Jane Doe",
      "headline": "Software Engineer at TechCorp",
      "profileUrn": "ACoAAA...",
      "profile_url": "https://www.linkedin.com/in/janedoe",
      "profile_picture": "https://media.licdn.com/dms/image/...",
      "is_post_author": false
    },
    "stats": {
      "total_reactions": 5,
      "reactions": {
        "like": 5,
        "appreciation": 0,
        "empathy": 0,
        "interest": 0,
        "praise": 0
      },
      "comments": 1
    },
    "mentions": [],
    "media": null,
    "replies": [
      {
        "comment_id": "7123456790",
        "text": "I completely agree!",
        "author": { "name": "John Smith" }
      }
    ],
    "totalComments": 150
  }
]
```

# Actor input Schema

## `postUrl` (type: `string`):

URL or ID of the LinkedIn post to scrape comments for

## `maxComments` (type: `integer`):

Maximum number of comments to collect

## `sortOrder` (type: `string`):

How to sort the comments

## Actor input object example

```json
{
  "postUrl": "https://www.linkedin.com/posts/farhan-yousafzai-8a1363352_from-a-young-age-i-started-learning-things-activity-7428514378418835456-dRxt?utm_source=share&utm_medium=member_desktop&rcm=ACoAAFlgI1sBy7aj2ZDKMMG_Hk414mQukBozr3w",
  "maxComments": 100,
  "sortOrder": "RELEVANCE"
}
```

# 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 = {
    "postUrl": "https://www.linkedin.com/posts/farhan-yousafzai-8a1363352_from-a-young-age-i-started-learning-things-activity-7428514378418835456-dRxt?utm_source=share&utm_medium=member_desktop&rcm=ACoAAFlgI1sBy7aj2ZDKMMG_Hk414mQukBozr3w",
    "maxComments": 100,
    "sortOrder": "RELEVANCE"
};

// Run the Actor and wait for it to finish
const run = await client.actor("benjarapi/linkedin-post-comments").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 = {
    "postUrl": "https://www.linkedin.com/posts/farhan-yousafzai-8a1363352_from-a-young-age-i-started-learning-things-activity-7428514378418835456-dRxt?utm_source=share&utm_medium=member_desktop&rcm=ACoAAFlgI1sBy7aj2ZDKMMG_Hk414mQukBozr3w",
    "maxComments": 100,
    "sortOrder": "RELEVANCE",
}

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

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

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

```

## CLI example

```bash
echo '{
  "postUrl": "https://www.linkedin.com/posts/farhan-yousafzai-8a1363352_from-a-young-age-i-started-learning-things-activity-7428514378418835456-dRxt?utm_source=share&utm_medium=member_desktop&rcm=ACoAAFlgI1sBy7aj2ZDKMMG_Hk414mQukBozr3w",
  "maxComments": 100,
  "sortOrder": "RELEVANCE"
}' |
apify call benjarapi/linkedin-post-comments --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=benjarapi/linkedin-post-comments",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Comments Scraper | Extract Post Engagement Data",
        "description": "Scrape LinkedIn post comments quickly. Extract text, mentions, nested replies, and reactor profile data. Export to JSON, CSV, or Excel. No accounts/cookies required",
        "version": "0.0",
        "x-build-id": "5uFd8egfThYYV0P04"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/benjarapi~linkedin-post-comments/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-benjarapi-linkedin-post-comments",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/benjarapi~linkedin-post-comments/runs": {
            "post": {
                "operationId": "runs-sync-benjarapi-linkedin-post-comments",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/benjarapi~linkedin-post-comments/run-sync": {
            "post": {
                "operationId": "run-sync-benjarapi-linkedin-post-comments",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "postUrl"
                ],
                "properties": {
                    "postUrl": {
                        "title": "Post URL or ID",
                        "type": "string",
                        "description": "URL or ID of the LinkedIn post to scrape comments for"
                    },
                    "maxComments": {
                        "title": "Maximum number of comments to collect",
                        "type": "integer",
                        "description": "Maximum number of comments to collect"
                    },
                    "sortOrder": {
                        "title": "Sort Order",
                        "enum": [
                            "RELEVANCE",
                            "RECENT"
                        ],
                        "type": "string",
                        "description": "How to sort the comments"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
