LinkedIn Newsletter Scraper
Pricing
Pay per event
LinkedIn Newsletter Scraper
📰 Extract public LinkedIn newsletter metadata, edition URLs, full issue text, authors, dates, images, and engagement counts—without login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
7 days ago
Last modified
Categories
Share
Extract public LinkedIn newsletters and issues into structured, analysis-ready data—without credentials. Start from concrete newsletter or public article URLs and receive metadata, edition links, full article text, images, dates, authors, and best-effort engagement counts.
What does LinkedIn Newsletter Scraper do?
LinkedIn Newsletter Scraper reads guest-accessible LinkedIn newsletter landing pages and public pulse issue pages. It can follow edition links automatically, so one newsletter URL becomes an ordered dataset containing the newsletter and its recent editions.
Use it to:
- 📰 discover editions from a public newsletter
- ✍️ extract full public article text
- 👤 capture author names, profile URLs, and exposed follower counts
- 📅 collect publication and modification dates
- 🖼️ export cover and inline image URLs
- 💬 capture public reaction and comment totals when exposed
Who is it for?
- Content intelligence teams monitoring competitor publishing
- Agencies tracking thought-leadership programs
- Researchers building public newsletter archives
- Recruiters and sales teams studying expert topics and authors
- Data engineers feeding digests, search indexes, or RAG pipelines
- Analysts comparing cadence and engagement across newsletters
Why use this actor?
Manual copy-and-paste loses structure and does not scale. This actor produces consistent JSON, CSV, Excel, XML, or RSS-compatible exports through Apify datasets. It uses HTTP-first extraction, structured metadata, bounded retries, and optional Apify Proxy for reliable automation.
What data can I extract?
| Field | Description |
|---|---|
type | newsletter or issue |
title | Newsletter or issue title |
description | Public summary or article headline |
authorName | Creator or issue author |
authorUrl | Public LinkedIn profile URL |
cadence | Published daily, weekly, monthly, etc. when shown |
followerCount | Public author follower count when exposed |
publishedAt | Structured issue publication timestamp |
modifiedAt | Structured issue modification timestamp |
bodyText | Clean full issue text |
imageUrls | Cover and article image URLs |
issueUrls | Editions discovered from a newsletter |
reactionCount | Public reaction total when exposed |
commentCount | Public comment total when exposed |
canonicalUrl | Canonical public LinkedIn URL |
scrapedAt | UTC extraction timestamp |
How to scrape a LinkedIn newsletter
- Open the actor input.
- Paste one or more concrete
linkedin.com/newsletters/...URLs. - Leave Extract linked issues enabled.
- Choose a practical record limit.
- Click Start.
- Export the resulting dataset in your preferred format.
How to extract one LinkedIn article
Paste a public linkedin.com/pulse/... URL and set includeIssues to false. The actor returns the issue title, author, dates, full body, image URLs, canonical URL, and available engagement totals.
Input
{"startUrls": [{ "url": "https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248" }],"includeIssues": true,"maxItems": 10,"maxIssuesPerNewsletter": 9}
Only concrete public newsletter and issue URLs are supported. A generic LinkedIn directory, search query, private feed, or authenticated analytics URL is not an input source.
Output example
{"type": "issue","url": "https://www.linkedin.com/pulse/example-slug","canonicalUrl": "https://www.linkedin.com/pulse/example-slug","title": "Example newsletter issue","authorName": "Example Author","publishedAt": "2026-04-18T04:11:38.000+00:00","bodyText": "Full public article text...","imageUrls": ["https://media.licdn.com/example.jpg"],"reactionCount": 51,"commentCount": 9,"scrapedAt": "2026-07-12T00:00:00.000Z"}
Fields that LinkedIn does not expose publicly are omitted rather than fabricated.
How much does it cost to scrape LinkedIn newsletters?
This actor uses pay-per-event pricing: $0.005 per run plus a charge for each saved dataset record. Per-record prices are FREE $0.00024896, BRONZE $0.00021649, SILVER $0.00016886, GOLD $0.00012989, PLATINUM $0.000086596, and DIAMOND $0.000060617. Set maxItems to cap both output and variable cost.
Tips for reliable runs
- Use canonical, public LinkedIn URLs.
- Start with a low
maxItemswhile designing a workflow. - Keep Apify Proxy enabled for scheduled monitoring.
- Split very large source lists across scheduled runs.
- Treat reactions, comments, cadence, and follower counts as best-effort fields.
- Deduplicate downstream by
canonicalUrl.
Monitoring workflow
Save a task containing your newsletter URLs and run it on a schedule. Compare canonicalUrl values with a previous dataset to identify newly published editions. Send new records to Slack, email, a database, or a vector store through an Apify integration or webhook.
Competitor intelligence workflow
Group newsletter URLs by company, creator, or topic. Extract recent editions, then analyze publishing cadence, themes, article length, calls to action, and public engagement. The structured dataset is easier to compare than unstructured browser pages.
RAG and digest workflow
Use bodyText as the document content and canonicalUrl as the stable source identifier. Store title, author, and publishedAt as metadata. Chunk text downstream according to your model or vector database, then generate summaries or searchable knowledge collections.
Integrations
Send output to:
- Google Sheets for editorial tracking
- Slack for new-edition alerts
- Make or Zapier for no-code workflows
- webhooks for ingestion services
- Amazon S3 or Google Drive for archives
- PostgreSQL, BigQuery, or a vector database for analysis
Apify datasets also expose API endpoints for JSON, CSV, Excel, XML, and RSS exports.
API usage
Run the actor programmatically with the Apify API or official clients. The examples below use the stable actor ID automation-lab/linkedin-newsletter-scraper.
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/linkedin-newsletter-scraper').call({startUrls: [{ url: 'https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248' }],includeIssues: true,maxItems: 10});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API example
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/linkedin-newsletter-scraper').call(run_input={'startUrls': [{'url': 'https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248'}],'includeIssues': True,'maxItems': 10,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL API example
curl -X POST \'https://api.apify.com/v2/acts/automation-lab~linkedin-newsletter-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248"}],"maxItems":10}'
MCP and AI assistants
Connect through https://mcp.apify.com/?tools=automation-lab/linkedin-newsletter-scraper in Claude Code or another MCP client. Example prompts:
- “Extract this LinkedIn newsletter and summarize its latest editions.”
- “Build a table of issue dates, authors, and engagement.”
- “Collect article text from these public LinkedIn issue URLs for my RAG corpus.”
Add it to Claude Code:
$claude mcp add apify --transport http 'https://mcp.apify.com/?tools=automation-lab/linkedin-newsletter-scraper'
For Claude Desktop or another JSON-configured client, add:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com/?tools=automation-lab/linkedin-newsletter-scraper"}}}
Authenticate with your Apify account when the client opens the connection.
Scheduling
Create an Apify task, save validated input, and configure a daily or weekly schedule. A webhook can trigger downstream processing after each successful run. Keep source lists stable and compare canonical URLs to detect additions.
Error handling
Unsupported URLs are skipped with a warning. Temporary HTTP failures receive bounded retries. Interstitial or incomplete responses are treated as failures instead of producing misleading empty records. A run fails clearly if no valid record can be extracted.
Troubleshooting
Why did a field disappear? LinkedIn does not expose every field on every public page. Optional engagement, follower, or cadence fields are omitted when unavailable.
Why did my URL fail? Confirm it is a public linkedin.com/newsletters/... or linkedin.com/pulse/... URL. Private feeds, profile posts, search pages, and login-only pages are outside this actor's scope.
Why are fewer issues returned than requested? A newsletter landing page may expose only a limited recent-edition window. maxItems is an upper bound, not a promise to invent records.
Data quality
The extractor prefers canonical links and Article JSON-LD, then supplements them with semantic page HTML. Text whitespace is normalized. URLs are canonicalized and tracking query strings are removed. Missing optional values remain absent.
Is scraping LinkedIn legal?
This actor extracts public pages without credentials. Scraping legality depends on jurisdiction, purpose, contract, and data handling. Use the actor responsibly, respect applicable laws and platform terms, avoid personal-data misuse, and consult legal counsel for regulated use cases.
Privacy and scope
The actor does not collect subscriber identities, private feeds, authenticated analytics, messages, or account credentials. It processes only the concrete public newsletter and issue URLs supplied by the user and public edition links discovered there.
Related scrapers
Explore other public-data tools from automation-lab, including LinkedIn profile, company, jobs, and post actors. Choose the focused actor whose documented public input and output match your workflow.
FAQ
Can it discover every LinkedIn newsletter? No. Supply concrete newsletter or issue URLs.
Does it need my LinkedIn login? No. The core workflow uses public guest-accessible pages.
Can it extract subscriber lists? No. Subscriber identities and private analytics are explicitly out of scope.
Can I export CSV or Excel? Yes. Use the dataset export controls or API.
Can I scrape multiple newsletters? Yes. Add multiple entries to startUrls and choose an appropriate limit.
Does it follow editions automatically? Yes, when includeIssues is enabled.
Are engagement counts guaranteed? No. They are included only when LinkedIn exposes them publicly.
Support
If a validated public URL stops working, open an issue from the actor page and include the URL, run ID, expected output, and observed error. Do not include credentials or private data.