# LinkedIn Post Comments Scraper (`scrapier/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/scrapier/linkedin-post-comments-scraper.md
- **Developed by:** [Scrapier](https://apify.com/scrapier) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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

The LinkedIn Post Comments Scraper is a purpose-built LinkedIn comments scraper that extracts structured comments and nested replies from LinkedIn posts — complete with reaction counts and author details. It solves the pain of manual copy-paste by automating LinkedIn comments data extraction at scale. Built for marketers, developers, analysts, and researchers, this LinkedIn post comments extractor lets you scrape LinkedIn post comments across multiple posts and stream results into an Apify dataset for analysis or automation.

### What data / output can you get?

Below is a snapshot of the structured fields the actor saves to the dataset when you scrape LinkedIn post comments. Fields reflect the real JSON keys pushed by the actor.

| Data field | Description | Example value |
| --- | --- | --- |
| postUrl | Source post URL submitted in input | https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633/ |
| comment_id | Parsed LinkedIn comment ID | "706543210987654321" |
| text | Plaintext content of the comment | "Great update — thanks for sharing!" |
| posted_at.timestamp | Unix ms timestamp when the comment was posted | 1713871200000 |
| posted_at.date | Local datetime string for readability | "2024-04-23 15:20:00" |
| posted_at.relative | Relative time (s/m/h/d/w/y) | "2d" |
| is_edited | Whether the comment was edited | false |
| is_pinned | Whether the comment was pinned | false |
| comment_url | Permalink to the comment (generated if missing) | "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633?commentUrn=urn:li:fsd_comment:(706543210987654321,…)" |
| author.name | Comment author’s display name | "Jane Doe" |
| author.headline | Author headline (Full mode) | "Product Manager at Acme" |
| author.profile_url | Link to author profile | "https://www.linkedin.com/in/janedoe/" |
| author.profile_picture | Author profile photo URL (Full mode) | "https://media.licdn.com/dms/image/..." |
| stats.total_reactions | Total reactions on the comment | 12 |
| stats.reactions | Object with reaction type counts | {"like": 9, "appreciation": 1, "empathy": 0, "interest": 2, "praise": 0} |
| stats.comments | Number of replies to this comment | 3 |
| replies | Nested array of reply objects (same structure) | [ { …reply… } ] |
| post_input | ID parsed from the post URN | "7289521182721093633" |
| totalComments | Total available root comments (from paging) | 145 |

Notes:
- Replies are included when you enable the Scrape Replies setting. The nested reply objects use the same structure as top-level comments.
- Author headline and profile_picture are included only when Profile Scraper Mode is set to “full”.
- You can download the dataset in common formats such as JSON, CSV, or Excel directly from Apify for easy LinkedIn post comments export.

### Key features

- 💬 Bold reactions & replies capture
  Collect top-level comments and, when enabled, nested replies — plus structured reactions (like, appreciation, empathy, interest, praise) and total reaction counts for each comment. Ideal for a LinkedIn reactions and comments scraper workflow.

- 📦 Batch scraping across multiple posts
  Paste an array of LinkedIn post URLs or activity IDs into startUrls to scrape LinkedIn post comments in bulk. This is a LinkedIn comments crawler designed for throughput.

- 📅 Smart date filtering
  Use postedLimit to keep only comments from the last 24h, week, month, 3 months, 6 months, or year. Helpful for time-bounded analysis and campaign tracking.

- 👤 Flexible profile detail modes
  Choose profileScraperMode: short (no profile picture/headline; lower cost) or full (include author.profile_picture and author.headline).

- 🔒 Proxy-aware and resilient
  Built-in rate-limit mitigation and proxy escalation: random delays between requests, exponential backoff on 429s, and automatic fallback from direct connection to datacenter and then residential proxies when needed.

- ⚙️ Developer-friendly via Apify
  Results stream to an Apify dataset for easy integration with the Apify API, webhooks, Make.com, or custom LinkedIn comment scraper Python pipelines. Perfect for automating LinkedIn comments scraping scripts and exports.

- 🧠 Real-time pagination handling
  Efficiently paginates through comments using LinkedIn’s internal GraphQL with dynamic query ID discovery and de-duplication, ensuring clean, structured output.

- 🍪 Auth-supported for reliability
  Add your li_at cookie for authenticated access. Without it, LinkedIn requires login to fetch comments and the run will likely fail — the actor logs a clear warning.

### How to use LinkedIn Post Comments Scraper - step by step

1. Sign in to Apify
   Create or log in to your Apify account so you can run the actor and access the dataset.

2. Open the actor
   Find “LinkedIn Post Comments Scraper” in your Apify console and click Try it.

3. Add post inputs
   In startUrls, paste one or more LinkedIn post URLs or IDs (activity:123…, ugcPost:123…). Each post will be processed separately.

4. Set limits and filters
   - resultLimitPerPost: Choose how many comments to collect per post (1–500; default 10).
   - postedLimit: Keep only recent comments (e.g., "week") or "any" for all.

5. Configure replies and profile detail
   - scrapeReplies: Turn on to include nested replies.
   - profileScraperMode: "short" for basic author fields or "full" for headline and profile picture.

6. Provide authentication (recommended)
   - liAt: Paste your LinkedIn li_at session cookie for authenticated access. The actor logs: without li_at, LinkedIn requires authentication and the run will likely fail.

7. Optional: Proxy configuration
   Use proxyConfiguration if you want to supply Apify Proxy settings. The actor can also escalate automatically to datacenter and then residential proxy if needed.

8. Run and monitor
   Click Start. Watch logs for progress (pages fetched, items saved). The actor automatically handles pagination and pushes items as they’re collected.

9. Download results
   Open the run’s Dataset to preview results and export LinkedIn post comments to CSV, JSON, or Excel. Integrate via the Apify API for automation.

Pro Tip: Chain this run in a Make.com/n8n workflow or call the Apify API from your LinkedIn comment scraper Python scripts to automate end-to-end LinkedIn post comments download and enrichment.

### Use cases

| Use case | Description |
| --- | --- |
| Marketing campaign analysis | Measure engagement on campaign posts by extracting comments, replies, and reactions; quantify sentiment and community response. |
| Community management | Aggregate feedback and questions from post threads to prioritize responses and track recurring themes. |
| Product research | Mine comments for feature requests and pain points for roadmap planning and VOC reports. |
| Academic research | Collect structured discussion data for social media discourse analysis and longitudinal studies. |
| Sales intelligence | Identify warm leads commenting on thought-leadership posts; export to CSV/JSON for CRM enrichment. |
| API pipeline & Python | Use the Apify API with this LinkedIn comments scraping script in Python to automate data ingestion to warehouses. |
| Competitive monitoring | Track competitor post reactions and comment volume over time to benchmark engagement. |

### Why choose LinkedIn Post Comments Scraper?

The LinkedIn Post Comments Scraper focuses on precision, automation, and resilient collection of discussions from LinkedIn posts.

- 🎯 Accurate, structured output: Clean JSON with stable keys for postUrl, comment_id, author, stats, replies, and more.
- 💬 Reactions and replies: Goes beyond basic text to include reaction counts and nested replies when enabled.
- 📈 Built for scale: Accepts multiple posts at once and paginates reliably with de-duplication.
- 🧩 Developer access: Stream results to an Apify dataset and integrate via API in your data pipelines or Python scripts.
- 🔄 Automation-ready: Ideal for scheduled runs and workflow orchestration with webhooks or integration platforms.
- 🛡️ Robust & proxy-aware: Handles rate limits with backoff and automatic proxy escalation (direct → datacenter → residential).
- 💰 Cost control: Choose profileScraperMode to optimize data depth and cost per run.

Compared to extension-based scrapers and unstable tools, this production-ready LinkedIn comment scraping tool uses server-side collection, structured outputs, and resilient networking to minimize failures and ensure consistency.

### Is it legal / ethical to use LinkedIn Post Comments Scraper?

Yes — when used responsibly. This tool is designed to collect data available to your session and relies on your li_at cookie for authenticated access when needed.

Guidelines:
- Scrape only data you are permitted to access and that’s visible to your account.
- Follow applicable laws and regulations (e.g., GDPR, CCPA) and respect LinkedIn’s terms.
- Avoid collecting or sharing sensitive personal data; use results for legitimate analysis and research.
- Consult your legal team for edge cases and compliance requirements in your jurisdiction.

### Input parameters & output format

#### Example JSON input
```json
{
  "startUrls": [
    "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633/",
    "urn:li:activity:7289521182721093633",
    "activity:7289521182721093633"
  ],
  "resultLimitPerPost": 50,
  "postedLimit": "week",
  "scrapeReplies": true,
  "profileScraperMode": "full",
  "liAt": "AQED...your_li_at_cookie_here",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

Parameters

- startUrls (array, required, default: \[]): Paste one or more LinkedIn post URLs or activity/ugcPost IDs. Each post is scraped separately.
- resultLimitPerPost (integer, optional, default: 10): How many comments to collect per post. Minimum 1, maximum 500.
- postedLimit (string, optional, default: "any"): Filter by posted time. One of: "any", "24h", "week", "month", "3months", "6months", "year".
- scrapeReplies (boolean, optional, default: false): When true, nested replies under each comment are included.
- profileScraperMode (string, optional, default: "short"): "short" = fewer fields; "full" = include author profile picture and headline.
- liAt (string, optional, default: ""): LinkedIn Cookie (li\_at). Recommended. Without it, LinkedIn requires authentication to fetch comments and the run will likely fail.
- proxyConfiguration (object, optional, prefill: {"useApifyProxy": false}): Optional proxy settings. Leave default for direct connection; the actor can escalate proxies automatically if needed.

#### Example JSON output

```json
{
  "postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633/",
  "comment_id": "706543210987654321",
  "text": "Great update — thanks for sharing!",
  "posted_at": {
    "timestamp": 1713871200000,
    "date": "2024-04-23 15:20:00",
    "relative": "2d"
  },
  "is_edited": false,
  "is_pinned": false,
  "comment_url": "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633?commentUrn=urn:li:fsd_comment:(706543210987654321,...)",
  "author": {
    "name": "Jane Doe",
    "headline": "Product Manager at Acme",
    "profile_url": "https://www.linkedin.com/in/janedoe/",
    "profile_picture": "https://media.licdn.com/dms/image/..."
  },
  "stats": {
    "total_reactions": 12,
    "reactions": {
      "like": 9,
      "appreciation": 1,
      "empathy": 0,
      "interest": 2,
      "praise": 0
    },
    "comments": 2
  },
  "replies": [
    {
      "comment_id": "706543210987654399",
      "text": "Agree — looking forward to the next release.",
      "posted_at": {
        "timestamp": 1713874800000,
        "date": "2024-04-23 16:20:00",
        "relative": "2d"
      },
      "is_edited": false,
      "is_pinned": false,
      "comment_url": "https://www.linkedin.com/feed/update/urn:li:activity:7289521182721093633?commentUrn=urn:li:fsd_comment:(706543210987654399,...)",
      "author": {
        "name": "John Smith",
        "headline": "Engineer",
        "profile_url": "https://www.linkedin.com/in/johnsmith/",
        "profile_picture": null
      },
      "stats": {
        "total_reactions": 3,
        "reactions": {
          "like": 3,
          "appreciation": 0,
          "empathy": 0,
          "interest": 0,
          "praise": 0
        },
        "comments": 0
      },
      "replies": [],
      "post_input": "7289521182721093633",
      "totalComments": 145
    }
  ],
  "post_input": "7289521182721093633",
  "totalComments": 145
}
```

Notes:

- Fields author.headline and author.profile\_picture are null when profileScraperMode is "short".
- replies is empty when scrapeReplies is false.
- stats.reactions is an object keyed by reaction types such as like, appreciation, empathy, interest, and praise.

### FAQ

#### Do I need to log in or provide cookies?

✅ Yes, in practice you should provide your li\_at cookie. The actor logs a warning that LinkedIn requires authentication to fetch comments and the run will likely fail without li\_at. Paste your li\_at from your browser into the liAt field for reliable results.

#### How many comments per post can I collect?

You control this via resultLimitPerPost, with a maximum of 500 per post. The actor paginates through comments and stops when it reaches your limit or the thread ends.

#### Can it extract replies to comments?

✅ Yes. Enable scrapeReplies to include nested replies in the replies array for each comment. When off, only top-level comments are returned.

#### Which reaction types are included?

The stats.reactions object aggregates counts for reaction types such as like, appreciation, empathy, interest, and praise. stats.total\_reactions is the sum across types.

#### Can I scrape multiple posts in a single run?

✅ Yes. Provide an array in startUrls with multiple LinkedIn post URLs or IDs. The actor processes each post separately and streams results to the dataset.

#### How do I filter by recent comments only?

Use postedLimit. Choose from "any", "24h", "week", "month", "3months", "6months", or "year". The actor filters both comments and replies against this cutoff.

#### How do I export the results?

Open the run’s Dataset in Apify to preview and download. You can export LinkedIn post comments to CSV, JSON, or Excel, or pull data programmatically via the Apify API for automation.

#### Does it support Python or API-based automation?

💻 Yes. Access your dataset via the Apify API and integrate with your LinkedIn comment scraper Python scripts or no-code tools for automated LinkedIn post comments download and analysis.

#### What proxy settings should I use?

You can leave proxyConfiguration at defaults for a direct connection or enable Apify Proxy. The actor can automatically escalate to datacenter and then residential proxies if rate-limited.

### Closing CTA / Final thoughts

The LinkedIn Post Comments Scraper is built to extract structured comment threads — with reactions and author context — from LinkedIn posts at scale. By combining bulk inputs, reply capture, date filtering, and resilient networking, it helps marketers, developers, analysts, and researchers automate LinkedIn comments data extraction with confidence. Export results from the dataset, integrate via the Apify API, or embed in your LinkedIn comments scraping script for end-to-end automation. Start extracting smarter, richer engagement insights from your LinkedIn posts today.

### 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/scrapier/linkedin-ads-scraper) | [Linkedin Phone Number Scraper](https://apify.com/scrapier/linkedin-phone-number-scraper) |
| [Linkedin B2b Email Scraper](https://apify.com/scrapier/linkedin-b2b-email-scraper) | [LinkedIn Post Comments Engagements Scraper](https://apify.com/scrapier/linkedin-post-comments-engagements-scraper) |
| [Linkedin B2b Lead Scraper](https://apify.com/scrapier/linkedin-b2b-lead-scraper) | [Linkedin Post Reactions Scraper](https://apify.com/scrapier/linkedin-post-reactions-scraper) |
| [Linkedin B2b Phone Number Scraper](https://apify.com/scrapier/linkedin-b2b-phone-number-scraper) | [LinkedIn Post Scraper](https://apify.com/scrapier/linkedin-post-scraper) |
| [LinkedIn Company About Scraper](https://apify.com/scrapier/linkedin-company-about-scraper) | [LinkedIn Posts URL (Profile)](https://apify.com/scrapier/linkedin-posts-url-profile) |
| [LinkedIn Company Employees Scraper](https://apify.com/scrapier/linkedin-company-employees) | [Linkedin Profile And Company Posts Scraper](https://apify.com/scrapier/linkedin-profile-and-company-posts-scraper) |
| [Linkedin Company Employees Scraper](https://apify.com/scrapier/linkedin-company-employees-scraper) | [Linkedin Profile Email Scraper](https://apify.com/scrapier/linkedin-profile-email-scraper) |
| [Linkedin Company Profile Scraper](https://apify.com/scrapier/linkedin-company-profile-scraper) | [Linkedin Profile Lead Scraper](https://apify.com/scrapier/linkedin-profile-lead-scraper) |
| [LinkedIn Company Scraper](https://apify.com/scrapier/linkedin-company-scraper-actor) | [Linkedin Profile Phone Number Scraper](https://apify.com/scrapier/linkedin-profile-phone-number-scraper) |
| [Linkedin Email Scraper](https://apify.com/scrapier/linkedin-email-scraper) | [Linkedin Profile Post Scraper](https://apify.com/scrapier/linkedin-profile-post-scraper) |
| [Linkedin Jobs Scraper](https://apify.com/scrapier/linkedin-jobs-scraper) | [LinkedIn Profile Scraper](https://apify.com/scrapier/linkedin-profile-scraper) |
| [Linkedin Lead Scraper](https://apify.com/scrapier/linkedin-lead-scraper) | [LinkedIn Search Jobs Scraper](https://apify.com/scrapier/linkedin-search-jobs-scraper) |
| [Linkedin Open Profile Status](https://apify.com/scrapier/linkedin-open-profile-status) |  |

# 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("scrapier/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("scrapier/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 scrapier/linkedin-post-comments-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapier/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": "29g7RERlimqEIh0sG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapier~linkedin-post-comments-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapier-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/scrapier~linkedin-post-comments-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapier-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/scrapier~linkedin-post-comments-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapier-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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
