You can scrape LinkedIn posts without cookies or login by using a public-data Apify actor that hits LinkedIn's unauthenticated endpoints and parses the rendered HTML server-side. This avoids session tokens, li_at cookies, and account bans entirely — you only get publicly visible posts (profiles, company pages, hashtags), which is exactly the data covered by the hiQ Labs v. LinkedIn ruling. The cheapest production-ready option right now is around $0.004 per post, no credentials required.
Quick Answer
To scrape LinkedIn posts no cookies needed, send a profile URL, company URL, or hashtag to a hosted scraper that fetches LinkedIn's public guest-view endpoints — the same HTML you'd see in an incognito tab. The LinkedIn Post Scraper (no cookies) does this on Apify for $0.004 per successful post, returning structured JSON with author, text, media, date, and reaction counts. No login, no cookies, no Chrome extension, no proxy setup. You call it via API, Apify Console, or a scheduled run, and the actor handles rate limits and rotating IPs internally.
Why scrape LinkedIn without cookies?
Cookie-based scrapers (PhantomBuster, Linked Helper, most browser extensions) require you to paste your li_at session cookie into a tool. Three problems with that:
- Account bans. LinkedIn detects automated behavior tied to a session and restricts or permanently bans the account. Recovery rates after a permaban are near zero.
- Cookie rotation. Sessions expire every few days to weeks. You end up babysitting cookies across multiple burner accounts.
- Legal exposure. Logged-in scraping violates LinkedIn's User Agreement, which courts have treated as a contractual breach. Public, no-login scraping sits in the hiQ v. LinkedIn safe harbor — the Ninth Circuit ruled scraping public LinkedIn pages does not violate the CFAA.
No-cookie scrapers fetch the same HTML LinkedIn serves to Google's crawler and any logged-out visitor. There's no account to ban and no terms-of-service login to breach.
What data can you get from public LinkedIn posts?
LinkedIn's guest-view shows roughly 80% of the fields you'd see logged in. From a public post you can extract:
- Post text — full body, including line breaks and emojis
- Author — name, headline, profile URL, profile image
- Post URL — canonical
linkedin.com/posts/...link - Date — ISO timestamp (relative on the page, normalized by the actor)
- Reaction count — likes, celebrates, supports, etc., aggregated
- Comment count — total number, but not the comments themselves on guest view
- Media — image URLs, video URLs, document thumbnails
- Repost flag — whether it's an original or reshare
What you don't get without login: the list of who reacted, full comment threads, viewer counts, and posts from private profiles. If you need those, you need a logged-in scraper and a burner account — accept the risk.
How to scrape LinkedIn posts step by step
Here's the minimum-viable workflow using the LinkedIn Post Scraper (no cookies):
1. Pick your input type
The actor accepts three input modes:
- Profile URLs —
https://linkedin.com/in/williamhgates/returns that person's recent posts - Company URLs —
https://linkedin.com/company/microsoft/returns the company page feed - Hashtag URLs —
https://linkedin.com/feed/hashtag/?keywords=aireturns recent posts under a tag
2. Configure the run
A typical input JSON:
{
"urls": [
"https://linkedin.com/in/satyanadella/",
"https://linkedin.com/company/openai/"
],
"maxPostsPerSource": 50
}
3. Call the API
From your terminal:
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://linkedin.com/in/satyanadella/"],"maxPostsPerSource":50}'
Or in Python:
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("apify-linkedin-post-scraper").call(run_input={
"urls": ["https://linkedin.com/in/satyanadella/"],
"maxPostsPerSource": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["text"][:80], "—", item["reactions"])
4. Read the dataset
Output is JSON Lines. Pipe it into a CSV, BigQuery, Postgres, or a Google Sheet. Apify gives you direct webhooks and S3-compatible storage exports.
A 50-post run typically finishes in 30–90 seconds and costs $0.20.
How much does it cost to scrape LinkedIn posts?
Pricing comparison (May 2026, 1,000 posts):
| Tool | Price per 1k posts | Login required |
|---|---|---|
| LinkedIn Post Scraper (no cookies) | $4.00 | No |
| PhantomBuster | ~$30 (subscription amortized) | Yes (cookie) |
| ScrapeCreators | ~$15 | No |
| Bright Data SERP API | ~$25 | No |
| Build your own (Playwright + proxies) | $8–$50 + dev time | Optional |
The pay-per-event model at $0.004 per successful post is the lowest production rate I've seen. You're only billed for posts that come back parsed — failed fetches don't count.
For context: scraping every post from 200 competitor company pages (≈40 posts each = 8,000 posts) costs $32. The same job on PhantomBuster runs about $59/month minimum and requires a connected LinkedIn account.
Is it legal to scrape public LinkedIn posts?
Short answer: yes, in the U.S., for public data, without login.
The hiQ Labs v. LinkedIn case ran from 2017 to 2022. The Ninth Circuit twice held that scraping publicly available data does not violate the Computer Fraud and Abuse Act. The Supreme Court declined to overturn it. LinkedIn ultimately settled.
What you still need to think about:
- GDPR/CCPA — scraped names + headlines are personal data. You need a lawful basis (legitimate interest is the usual route) and you must honor deletion requests.
- No login = no contract. The moment you log in and click "I agree," LinkedIn's User Agreement applies and prohibits scraping. No-cookie tools sidestep this entirely.
- Don't republish verbatim. Aggregating headlines or counting posts is fine. Copy-pasting full post text into a public product invites copyright issues.
This is general guidance, not legal advice. If you're building a commercial product on top of scraped data, talk to a lawyer.
How to avoid getting blocked
Even no-cookie scrapers can hit rate limits if you hammer LinkedIn from one IP. Hosted actors handle this via residential proxy rotation, but if you're rolling your own:
- Rotate residential IPs — datacenter IPs get 429'd within a few hundred requests
- Throttle to 1–2 requests per second per IP — LinkedIn's guest-view endpoints are sensitive
- Set realistic headers —
User-Agent,Accept-Language,Sec-Ch-Uaall checked - Handle JS-rendered fallbacks — about 5% of profile pages serve content only after JS execution
The hosted actor on Apify already does all of this. You're paying $0.004 per post to skip a week of proxy debugging.
Use cases that actually work
What people are using no-cookie LinkedIn scrapers for in 2026:
- Lead enrichment — pulling recent post topics for personalized outreach (e.g., "I saw your post on Q4 hiring...")
- Competitor monitoring — tracking how often competitors post, what gets engagement
- Influencer auditing — verifying real reaction counts before paying for sponsored content
- Content research — finding top-performing hashtags and post formats in your niche
- Sales triggers — detecting "we're hiring" or "we just raised" posts to ping prospects
Each of these works on public data alone. None require a logged-in session.
FAQ
Q: Can I scrape LinkedIn posts completely free? You can use the Apify free tier ($5 monthly credit) to scrape ~1,250 posts per month at $0.004 each. For larger volumes you pay per event with no subscription. Free Chrome extensions exist but require your account cookie and risk a ban.
Q: Will LinkedIn ban my account if I use a no-cookie scraper? No, because no account is involved. The scraper accesses public guest-view URLs anonymously through rotating proxies. Your personal LinkedIn account is never touched, logged in, or referenced.
Q: Can I get comments and reactor names without logging in? You get total counts (e.g., 247 reactions, 18 comments) but not the individual lists. LinkedIn only renders those for logged-in users. If you need full comment threads or reactor identities, a cookie-based scraper is unavoidable.
Q: How fresh is the scraped data? The scraper fetches LinkedIn in real time on each run, so data is current to the second. There's no cache. If a post was published 30 seconds ago and is publicly visible, it'll appear in the results.
Q: Does this work for LinkedIn company pages and hashtags too? Yes. The actor accepts profile URLs, company page URLs, and hashtag feed URLs as inputs. The same $0.004 per post pricing applies regardless of source type, and the output schema is identical across all three.