# LinkedIn Post Reactions Scraper | Likes & Profiles (`crawlkite/linkedin-post-reactions`) Actor

Extract LinkedIn post and comment reactions with actor details. Filter reaction types, optionally enrich profiles, and export engagement research to JSON or CSV.

- **URL**: https://apify.com/crawlkite/linkedin-post-reactions.md
- **Developed by:** [CrawlKite](https://apify.com/crawlkite) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.35 / 1,000 post reaction results

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

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

## What's an Apify Actor?

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

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

## How to integrate an Actor?

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

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

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

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

# README

## LinkedIn Post Reactions Scraper | Likes & Profiles

Extract LinkedIn post and comment reactions with actor details. Filter reaction types, optionally enrich profiles, and export engagement research to JSON or CSV.

### Key benefits

- No customer cookies or login required for supported public-data operations.
- Structured records for research, engagement analysis and data workflows.
- Bounded pagination, request and spending controls.
- Export JSON, CSV or Excel from the run dataset.

### How it works

1. Add your targets using the Input tab or JSON below.
2. Set a small result limit and maximum run spending.
3. Start the actor and inspect Output and the run SUMMARY.
4. Export results or use the Apify API to retrieve the dataset.

Post inputs return reactions to the post; comment URLs route to comment reactions. Reaction filters are applied to returned records. Main mode adds a separate author-enrichment event.

### Example input

```json
{
  "posts": [
    "https://www.linkedin.com/feed/update/urn:li:activity:7348831781036400646/"
  ],
  "maxItems": 5,
  "profileScraperMode": "short"
}
```

### Input options

| Field | Meaning |
|---|---|
| `posts` | LinkedIn post or comment URLs to process. Comment URLs retain their comment identifiers. |
| `maxItems` | Maximum returned records per input target. Zero continues within page, request and spending limits. |
| `reactionTypeFilter` | Keep these reaction types. Empty selection or ALL includes all types. |
| `profileScraperMode` | Use short for supplied actor details, or main to request separately charged main-profile enrichment. |

A zero result limit means available results within page, request, spending and trial caps; it is not an unlimited-volume guarantee. Free-plan trial runs are restricted to two source requests and two primary records. Additional requests may be needed for reply previews and enrichment.

### Data and output example

Fields retain their nested structure and can be absent or empty. The shortened example below uses fictional values to illustrate structure. It is not a real result or a promise of complete fields.

```json
[
  {
    "id": "example-reaction",
    "reactionType": "LIKE",
    "actor": {
      "name": "Example Author"
    },
    "linkedinUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7348831781036400646/"
  }
]
```

### CrawlKite pricing

The actor's Pricing tab is authoritative. Enrichment and enabled engagement have separate billing events. See each event's unit below; request counts and returned item counts are different.

| Billing event / unit | Free | Starter | Scale | Business |
|---|---:|---:|---:|---:|
| Post reaction result / 1,000 | $1.8 | $1.8 | $1.8 | $1.35 |
| Main profile details / 1,000 | $1.8 | $1.8 | $1.8 | $1.35 |

#### Price comparison

| Event / unit | Plan | HarvestAPI | CrawlKite | Lower by |
|---|---|---:|---:|---:|
| Post reaction result / 1,000 | Free | $2 | $1.8 | 10% |
| Post reaction result / 1,000 | Starter | $2 | $1.8 | 10% |
| Post reaction result / 1,000 | Scale | $2 | $1.8 | 10% |
| Post reaction result / 1,000 | Business | $1.5 | $1.35 | 10% |
| Main profile details / 1,000 | Free | $2 | $1.8 | 10% |
| Main profile details / 1,000 | Starter | $2 | $1.8 | 10% |
| Main profile details / 1,000 | Scale | $2 | $1.8 | 10% |
| Main profile details / 1,000 | Business | $1.5 | $1.35 | 10% |

Checked 2026-11-02 against [the corresponding public actor pricing](https://apify.com/harvestapi/linkedin-post-reactions/pricing). The comparison covers the four plans listed and individual billing events; total costs depend on results and selected options. Higher-plan rates currently follow our Business rates. This is a price comparison, not a guarantee of identical coverage, speed or data values.

### API example

Keep your Apify token in an environment variable.

```bash
curl -X POST 'https://api.apify.com/v2/acts/crawlkite~linkedin-post-reactions/runs' \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"posts":["https://www.linkedin.com/feed/update/urn:li:activity:7348831781036400646/"],"maxItems":5,"profileScraperMode":"short"}'
```

Use the API tab for SDK examples and run/dataset endpoints.

### FAQ

**Why are there fewer results than a visible counter?** Availability, deleted records, filters, source pagination and your run caps can reduce output. Nested reply previews are not separate records.

**Can I resume?** Run state tracks targets, cursors and delivered IDs. Use the platform's resume/resurrection controls for the same input; start a fresh run when changing input.

**Are failed lookups billed as successful records?** Successful output rows trigger their configured events. No separate actor-start fee is configured. Review SUMMARY and Pricing for the events used.

### Responsible use

Use collected data for a clear purpose, respect privacy and applicable requirements, and retain only the fields your workflow needs.

### Support

Open an issue and share the affected run with the developer so we can inspect the error. Never put tokens, cookies or database credentials in a public issue.

### More CrawlKite LinkedIn tools

- [linkedin profile scraper](https://apify.com/crawlkite/linkedin-profile-scraper)
- [linkedin company](https://apify.com/crawlkite/linkedin-company)
- [linkedin profile posts](https://apify.com/crawlkite/linkedin-profile-posts)
- [linkedin post search](https://apify.com/crawlkite/linkedin-post-search)
- [linkedin profile search](https://apify.com/crawlkite/linkedin-profile-search)
- [LinkedIn Company Posts Scraper | Comments & Reactions](https://apify.com/crawlkite/linkedin-company-posts)
- [LinkedIn Post Comments Scraper | Replies & Authors](https://apify.com/crawlkite/linkedin-post-comments)
- [LinkedIn Profile Comments Scraper | Comment History](https://apify.com/crawlkite/linkedin-profile-comments)
- [LinkedIn Profile Reactions Scraper | Activity & Posts](https://apify.com/crawlkite/linkedin-profile-reactions)

# Actor input Schema

## `posts` (type: `array`):

LinkedIn post or comment URLs to process. Comment URLs retain their comment identifiers.

## `maxItems` (type: `integer`):

Maximum returned records per input target. Zero continues within page, request and spending limits.

## `reactionTypeFilter` (type: `array`):

Keep these reaction types. Empty selection or ALL includes all types.

## `profileScraperMode` (type: `string`):

Use short for supplied actor details, or main to request separately charged main-profile enrichment.

## `maxRequests` (type: `integer`):

Stop before exceeding this request count.

## `maxResults` (type: `integer`):

Total primary result cap across all targets.

## `maxPages` (type: `integer`):

Upper pagination bound. Request and spending limits also apply.

## Actor input object example

```json
{
  "posts": [
    "https://www.linkedin.com/posts/satyanadella_today-at-microsoft-build-we-showed-you-how-activity-7330296202275495938-EWFD?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
    "https://www.linkedin.com/posts/microsoft-events_microsoft-build-has-arrived-in-seattle-and-ugcPost-7329991434395160578-GnK7?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
    "https://www.linkedin.com/feed/update/urn:li:activity:7320867199693246465/",
    "https://www.linkedin.com/feed/update/urn:li:activity:7408723748973056001?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7408723748973056001%2C7408723949095772161%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287408723949095772161%2Curn%3Ali%3Aactivity%3A7408723748973056001%29"
  ],
  "maxItems": 10,
  "profileScraperMode": "short",
  "maxRequests": 10000,
  "maxResults": 100000,
  "maxPages": 100
}
```

# Actor output Schema

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

No description

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

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "posts": [
        "https://www.linkedin.com/posts/satyanadella_today-at-microsoft-build-we-showed-you-how-activity-7330296202275495938-EWFD?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
        "https://www.linkedin.com/posts/microsoft-events_microsoft-build-has-arrived-in-seattle-and-ugcPost-7329991434395160578-GnK7?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
        "https://www.linkedin.com/feed/update/urn:li:activity:7320867199693246465/",
        "https://www.linkedin.com/feed/update/urn:li:activity:7408723748973056001?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7408723748973056001%2C7408723949095772161%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287408723949095772161%2Curn%3Ali%3Aactivity%3A7408723748973056001%29"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlkite/linkedin-post-reactions").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 = {
    "posts": [
        "https://www.linkedin.com/posts/satyanadella_today-at-microsoft-build-we-showed-you-how-activity-7330296202275495938-EWFD?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
        "https://www.linkedin.com/posts/microsoft-events_microsoft-build-has-arrived-in-seattle-and-ugcPost-7329991434395160578-GnK7?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
        "https://www.linkedin.com/feed/update/urn:li:activity:7320867199693246465/",
        "https://www.linkedin.com/feed/update/urn:li:activity:7408723748973056001?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7408723748973056001%2C7408723949095772161%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287408723949095772161%2Curn%3Ali%3Aactivity%3A7408723748973056001%29",
    ],
    "maxItems": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "posts": [
    "https://www.linkedin.com/posts/satyanadella_today-at-microsoft-build-we-showed-you-how-activity-7330296202275495938-EWFD?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
    "https://www.linkedin.com/posts/microsoft-events_microsoft-build-has-arrived-in-seattle-and-ugcPost-7329991434395160578-GnK7?utm_source=share&utm_medium=member_desktop&rcm=ACoAACzazy4B3ajZsA0WxWr6m4S77iItYbYCLZM",
    "https://www.linkedin.com/feed/update/urn:li:activity:7320867199693246465/",
    "https://www.linkedin.com/feed/update/urn:li:activity:7408723748973056001?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7408723748973056001%2C7408723949095772161%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287408723949095772161%2Curn%3Ali%3Aactivity%3A7408723748973056001%29"
  ],
  "maxItems": 10
}' |
apify call crawlkite/linkedin-post-reactions --silent --output-dataset

```

## MCP server setup

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

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

## OpenAPI specification

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