# LinkedIn Post Comments Scraper (`api-empire/linkedin-post-comments-scraper`) Actor

💬 Scrape LinkedIn post comments & replies in bulk. 👍 Get likes, reactions, author names & profile links. 📅 Filter by date. 🔗 Add multiple posts at once. No login required by default.

- **URL**: https://apify.com/api-empire/linkedin-post-comments-scraper.md
- **Developed by:** [API Empire](https://apify.com/api-empire) (community)
- **Categories:** Social media, Automation, Lead generation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

Extract LinkedIn post comments and comment replies in bulk, as well as comment social activities such as likes and reactions. No cookies or account required by default.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| **Posts** | array | Yes | LinkedIn post URLs or activity IDs. |
| **Maximum number of comments to scrape per each post** | integer | No | Max comments per post (1–500, default 10). |
| **Posted Limit (filter)** | select | No | Filter by date: All time, Last 7 days, Last 30 days, Last 90 days. |
| **Scrape Replies** | boolean | No | Include comment replies (default: off). |
| **Profile Scraper Mode** | select | No | Short (no profile details) or Full (picture, headline). |
| **LinkedIn session cookie (li_at)** | string | No | Optional. For logged-in scraping. |
| **Sort order** | select | No | Most recent or Most relevant. |
| **Proxy Configuration** | object | No | Optional. Fallback: datacenter → residential. |

### Output

Dataset: one row per comment. Each row includes:
- `postUrl`, `comment_id`, `text`, `posted_at`, `author`, `stats`, `replies`, `comment_url`, etc.

### How to use

1. Add post URLs or IDs under **Posts**.
2. Set max comments per post (default 10).
3. Optionally enable **Scrape Replies**, set **Posted Limit** filter, choose **Profile Scraper Mode**.
4. Click **Start**.

### What are other Linkedin scraping tools?
If you want to scrape specific Linkedin data, you can use any of the dedicated scrapers below for faster and more targeted results.

| Scraper Name | Scraper Name |
|---|---|
| [LinkedIn Ads Scraper](https://apify.com/api-empire/linkedin-ads-scraper) | [Linkedin Open Profile Status](https://apify.com/api-empire/linkedin-open-profile-status) |
| [Linkedin B2b Email Scraper](https://apify.com/api-empire/linkedin-b2b-email-scraper) | [Linkedin Phone Number Scraper](https://apify.com/api-empire/linkedin-phone-number-scraper) |
| [Linkedin B2b Lead Scraper](https://apify.com/api-empire/linkedin-b2b-lead-scraper) | [Linkedin Post Reactions Scraper](https://apify.com/api-empire/linkedin-post-reactions-scraper) |
| [Linkedin B2b Phone Number Scraper](https://apify.com/api-empire/linkedin-b2b-phone-number-scraper) | [LinkedIn Post Scraper](https://apify.com/api-empire/linkedin-post-scraper) |
| [Linkedin Company About Scraper](https://apify.com/api-empire/linkedin-company-about-scraper) | [LinkedIn Post, Comments and Engagements Scraper](https://apify.com/api-empire/linkedin-post-comments-and-engagements-scraper) |
| [Linkedin Company Employees](https://apify.com/api-empire/linkedin-company-employees) | [LinkedIn Posts URL (Profile)](https://apify.com/api-empire/linkedin-posts-url-profile) |
| [Linkedin Company Employees Scraper](https://apify.com/api-empire/linkedin-company-employees-scraper) | [Linkedin Profile And Company Posts Scraper](https://apify.com/api-empire/linkedin-profile-and-company-posts-scraper) |
| [Linkedin Company Post Scraper](https://apify.com/api-empire/linkedin-company-post-scraper) | [Linkedin Profile Email Scraper](https://apify.com/api-empire/linkedin-profile-email-scraper) |
| [Linkedin Company Profile Scraper](https://apify.com/api-empire/linkedin-company-profile-scraper) | [Linkedin Profile Lead Scraper](https://apify.com/api-empire/linkedin-profile-lead-scraper) |
| [LinkedIn Company Scraper](https://apify.com/api-empire/linkedin-company-scraper-actor) | [Linkedin Profile Phone Number Scraper](https://apify.com/api-empire/linkedin-profile-phone-number-scraper) |
| [Linkedin Email Scraper](https://apify.com/api-empire/linkedin-email-scraper) | [Linkedin Profile Post Scraper](https://apify.com/api-empire/linkedin-profile-post-scraper) |
| [Linkedin Jobs Scraper](https://apify.com/api-empire/linkedin-jobs-scraper) | [LinkedIn Profile Scraper](https://apify.com/api-empire/linkedin-profile-scraper) |
| [Linkedin Lead Scraper](https://apify.com/api-empire/linkedin-lead-scraper) | [LinkedIn Search Jobs Scraper](https://apify.com/api-empire/linkedin-search-jobs-scraper) |

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more LinkedIn post URLs or activity IDs. Each post is scraped separately.
## `resultLimitPerPost` (type: `integer`):

How many comments to collect per post. Higher = more data, longer run.
## `postedLimit` (type: `string`):

Only keep comments from the last 24h, week, month, etc. Leave as 'Any' for all.
## `scrapeReplies` (type: `boolean`):

When on, nested replies under each comment are included.
## `profileScraperMode` (type: `string`):

Short = fewer fields, lower cost. Full = profile picture & headline.
## `liAt` (type: `string`):

Optional. Paste your li_at cookie for logged-in access. Get it from browser dev tools.
## `proxyConfiguration` (type: `object`):

Optional. Use a proxy if needed. Leave default for direct connection.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633/"
  ],
  "resultLimitPerPost": 10,
  "postedLimit": "any",
  "scrapeReplies": false,
  "profileScraperMode": "short",
  "liAt": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

# 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 = {
    "startUrls": [
        "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633/"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("api-empire/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 = {
    "startUrls": ["https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633/"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("api-empire/linkedin-post-comments-scraper").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 '{
  "startUrls": [
    "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call api-empire/linkedin-post-comments-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Post Comments Scraper",
        "description": "💬 Scrape LinkedIn post comments & replies in bulk. 👍 Get likes, reactions, author names & profile links. 📅 Filter by date. 🔗 Add multiple posts at once. No login required by default.",
        "version": "0.1",
        "x-build-id": "UOMM5zZoxGdj47dxi"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/api-empire~linkedin-post-comments-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-api-empire-linkedin-post-comments-scraper",
                "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/api-empire~linkedin-post-comments-scraper/runs": {
            "post": {
                "operationId": "runs-sync-api-empire-linkedin-post-comments-scraper",
                "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/api-empire~linkedin-post-comments-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-api-empire-linkedin-post-comments-scraper",
                "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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "🔗 Posts",
                        "type": "array",
                        "description": "Paste one or more LinkedIn post URLs or activity IDs. Each post is scraped separately.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "resultLimitPerPost": {
                        "title": "📊 Max Comments Per Post",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "How many comments to collect per post. Higher = more data, longer run.",
                        "default": 10
                    },
                    "postedLimit": {
                        "title": "📅 Posted Limit (filter)",
                        "enum": [
                            "any",
                            "24h",
                            "week",
                            "month",
                            "3months",
                            "6months",
                            "year"
                        ],
                        "type": "string",
                        "description": "Only keep comments from the last 24h, week, month, etc. Leave as 'Any' for all.",
                        "default": "any"
                    },
                    "scrapeReplies": {
                        "title": "💬 Scrape Replies",
                        "type": "boolean",
                        "description": "When on, nested replies under each comment are included.",
                        "default": false
                    },
                    "profileScraperMode": {
                        "title": "👤 Profile Scraper Mode",
                        "enum": [
                            "short",
                            "full"
                        ],
                        "type": "string",
                        "description": "Short = fewer fields, lower cost. Full = profile picture & headline.",
                        "default": "short"
                    },
                    "liAt": {
                        "title": "🍪 LinkedIn Cookie (li_at)",
                        "type": "string",
                        "description": "Optional. Paste your li_at cookie for logged-in access. Get it from browser dev tools.",
                        "default": ""
                    },
                    "proxyConfiguration": {
                        "title": "🔒 Proxy Configuration",
                        "type": "object",
                        "description": "Optional. Use a proxy if needed. Leave default for direct connection."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
