LinkedIn Post Analytics Scraper
Pricing
from $5.00 / 1,000 linkedin post analytics rows
LinkedIn Post Analytics Scraper
Scrape public LinkedIn post analytics from post URLs: reactions, comments, engagement rate vs author followers, media type, author, optional transcript. Use for content reporting. For engager identities use linkedin-post-engagers-scraper. One row per post. $0.005/row.
Pricing
from $5.00 / 1,000 linkedin post analytics rows
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Turn public LinkedIn post URLs into one analytics row per post for content teams, agencies, and competitor-research agents. Each row includes reactionCount, commentCount, engagementRatePct versus the author's public follower count, mediaType, author context, and an optional video transcript. No LinkedIn login or cookies.
This Actor scores posts you already have URLs for using public reaction and comment totals plus engagement rate versus author followers. For the people commenting on a post, continue with LinkedIn Post Engagers Scraper after you have the post URL.
Best fit for this Actor
- Benchmark a competitor's last five posts by reactions, comments, and engagement rate vs follower count.
- Build a weekly client report of owned or industry posts without logging into LinkedIn.
- Compare video vs document vs text formats on the same author's public posts.
- Feed an AI agent a short list of post URLs and get structured JSON for a dashboard or CRM note.
For commenter identities, continue with LinkedIn Post Engagers Scraper. For author firmographics after you have a company URL, use LinkedIn Company Search Scraper.
Practical scenario
A social lead pastes a Microsoft video post URL and an Anthropic document post URL. The run returns two OK rows: the video post has 379 reactions, 25 comments, media type video, and a transcript preview; the document post has 10,889 reactions, 607 comments, and media type document. Engagement rate is (reactions + comments) / author followers, so a 28-million-follower company page and a 4-million-follower research page are comparable. A deleted URL comes back as VALID_EMPTY with no post-analytics charge.
Quick start input
{"postUrls": ["https://www.linkedin.com/feed/update/urn:li:activity:7468770468041502720/"],"maxItems": 20,"includeTranscript": false,"providerOrder": "scrapecreators-first"}
postUrls accepts activity URLs, /posts/ URLs, and pulse article URLs. Duplicate URLs are deduplicated. Profile and company page URLs are skipped.
Input reference
| Field | Type | What it controls |
|---|---|---|
postUrls | array | Required post URLs. Example: https://www.linkedin.com/feed/update/urn:li:activity:7468770468041502720/. Max 100 unique values. |
maxItems | integer | Cap on unique posts processed. Default 20, max 100. |
includeTranscript | boolean | Include the full public video transcript. Default false keeps a 280-character transcriptPreview. |
providerOrder | enum | scrapecreators-first (default) or sociavault-first. Fallback fires automatically. |
maxConcurrency | integer | Posts processed in parallel. Default 2, max 5. |
What data you receive
One dataset item is one LinkedIn post.
{"outcome": "OK","postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7468770468041502720/","resolvedPostUrl": "https://www.linkedin.com/posts/microsoft_activity-7468770468041502720-mGV1","postId": "7468770468041502720","authorName": "Microsoft","authorUrl": "https://www.linkedin.com/company/microsoft","authorType": "company","authorFollowerCount": 28914824,"reactionCount": 379,"commentCount": 25,"totalEngagements": 404,"engagementRatePct": 0.0014,"commentsPerReaction": 0.066,"mediaType": "video","hasTranscript": true,"publishedAt": "2026-06-05T21:07:22.617Z","provider": "scrapecreators","scrapedAt": "2026-08-21T12:00:00.000Z"}
| Field | Meaning |
|---|---|
reactionCount | Public reaction total. LinkedIn often labels this as likes even when it includes all reaction types. |
engagementRatePct | ((reactions + comments) / author followers) * 100. Null when follower count is missing. |
mediaType | video, document, carousel, image, media, or text. |
outcome | OK billed; VALID_EMPTY when the post is private, deleted, or not public (no post-analytics charge). |
OUTPUT and RUN_SUMMARY in the default key-value store hold outcome, itemsPushed, and chargedEventCounts.
You can download the dataset as JSON, CSV, Excel, or HTML from the Dataset tab.
Use through the API
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~linkedin-post-analytics-scraper/runs" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"postUrls":["https://www.linkedin.com/feed/update/urn:li:activity:7468770468041502720/"]}'
Results land in the run's default dataset. Paginate with offset/limit.
Use with AI agents through Apify MCP
Score these LinkedIn post URLs. Return authorName, reactionCount, commentCount, engagementRatePct, mediaType, publishedAt, outcome, and provider.
Connect via https://mcp.apify.com. Read OUTPUT.outcome and itemsPushed to interpret empty datasets. The actor is exposed as apify--linkedin-post-analytics-scraper.
Connect the workflow
- After you have post URLs, extract commenters with LinkedIn Post Engagers Scraper.
- For public profile context on an author handle, use LinkedIn Profile Details Scraper.
- For emails on other public websites, use Contact Details Scraper.
Pricing
Pay per event plus platform usage. Confirm current event prices on the live Pricing tab; that tab is the source of truth if this page ever lags.
apify-actor-start: $0.00005 per runpost-analytics: $0.005 perOKrow
A one-post check is about $0.005 in result events plus a few seconds of Apify platform usage. VALID_EMPTY rows have no post-analytics charge. Provider credits are paid by the Actor owner.
| Run | Billed rows | Event cost (approx.) |
|---|---|---|
| One post | 1 | ~$0.005 |
| 10-post weekly report | 10 | ~$0.05 |
| 20-post default batch | 20 | ~$0.10 |
| 100-post max batch | 100 | ~$0.50 |
How it works
- Normalize and deduplicate post URLs.
- Fetch public post JSON from ScrapeCreators, then SociaVault.
- Flatten reaction and comment counts, compute engagement rate vs author followers, and classify media type.
- Charge
post-analyticsonly after a usableOKrow, then write the row.
Private, deleted, or non-public posts finish as VALID_EMPTY with zero fabricated metrics.
Best results
- Pass post, activity, or pulse URLs. Keep profile and company URLs for the matching scrapers.
- Compare
engagementRatePctacross authors of similar follower size; a 28M-follower page and a 50k-follower person are not the same base. - Use
mediaTypeto split video vs document vs text before ranking posts. - Leave
includeTranscriptoff unless you need the full spoken text. The preview is enough to see that a transcript exists. - A typo or deleted post finishes
SUCCEEDEDwith aVALID_EMPTYrow and nopost-analyticscharge.
Best results for recovery and data quality
- Public metrics. Reactions, comments, author followers, media, and transcripts that appear without login. Owner-only impression dashboards stay with LinkedIn's native analytics.
- Single reaction total. Public provider payloads expose one reaction count covering all visible reaction types.
- Share counts when present. The field is written when a provider returns it.
- People rows. Continue with LinkedIn Post Engagers Scraper when you need commenter identities.
- Per-URL resilience. Provider hiccups retry, then fall back. Mixed success is
PARTIAL. A fully unavailable URL set isUPSTREAM_FAILED.
Builder's note
I built this after I found that both public providers already return reaction totals, comment totals, author followers, media URLs, and sometimes a transcript — enough to score a post without a browser. In my testing, engagement rate versus follower count was the useful derived metric: it lets you compare a viral document on a mid-size page with a quiet video on a huge company page. Every row still carries provider and scrapedAt so you can see source and freshness.
FAQ
Which metrics are in each row? Public reaction and comment totals plus an engagement rate versus the author's public follower count. Owner-only impression dashboards remain in LinkedIn's native analytics.
Is LinkedIn login or cookies required? No. The default path is cookieless providers. You never supply cookies, credentials, or a personal LinkedIn account.
What happens if a post is deleted or restricted?
The row is VALID_EMPTY with a reason, no post-analytics charge. Runs with at least one OK post still finish with useful data.
Can an AI agent use this?
Yes. One postUrls tool call returns schema-valid rows, provenance, and a named OUTPUT.outcome.
Legal
This Actor retrieves publicly available data. You are responsible for complying with LinkedIn's Terms of Service, applicable data-protection laws (GDPR/CCPA), and Apify's Exclusion Policy when using the results. This Actor is independent of LinkedIn.
Issues and feature requests: use the Actor Issues tab on Apify.