LinkedIn Post Scraper API - Text, Exact Counts, Top Comments
Pricing
from $1.50 / 1,000 job (full posting)s
LinkedIn Post Scraper API - Text, Exact Counts, Top Comments
Public LinkedIn post links in, the full post out: text, exact reaction and comment counts, author with exact followers, images, native video URL, reshare origin, and the comments shown on the page.
Pricing
from $1.50 / 1,000 job (full posting)s
Rating
0.0
(0)
Developer
Blackcube
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
The LinkedIn suite
- LinkedIn Scraper API — every public LinkedIn surface in one dataset
- LinkedIn Jobs Search Scraper API — keyword and location searches with filters re-checked on the posting
- LinkedIn Job Details Scraper API — job links or ids in, the full posting out
- LinkedIn Company Scraper API — company slugs or URLs in, exact counts and every office out
- LinkedIn Company Posts Scraper API — the newest posts on a company page with exact reaction and comment counts
- LinkedIn Pulse Article Scraper API — Pulse article links in, full text and exact engagement out
- LinkedIn Company Jobs Scraper API — company pages in, their open jobs out, id resolved for you
- LinkedIn New Jobs Scraper API — put a search on a daily schedule and pay only for postings you have not seen
- LinkedIn Profile Scraper API — public profiles with experience, education and exact follower counts — about 7 in 10 are shown, the rest are free
- LinkedIn Profile Posts Scraper API — a person's recent public posts, each read in full with exact counts
Paste LinkedIn post share links and get the full post, its exact counts, the native video and the comments shown on the page. No login, no cookies, no proxy to configure — it reads the pages LinkedIn shows to anyone. Failures are free: a closed job, a missing page or a page only members can see costs nothing and returns a row saying which.
Exact numbers, not display numbers. LinkedIn's page says "3M followers" or "10,001+ employees"; the rows carry 2,789,187 and 232,762.
Quick start
- Press Start — the defaults are a working run.
- Replace them with your own post share links (Share > Copy link on the post).
- Take the dataset as JSON, CSV or Excel, or via the API. Every row has a
type; the freecoveragerow says what was asked for and what arrived.
What people use it for
- Brand and competitor monitoring. What a company page is posting and how each post performs, with exact reaction and comment counts, on a schedule.
- Engagement analysis. Who is commenting on a post and what they say, from the comments LinkedIn shows publicly.
- Feeding an AI agent or workflow. One flat schema, a
typeon every row, and a free coverage row that says what was asked for and what arrived.
What the rows look like
A post row
{"type": "post","activityId": "7498030724533522432","url": "https://www.linkedin.com/posts/microsoft_august-2026-ai-powered-discovery-activity-7498030724533522432-IzKE","author": { "name": "Microsoft", "url": "https://www.linkedin.com/company/microsoft", "type": "company", "followers": 29006766 },"text": "Curiosity drives discovery, sparking questions about how we can better understand our world ...","publishedAt": "2026-08-25T14:57:11.372Z","reactions": 745,"comments": 98,"mediaType": "article","article": { "title": "August 2026: AI-powered discovery", "url": "https://www.linkedin.com/pulse/..." },"commentsShownCount": 10}
reactions and comments are exact. With comments on, each comment LinkedIn shows on the page (about ten) is its own comment row with the commenter, their profile URL, the text, the date and its like count.
What it costs
| You pay for | Price |
|---|---|
| Each post delivered | $3.00 per 1,000 posts |
| Add-on: each comment shown on a post | $2.00 per 1,000 comments |
Free, always: a job that has closed, a company, post or article that does not exist, a page LinkedIn only shows to signed-in members, a malformed URL, every error row, the coverage row and the run summary. A run that reads nothing costs nothing.
Set Cost ceiling (USD) to stop any run before it passes a number you choose; the free summary row reports what the run actually spent.
FAQ
Do I need a LinkedIn login, cookies or a proxy?
No. This Actor reads the pages LinkedIn shows to anyone without an account, and it never signs in, never sends a cookie and never uses a session. Everything is handled for you and there is nothing to buy on top. Measured 2026-09-02: a full default run read 25 pages from an ordinary IP with no proxy traffic at all.
Can I get every comment and every reaction on a post?
No, and it says so rather than pretending. The public post page carries the exact totals and about ten comments; the list of everyone who reacted is only shown to signed-in members. You get the exact counts, the comments shown, and the native video and image URLs.
Which post URL should I paste?
The share link: open the post, Share > Copy link. It looks like linkedin.com/posts/<author>_...-activity-<id>-<code>. Links of the /feed/update/urn:li:activity:... form are only served to signed-in members and come back as a free row telling you that.
What happens to a job that closed or a page that does not exist?
It costs nothing. You get a free error row that says which (closed, not found, or only visible to members), and the run keeps going.
Does a run fail if everything I asked for is gone?
No. "All of these have closed" is a correct answer, not a failure, so the run succeeds and returns free rows explaining each one. Only LinkedIn actually refusing us fails a run.
Can I put this on a schedule without paying twice for the same data?
Yes. Turn Monitor on. A company, post or article whose numbers have not moved is a free row marked unchanged.
Will I be charged twice if the same thing appears twice in my input?
No. A post reached through a share link and again from a company page, or a job returned by two searches, is one row and one charge.
Limits, stated plainly
LinkedIn shows its search results (people, companies, content), employee lists, reaction lists and Sales Navigator only to signed-in members, and serves member profiles to visitors only at its own discretion (measured 2026-09-02 from Apify's own exits: 35 of 50 ordinary profiles, and the refused ones stay refused). This Actor reads public pages only and never signs in, so it sells none of those — and says so here rather than on your invoice.
A public post page shows about ten comments and no repost count; the exact reaction and comment totals are always there.
Use it from n8n, MCP, the API or a schedule
Built to be called by a workflow, not only from the Store form. The Actor is vonsensey/linkedin-post-scraper-api; every snippet below sends {}, which runs the defaults shown on the form — replace it with your own input.
n8n
Install the Apify community node (@apify/n8n-nodes-apify under Settings → Community Nodes, or search "Apify" on n8n Cloud). Add Apify → Run Actor with Actor vonsensey/linkedin-post-scraper-api and your input JSON, then Apify → Get Dataset Items on the run's defaultDatasetId and pipe the rows anywhere. For scheduled runs, the On new Apify Event trigger fires when a run of this Actor finishes.
MCP (Claude, Cursor, VS Code, any MCP client)
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=vonsensey/linkedin-post-scraper-api","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Your agent then calls vonsensey/linkedin-post-scraper-api as a tool with the same input the form takes and reads the dataset back.
REST API (one call, rows in the response)
curl -X POST "https://api.apify.com/v2/acts/vonsensey~linkedin-post-scraper-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d '{}'
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vonsensey/linkedin-post-scraper-api").call(run_input={})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('vonsensey/linkedin-post-scraper-api').call({});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Make, Zapier, LangChain, CrewAI
The Apify app in Make and Zapier has a Run an Actor module: pick vonsensey/linkedin-post-scraper-api. In LangChain and CrewAI the Apify tool wrappers take the same Actor id. A daily schedule needs nothing but the Console: Schedules → Create → this Actor → cron, and the dataset fills on its own.