# LinkedIn Pulse Articles Scraper (No Cookies) (`scrapemint/linkedin-pulse-articles-scraper`) Actor

Pull long-form Pulse articles from any LinkedIn author or by topic without a cookie or login. Each row carries title, full body, author, published date, cover image, and topic tags. Discover by author profile, by keyword, or paste article URLs. JSON. Pay per article.

- **URL**: https://apify.com/scrapemint/linkedin-pulse-articles-scraper.md
- **Developed by:** [Kennedy Mutisya](https://apify.com/scrapemint) (community)
- **Categories:** Jobs, Social media, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Pulse Articles Scraper (No Login Required)

Pull long-form Pulse articles from any LinkedIn author or by topic. No cookies. No login. No Sales Navigator seat. Each row ships the full article body, title, author, published date, cover image, topic tags, word count, and engagement counts. Pay per article.

**Built for** content marketers, ghostwriters, competitive intelligence teams, and analysts who need clean structured access to LinkedIn long form content for benchmarking, research, and lead generation.

**Keywords this actor ranks for:** linkedin pulse scraper, linkedin article api, linkedin long form content scraper, linkedin pulse to json, linkedin author tracker, linkedin thought leadership tracker, linkedin content benchmarking, linkedin article scraper no cookie, scrape linkedin pulse, linkedin newsletter alternative, linkedin content monitoring, content competitive intel.

---

### Why this actor

| Other LinkedIn article scrapers | **This actor** |
|---|---|
| Need your session cookie | Zero cookies, zero login |
| Risk your account on every run | Touches only public surfaces with residential proxy |
| Single text blob per article | Title, subtitle, body, author, date, tags all parsed into discrete fields |
| Only accept direct URLs | Discover by author profile, by keyword, or paste URLs |
| Drop word count and reading time | Both included on every row |

---

### How it works

```mermaid
flowchart LR
    A1[Article URLs] --> C[Public Pulse page<br/>residential proxy]
    A2[Author profiles] --> B[Search engine<br/>discovery layer]
    A3[Keywords] --> B
    B --> C
    C --> D[Parse JSON-LD Article<br/>plus meta tags]
    D --> E[Normalize into discrete fields]
    E --> F[Push one row per article]
    F --> G[(JSON CSV Excel API)]
````

Discovery happens through search engines that already index public LinkedIn Pulse URLs. Each article is then fetched with a real Chrome browser fingerprint behind a residential proxy, the actor parses the JSON-LD Article schema first, then falls back to Open Graph meta tags and DOM extraction.

***

### What you get per row

```mermaid
flowchart LR
    R[Article row] --> R1[Identity<br/>key url title]
    R --> R2[Author<br/>name profileUrl headline]
    R --> R3[Content<br/>subtitle bodyText bodyHtml]
    R --> R4[Stats<br/>wordCount readingMinutes]
    R --> R5[Tags<br/>topic tags array]
    R --> R6[Timing<br/>publishedAt updatedAt]
```

***

### Quick start

**Track every article from one author**

```json
{
  "profileUrls": ["https://www.linkedin.com/in/satyanadella/"],
  "maxArticles": 50
}
```

**Topic discovery (find Pulse articles on a topic)**

```json
{
  "keywords": ["AI strategy", "devrel playbook"],
  "maxArticles": 25
}
```

**Enrich a known article list**

```json
{
  "articleUrls": [
    "https://www.linkedin.com/pulse/your-article-slug-author-handle"
  ]
}
```

***

### Sample output

```json
{
  "key": "ai-electricity-our-time-satya-nadella",
  "url": "https://www.linkedin.com/pulse/ai-electricity-our-time-satya-nadella/",
  "discoveredVia": { "kind": "profile", "value": "profile:satyanadella" },
  "title": "AI is the new electricity",
  "subtitle": null,
  "author": {
    "name": "Satya Nadella",
    "profileUrl": "https://www.linkedin.com/in/satyanadella/",
    "headline": "Chairman and CEO at Microsoft"
  },
  "publishedAt": "2026-04-21T14:00:00.000Z",
  "updatedAt": null,
  "bodyText": "Every era has a foundational technology...",
  "bodyHtml": "<p>Every era has a foundational technology...</p>",
  "wordCount": 1820,
  "readingMinutes": 8,
  "coverImage": "https://media.licdn.com/dms/image/...",
  "tags": ["Artificial Intelligence", "Leadership", "Strategy"],
  "engagement": { "reactions": 12400, "comments": 318 },
  "scrapedAt": "2026-05-08T10:00:00.000Z"
}
```

***

### Who uses this

| Role | Use case |
|---|---|
| Content marketer | Benchmark long form performance across a peer set |
| Ghostwriter | Pull every published article from a target executive to study voice |
| Competitive intel | Track what a competitor's CEO is publishing in real time |
| Analyst | Topic monitoring across a keyword list to spot emerging narratives |
| PR team | Track executive thought leadership output across a portfolio |
| Researcher | Build a long form dataset on a topic without paying a media monitoring vendor |

***

### Input reference

| Field | Type | What it does |
|---|---|---|
| `articleUrls` | string\[] | Direct Pulse article URLs. |
| `profileUrls` | string\[] | Author profiles to discover articles by. |
| `keywords` | string\[] | Topics to discover articles for via public search. |
| `maxArticles` | integer | Cap per profile or keyword. 0 means everything we can discover. |
| `includeBody` | boolean | Keep the full body text and HTML on each row. Default true. |
| `concurrency` | integer | Pages processed in parallel. Six is the safe default. |
| `proxyConfiguration` | object | Apify proxy. Residential is required at any meaningful volume. |

***

### API call

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/YOUR_USER~linkedin-pulse-articles-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profileUrls": ["https://www.linkedin.com/in/satyanadella/"],
    "maxArticles": 25
  }'
```

***

### Pricing

The first 3 articles per run are free so you can validate output before paying. After that, each article row is charged. No surprise add on charges.

***

### FAQ

#### Do I need a LinkedIn account or cookie?

No. The actor only touches LinkedIn's public Pulse pages from a residential proxy with a real Chrome fingerprint. Your account is never touched.

#### How does discovery work without my cookie?

A search engine site query finds public LinkedIn Pulse URLs from the target author or topic. Public Pulse URLs are designed to be indexed which is why articles show up in Google. The actor pulls each article from LinkedIn's public Pulse page after that.

#### Why do I need residential proxy?

LinkedIn aggressively blocks datacenter IPs on Pulse pages. Residential proxy is the only configuration that consistently returns the article body to anonymous viewers. Apify residential proxy is preconfigured by default.

#### How fresh is the data?

Each run hits the live article page so reaction counts, comment counts, and updated dates reflect what LinkedIn renders at scrape time.

#### Is scraping LinkedIn allowed?

This actor reads HTML any anonymous web visitor can see. Respect LinkedIn's terms and rate limit sensibly. Do not redistribute author or commenter identities you have no lawful basis to process.

***

### Related actors

- **LinkedIn Profile & Company Post Tracker** — scrape posts from any profile or company without a cookie
- **LinkedIn Company Profile Scraper** — name, industry, headcount range, HQ, specialties on every company row
- **LinkedIn Hiring Tracker & Salary Intelligence** — parsed salary, tech stack, and seniority on every job row
- **HN Lead Monitor** — Hacker News mentions and high intent leads
- **Reddit Brand Monitor & Lead Finder** — subreddit mentions and high intent leads

# Actor input Schema

## `articleUrls` (type: `array`):

Direct LinkedIn Pulse article URLs. Examples: 'https://www.linkedin.com/pulse/title-slug-author-handle'.

## `profileUrls` (type: `array`):

LinkedIn profile URLs whose Pulse articles you want to scrape. The actor uses public search engine discovery to find each author's articles. Examples: 'https://www.linkedin.com/in/satyanadella/'.

## `keywords` (type: `array`):

Topics to discover Pulse articles for via public search engines. Examples: 'AI strategy', 'devrel playbook', 'fintech infrastructure'.

## `maxArticles` (type: `integer`):

Hard cap on articles per profile or keyword. Set to 0 to take everything we can discover. Ignored for direct articleUrls.

## `includeBody` (type: `boolean`):

Pull the full article body. Turn off to keep only summary fields and reduce row size.

## `concurrency` (type: `integer`):

Number of pages processed in parallel. Higher concurrency runs faster but increases proxy and detection risk. Six is a safe default.

## `proxyConfiguration` (type: `object`):

Apify proxy. Residential is required for LinkedIn at any meaningful volume.

## Actor input object example

```json
{
  "articleUrls": [],
  "profileUrls": [],
  "keywords": [
    "AI strategy"
  ],
  "maxArticles": 20,
  "includeBody": true,
  "concurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "keywords": [
        "AI strategy"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/linkedin-pulse-articles-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 = {
    "keywords": ["AI strategy"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/linkedin-pulse-articles-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 '{
  "keywords": [
    "AI strategy"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scrapemint/linkedin-pulse-articles-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Pulse Articles Scraper (No Cookies)",
        "description": "Pull long-form Pulse articles from any LinkedIn author or by topic without a cookie or login. Each row carries title, full body, author, published date, cover image, and topic tags. Discover by author profile, by keyword, or paste article URLs. JSON. Pay per article.",
        "version": "0.1",
        "x-build-id": "GOSsfCxVCyCBYpPrc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemint~linkedin-pulse-articles-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemint-linkedin-pulse-articles-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/scrapemint~linkedin-pulse-articles-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapemint-linkedin-pulse-articles-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/scrapemint~linkedin-pulse-articles-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemint-linkedin-pulse-articles-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",
                "properties": {
                    "articleUrls": {
                        "title": "Article URLs",
                        "type": "array",
                        "description": "Direct LinkedIn Pulse article URLs. Examples: 'https://www.linkedin.com/pulse/title-slug-author-handle'.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "profileUrls": {
                        "title": "Author profile URLs",
                        "type": "array",
                        "description": "LinkedIn profile URLs whose Pulse articles you want to scrape. The actor uses public search engine discovery to find each author's articles. Examples: 'https://www.linkedin.com/in/satyanadella/'.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "keywords": {
                        "title": "Keyword search",
                        "type": "array",
                        "description": "Topics to discover Pulse articles for via public search engines. Examples: 'AI strategy', 'devrel playbook', 'fintech infrastructure'.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxArticles": {
                        "title": "Max articles per source",
                        "minimum": 0,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Hard cap on articles per profile or keyword. Set to 0 to take everything we can discover. Ignored for direct articleUrls.",
                        "default": 20
                    },
                    "includeBody": {
                        "title": "Include full body",
                        "type": "boolean",
                        "description": "Pull the full article body. Turn off to keep only summary fields and reduce row size.",
                        "default": true
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Number of pages processed in parallel. Higher concurrency runs faster but increases proxy and detection risk. Six is a safe default.",
                        "default": 6
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy. Residential is required for LinkedIn at any meaningful volume.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
