LinkedIn Post Scraper avatar

LinkedIn Post Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
LinkedIn Post Scraper

LinkedIn Post Scraper

Scrape LinkedIn posts without login. Full post text, author, reactions total + breakdown, comment count, published date, media, and shared-content (reshares). HTTP/1.1 + residential proxy. Optional cookie for profile discovery.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Aurenic

Aurenic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape LinkedIn posts from profiles or direct URLs using your own session cookie. Full post text, author, reactions total + breakdown, comment count, published date, media, and shared-content. HTTP/1.1 + residential proxy.

What does LinkedIn Post Scraper do?

Extract posts from any public LinkedIn profile in two steps:

  1. Profile → posts discovery — pass a username (satyanadella) or profile URL. The actor loads /recent-activity/all/ and extracts the post URLs LinkedIn returns.
  2. Post → full data — each post URL is fetched and parsed for the full body text, author, publication timestamp, reactions total + per-type breakdown, comment count, images, and reshare context.

You can also pass direct post URLs without profiles for one-off fetches.

The actor needs your own LinkedIn session cookie to bypass LinkedIn's bot detection (HTTP 999). You paste it once per run — the actor never sees your password.

  1. Log in to linkedin.com in your browser
  2. Press F12 to open DevTools
  3. Go to the Application tab (Chrome/Edge) or Storage tab (Firefox)
  4. In the left sidebar: Cookies → https://www.linkedin.com
  5. Find the cookie named li_at
  6. Copy its Value (a long string starting with AQED...)
  7. Paste into the LinkedIn Cookie field — just the value, no li_at= prefix needed

The cookie lasts weeks to months. If the actor starts failing with HTTP 401/999 — cookie may be invalid or expired, re-copy it from your browser.

Alternatively, paste the entire cookie header string (li_at=...; JSESSIONID=...; bcookie=...) — both forms work.

Output fields

FieldDescription
postUrlCanonical post URL
activityIdNumeric activity ID
typeSocialMediaPosting, Article, VideoObject
textFull post body text
textLengthCharacter count
headlinePost headline when present
descriptionPage description fallback
authorNameAuthor display name
authorUrlAuthor profile URL
authorImageAuthor avatar
publishedAtISO 8601 publication timestamp
reactionsTotalTotal reactions
commentCountTotal comments
reactionsByTypePer-type breakdown object
imageCount / images / thumbnailAttached media
sharedContentOriginal post when this is a reshare
isReshareReshare flag
sourceProfileWhich profile produced this post
keywordsKeywords from structured data

Who is it for?

  • Social media analysts tracking post engagement and topic trends
  • Content marketers benchmarking competitor post performance
  • Recruiters and sales teams monitoring thought-leader activity
  • AI/ML builders sourcing LinkedIn post corpora for training
  • Brand monitoring teams watching mentions across public feeds
  • Newsrooms verifying quotes and viral posts

Pricing

$1.50 per 1,000 results. No subscription.

ResultsCost
100$0.15
1,000$1.50
10,000$15.00

How to use it

  1. Paste your LinkedIn Cookie (li_at value from DevTools).
  2. Enter one or more Profiles — usernames or URLs.
  3. Optionally add Direct Post URLs.
  4. Set Max Posts per Profile (default 10).
  5. Click Start.

Output example

{
"recordType": "linkedin-post",
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7488618410256523265/",
"activityId": "7488618410256523265",
"type": "SocialMediaPosting",
"text": "Three things I learned this year working on climate innovation...",
"textLength": 1842,
"authorName": "Bill Gates",
"authorUrl": "https://www.linkedin.com/in/williamhgates",
"authorImage": "https://media.licdn.com/dms/image/...",
"publishedAt": "2026-06-14T09:30:00Z",
"reactionsTotal": 18422,
"commentCount": 611,
"reactionsByType": { "Like": 15200, "Celebrate": 2100, "Support": 1122 },
"imageCount": 1,
"images": ["https://media.licdn.com/dms/image/..."],
"thumbnail": "https://media.licdn.com/dms/image/...",
"sharedContent": null,
"isReshare": false,
"sourceProfile": "williamhgates",
"scrapedAt": "2026-09-26T12:00:00.000Z"
}

Technical details

  • Cookie-authenticated requests. The li_at session cookie makes every request look like a real logged-in browser session — this is what bypasses LinkedIn's HTTP 999 bot-detection. No account is created by the actor; you supply your own session.
  • JSON-LD SocialMediaPosting is the primary extraction path. LinkedIn embeds a schema.org block on post pages — the actor parses it directly. DOM selectors are a fallback for text and images.
  • HTTP/1.1 required. LinkedIn's edge blocks HTTP/2 fingerprints regardless of headers. The actor uses got-scraping with http2: false.
  • Residential proxy for IP-level safety on top of the authenticated session. Rotates every 30 requests.
  • URL normalization — all three common post URL forms map to one canonical URL + activity ID. Deduping happens before fetching.
  • No browser, no rendering. Pure HTTP + Cheerio.

Known limits

  • Cookie is required. LinkedIn blocks unauthenticated profile access with HTTP 999. There is no keyless path — every working LinkedIn actor on the Apify Store requires a user-supplied cookie.
  • Cookie can expire. LinkedIn invalidates li_at after weeks to months, or when you log out of the browser session. The actor fails fast with HTTP 401/999 — cookie may be invalid or expired so you know to re-copy it.
  • Rate limits still apply per IP. Even authenticated sessions are rate-limited. The actor rotates residential proxy sessions every 30 requests.
  • Public activity only. The actor cannot see posts only visible to a user's connections — even with your cookie, it sees what your account can see.
  • commentCount is what LinkedIn publishes — the actor does not paginate into comment threads.
  • Some posts return short articleBody — LinkedIn truncates JSON-LD for very long posts. The DOM fallback catches most cases but not all.

FAQ

Do I need a LinkedIn account? You need to be logged into LinkedIn in your browser to obtain the cookie. The actor itself never creates or uses an account — it only uses the session token you paste.

Where exactly do I find the li_at cookie? DevTools (F12) → Application → Cookies → https://www.linkedin.com → find li_at → copy its value. Full step-by-step is in the README setup section above.

Is pasting my cookie safe? The cookie is a session token, not your password. It's passed only to linkedin.com from the actor's proxy IP. If you're worried about exposure, log out of LinkedIn in your browser afterward — this invalidates the cookie. Or use a dedicated throwaway LinkedIn session.

Why does the actor need a cookie? LinkedIn blocks unauthenticated profile access with a non-standard HTTP 999 status code. Cookies are how every working LinkedIn scraper on the Apify Store operates.

How long does the cookie last? Typically weeks to months, or until you log out of that browser session.

How do I export data? After a run, go to Storage → Export as JSON, CSV, Excel.

Support

Open an issue on the Actor's page for bugs or feature requests.