LinkedIn Profile Posts Scraper & Content Monitor (No Login) avatar

LinkedIn Profile Posts Scraper & Content Monitor (No Login)

Pricing

$0.75 / 1,000 profile posts

Go to Apify Store
LinkedIn Profile Posts Scraper & Content Monitor (No Login)

LinkedIn Profile Posts Scraper & Content Monitor (No Login)

Scrape public LinkedIn profile posts without login. Extract full text, verified dates, reactions, comments, media, external links, author details, and quality scores. Ideal for creator research, brand monitoring, lead signals, competitive intelligence, and scheduled content tracking.

Pricing

$0.75 / 1,000 profile posts

Rating

0.0

(0)

Developer

Cracks API

Cracks API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

18 days ago

Last modified

Share

LinkedIn Profile Posts Scraper & Content Monitor

Scrape and monitor publicly available LinkedIn profile posts without a LinkedIn login. Start with exact profile URLs and export structured post text, publication dates, engagement, media, external links, author details, visible comment samples, and transparent quality evidence.

Unofficial. This independent Actor is not affiliated with, endorsed by, or sponsored by LinkedIn. LinkedIn is a trademark of its respective owner.

What this Actor does

  • Accepts exact https://www.linkedin.com/in/... profile URLs
  • Discovers publicly indexed posts and articles without cookies
  • Opens each discovered public post page for richer structured metadata
  • Extracts full visible post text instead of returning only search snippets
  • Extracts verified publication timestamps from public Schema.org data
  • Captures reactions, comments, media, outbound links, and author followers when visible
  • Returns up to 10 publicly visible comment previews when exposed
  • Sorts enriched posts newest first and deduplicates by post URL or ID
  • Filters by date range, keyword, and content type
  • Supports optional caller-authorized enrichment using secret session inputs
  • Keeps thin, failed, empty, dry-run, and charge-limit records uncharged
  • Exports through JSON, CSV, Excel, XML, REST API, webhooks, n8n, Make, Zapier, and MCP

Best use cases

Executive and creator monitoring

Track the public content of executives, founders, creators, candidates, speakers, and industry experts from a curated list of exact profile URLs.

Sales and recruiting research

Use recent public posts to understand visible interests, launches, hiring themes, priorities, and professional expertise before personalized outreach.

Content and competitor intelligence

Analyze publishing frequency, topics, post formats, external links, engagement, and media usage across selected profiles.

Automated alerts

Schedule recurring runs, store previously seen postId or postUrl values, and trigger an alert only when a new post matches your keyword or content-type rules.

Collection modes

public

The default. Requires no LinkedIn account or cookies. It discovers public post URLs through web indexes, then enriches each result from the directly accessible public post page and its Schema.org metadata.

auto

Uses the optional caller-authorized session only when both secret values are supplied. If that route is unavailable, it safely falls back to public collection.

authenticated

Uses the caller's own authorized li_at and JSESSIONID values. If the authorized route fails, the Actor returns an uncharged error rather than silently changing modes.

Secret values are never written to the dataset or logs.

Input

FieldTypeDescription
profileUrlsstring[]Required exact LinkedIn /in/ profile URLs
maxProfilesintegerMaximum unique profiles to process
maxPostsPerProfileintegerMaximum rich posts returned per profile
modestringpublic, auto, or authenticated
liAt, jsessionIdsecret stringOptional caller-authorized session values
dateFrom, dateTostringOptional ISO date or timestamp boundaries
keywordsstring[]Case-insensitive OR filter across visible text and links
contentTypesstring[]all, post, article, video, image, document, poll, newsletter, repost, or unknown
requestDelaySecsnumberBase polite delay; default 1 second
maxRetriesintegerRetry limit for transient network and rate-limit errors
maxTotalChargenumberOptional local USD cap before the next paid result
dryRunbooleanValidate inputs without network requests or paid events
proxyConfigurationobjectOptional Apify proxy configuration

Example input

{
"profileUrls": [
"https://www.linkedin.com/in/satyanadella/"
],
"maxPostsPerProfile": 2,
"mode": "public",
"contentTypes": ["all"],
"requestDelaySecs": 1,
"maxRetries": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output fields

Every successful record represents one public post or article and can include:

  • postId, postUrl, profileUrl, publicIdentifier
  • authorName, authorProfileUrl, authorHeadline, authorImageUrl, authorFollowers
  • text, publishedAt, contentType
  • reactionsCount, commentsCount, repostsCount
  • media, externalLinks, commentsPreview
  • qualityScore, qualityReasons
  • sourceMode, sourceEvidence
  • requestedMode, requestedAt, status, error

Example:

{
"postId": "7502385664945111040",
"postUrl": "https://www.linkedin.com/posts/example_activity-7502385664945111040-abcd",
"profileUrl": "https://www.linkedin.com/in/example/",
"publicIdentifier": "example",
"authorName": "Example Person",
"authorProfileUrl": "https://www.linkedin.com/in/example/",
"authorHeadline": "Founder and CEO",
"authorFollowers": 120000,
"text": "Full publicly visible post text...",
"publishedAt": "2026-09-06T15:22:10.036Z",
"contentType": "video",
"reactionsCount": 3252,
"commentsCount": 210,
"repostsCount": null,
"media": [
{
"type": "video",
"url": "https://...",
"thumbnailUrl": "https://..."
}
],
"externalLinks": ["https://example.com/article"],
"commentsPreview": [
{
"authorName": "Public Commenter",
"text": "Publicly visible comment...",
"publishedAt": "2026-09-06T16:20:33.728Z",
"reactionsCount": 3
}
],
"qualityScore": 100,
"qualityReasons": [
"full public post text",
"verified publication date",
"reaction count",
"comment count",
"media metadata"
],
"sourceMode": "public_post_page",
"status": "success"
}

Unavailable fields remain null. The Actor does not invent post dates, engagement, authors, media, or links.

Quality and billing

A result is charged only when it passes the paid quality gate. A paid post must contain:

  1. A valid LinkedIn post URL
  2. Meaningful visible text
  3. A visible author
  4. A verified publication timestamp
  5. At least one rich signal from engagement, media, or an external link

Thin indexed snippets are returned as insufficient_data without a paid event. Errors, empty results, dry runs, and local charge-limit records are also uncharged.

Pricing

  • Profile post: $0.75 per 1,000 successful rich posts

One successful result emits exactly one profile-post event. The public Store price is authoritative.

API

Replace <APIFY_TOKEN> with your Apify API token.

curl -X POST \
"https://api.apify.com/v2/acts/generous_fog~linkedin-profile-posts-scraper-content-monitor/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"profileUrls": ["https://www.linkedin.com/in/satyanadella/"],
"maxPostsPerProfile": 2,
"mode": "public"
}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('generous_fog/linkedin-profile-posts-scraper-content-monitor').call({
profileUrls: ['https://www.linkedin.com/in/satyanadella/'],
maxPostsPerProfile: 2,
mode: 'public',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("generous_fog/linkedin-profile-posts-scraper-content-monitor").call(run_input={
"profileUrls": ["https://www.linkedin.com/in/satyanadella/"],
"maxPostsPerProfile": 2,
"mode": "public",
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

n8n, Make, Zapier, and MCP

Use the synchronous API endpoint for small runs or start the Actor asynchronously for larger scheduled monitoring jobs. Send the Actor input as JSON, wait for the run to finish, then pass the default dataset to Google Sheets, Airtable, a CRM, Slack, email, a database, or an AI-analysis step.

For recurring monitoring, deduplicate downstream by postId or postUrl before sending alerts.

Dataset views

  • Successful posts: core author, text, date, quality, and source fields
  • Engagement metrics: reactions, comments, reposts, follower count, and visible comment previews
  • Media and external links: post assets, outbound links, quality reasons, and source evidence
  • Errors, empty results, and limits: uncharged operational and insufficient-data records

Limitations

  • Profile-to-post discovery relies on public web indexes and can lag behind the live LinkedIn feed.
  • Public pages vary by profile, region, language, and time.
  • Some public posts expose no repost count or complete engagement breakdown.
  • Deleted, private, connection-only, or non-indexed posts cannot be returned in public mode.
  • Optional authorized endpoints and response structures can change.
  • Residential proxies can improve availability but cannot guarantee coverage.

The Actor does not bypass CAPTCHA, authentication walls, access controls, or platform restrictions. Use public personal data responsibly and follow applicable privacy, employment, marketing, and data-protection laws.

More LinkedIn Actors by Cracks API