LinkedIn Post Scraper Without Cookies: Posts, Search
Pricing
from $1.50 / 1,000 posts
LinkedIn Post Scraper Without Cookies: Posts, Search
Scrape public LinkedIn posts from profiles, companies, post URLs and keyword search. No login, no cookies, no ban risk. Pay per post.
Pricing
from $1.50 / 1,000 posts
Rating
0.0
(0)
Developer
Vnx0
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
LinkedIn post scraper without cookies
Scrape public LinkedIn posts from profiles, company pages, exact post URLs and keyword searches. You get clean JSON rows with the text, author, date, engagement counts, images and guest-visible comments. No login, no li_at cookie, no LinkedIn account on your side, so there is nothing for LinkedIn to restrict.
Paste a URL, run, and the prefilled example finishes in under a minute.
What you get
Each run returns one row per post: full text, author name and profile link, publish date (ISO plus timestamp), like / comment / share counts, images, hashtags, and the comments LinkedIn shows to logged-out visitors. Every row carries _metadata with the LinkedIn post id, the input URL that produced it, and the extraction time.
Things this actor does not do: it never asks for your cookies, never logs in anywhere, and never returns null fields. If LinkedIn exposes a value, it is in the row. If not, the field is left out. Sources that cannot be read (private posts, deleted posts, rate-limited pages) come back as typed error rows such as blocked_999 or no_post_json, and those rows are free.
How to run it
- Open the actor page and click Run.
- Paste LinkedIn URLs into LinkedIn URLs, or use the dedicated fields for profiles, companies, exact posts and keyword searches.
- Leave Posts per source at 2 for a first try. That costs less than a cent.
- Click Start and open the Dataset tab. Rows stream in while the run is still going.
{"urls": ["https://www.linkedin.com/posts/williamhgates_the-road-ahead-reaches-a-turning-point-in-activity-7142740845631365120-Mx61","https://www.linkedin.com/company/microsoft"],"limitPerSource": 10,"numComments": 10}
Track a competitor's company page
{"companyUrls": ["https://www.linkedin.com/company/openai"],"limitPerSource": 20,"scrapeUntil": "2026-01-01"}
Follow what founders publish
{"profileUrls": ["satyanadella", "https://www.linkedin.com/in/williamhgates/"],"limitPerSource": 10}
Find posts about a topic
{"searchQueries": ["artificial intelligence hiring"],"limitPerSource": 10}
Put the last recipe on a schedule and you have a basic monitoring feed: new posts land in the dataset on every run, and a webhook can forward them anywhere.
Input reference
| Field | What it does |
|---|---|
urls | Mixed LinkedIn URLs: posts, profiles, companies, post-search pages. |
profileUrls | Profile pages (/in/...) or bare usernames. |
companyUrls | Company pages (/company/...) or bare slugs. |
postUrls | Exact post, feed-update or article URLs. |
searchQueries | Keywords resolved to public post-search pages. Works best with residential proxy, see Limits. |
limitPerSource | Max posts per profile, company or search source (default 2, max 100). Direct post URLs always return one row. |
scrapeUntil | ISO date. Older posts are skipped and never billed. |
deepScrape | Adds engagement, media, hashtags and comments. Turn off for text-only rows at full speed. |
numComments / numLikes | Comment bodies and liker context where guest-visible. 0 means counts only. |
rawData | Attaches fetch debug data for troubleshooting. |
hybridWeights | Request share per backend, default {"api": 0.8, "browser": 0.2}. The API backend is cheap HTTP; the browser backend is a Playwright fallback for rate-limited pages. |
proxyConfiguration | Apify Proxy, RESIDENTIAL recommended. Proxy cost comes out of event revenue, so you only ever see the per-post price. |
Output example
One row per post, trimmed for readability:
{"postId": "7142740845631365120","url": "https://www.linkedin.com/posts/williamhgates_the-road-ahead-reaches-a-turning-point-in-activity-7142740845631365120-Mx61","text": "The road ahead reaches a turning point in...","authorName": "Bill Gates","authorType": "Person","authorProfileUrl": "https://www.linkedin.com/in/williamhgates/","postedAtISO": "2024-03-19T12:00:00.000Z","postedAtTimestamp": 1710849600000,"numLikes": 4440,"numComments": 367,"hashtags": [],"images": [],"comments": [],"_metadata": {"post_id": "7142740845631365120","source_url": "https://www.linkedin.com/posts/williamhgates_...","extracted_at": "2026-09-09T14:42:44.000Z"}}
The dataset schema tab lists all 43 fields with types.
Pricing
One billed event: a post row in your dataset. Error rows are free. Spending limits stop the run automatically.
| Posts scraped | FREE / BRONZE | SILVER | GOLD and up |
|---|---|---|---|
| 100 | $0.20 | $0.175 | $0.15 |
| 1,000 | $2.00 | $1.75 | $1.50 |
| 10,000 | $20.00 | $17.50 | $15.00 |
That is $0.002 per post on FREE and BRONZE, $0.00175 on SILVER, $0.0015 on GOLD, PLATINUM and DIAMOND, plus a $0.00005 run-start event. The Pricing tab shows the live configuration.
How it compares
| This actor | Multi-actor suites | Cookie tools (PhantomBuster etc.) | Official LinkedIn API | |
|---|---|---|---|---|
Login or li_at cookie | Never needed | Never needed | Required, your account | Partner approval, OAuth |
| Ban risk | None, no account involved | None | High, your account gets restricted | None |
| Posts, profiles, companies, search in one run | Yes | No, one actor per job | Varies | Only pages you own |
| Price per post | $0.002, single event | $0.002 plus extra events per enrichment | Subscription or rental | Gated |
| Empty or failed sources | Free error rows | Partly billed | Varies | Not applicable |
| Null-free output | Yes | No | Varies | Not applicable |
Paste this into your AI assistant
ChatGPT, Claude, Cursor or any LLM can call this actor if you give it this block:
vnx0/linkedin-post-scraper-without-cookies is an Apify Actor that scrapespublic LinkedIn posts without login or cookies and returns one flat JSON rowper post: text, author, ISO date, like/comment/share counts, images, hashtags,guest-visible comments, plus _metadata with post_id, source_url andextracted_at. Run with curl: curl -X POST"https://api.apify.com/v2/acts/vnx0~linkedin-post-scraper-without-cookies/run-sync-get-dataset-items?token=APIFY_TOKEN"-H "Content-Type: application/json" -d '{"urls":["<LINKEDIN_URL>"],"limitPerSource":10}'.Or Python: ApifyClient("APIFY_TOKEN").actor("vnx0/linkedin-post-scraper-without-cookies").call(run_input={"urls":[...],"limitPerSource":10}) then read the default dataset.Inputs: urls (mixed), profileUrls, companyUrls, postUrls, searchQueries,limitPerSource (default 2), scrapeUntil (ISO date), deepScrape, numComments,numLikes, rawData, hybridWeights, proxyConfiguration. One post row is onebilled event; error rows (blocked_999, no_post_json,search_requires_login_guest) are free. Full input and output schemas:GET https://api.apify.com/v2/acts/vnx0~linkedin-post-scraper-without-cookies/build/default
FAQ
Do I need a LinkedIn account or cookies to use this?
No. The actor only opens public pages, the same HTML LinkedIn serves to a logged-out visitor. You never paste a session cookie and no account is ever involved.
Will LinkedIn ban my account if I scrape posts?
There is no account to ban here. Cookie tools get people banned because every request carries their session. This actor sends no session at all, so a restriction has nothing to attach to. Your personal LinkedIn stays untouched.
Is it legal to scrape LinkedIn posts?
Scraping publicly visible pages without logging in sits in the safe harbor of the hiQ Labs v. LinkedIn ruling: the US Ninth Circuit held that accessing public LinkedIn pages does not violate the CFAA. That covers the collection side. What you do with the data still has to comply with privacy law (GDPR and CCPA treat names and headlines as personal data) and LinkedIn's terms, so aggregate and analyze rather than republishing full post text verbatim. This actor is independent and not affiliated with LinkedIn.
Is there a free way to try it?
Yes. Apify's free tier includes monthly platform credit, and the prefilled example run costs less than a cent. Error rows are never billed, so experimenting with URLs is free in practice.
Can I call it from Python, n8n, or my own code?
Yes. It is a normal Apify actor, so anything that can POST JSON works: the Apify Python or JS client, a curl call, n8n's HTTP node, Make, Zapier, or a scheduled run with a webhook pushing results out. The block above has copy-paste snippets for curl and Python.
How do I get the results into CSV or Google Sheets?
Open the run's dataset and export CSV or Excel directly, or connect the actor to Sheets through Make, Zapier, or Apify webhooks. Rows are flat, so they drop into a spreadsheet without transformation.
Does it work for company pages?
Yes. Put the company URL in companyUrls and you get recent posts with text, dates, engagement and media. Company pages render well for guests, so they are the most reliable source type.
Can I get comments and the names of people who reacted without logging in?
Counts, always. Comment text and liker details only where LinkedIn shows them to logged-out visitors, which varies by post. Full comment threads and reactor lists are rendered for logged-in users only, so any tool that promises them is using an account (with the ban risk that brings).
How much does it cost to scrape 1,000 LinkedIn posts?
$2.00 on the FREE and BRONZE plans, $1.75 on SILVER, $1.50 on GOLD and above. 100 posts cost $0.20. Set a spending limit and the run stops by itself when it reaches it.
Why did my run return error rows instead of posts?
Three usual causes: the post is private or deleted, LinkedIn rate-limited the fetch (HTTP 999, common for profiles from datacenter IPs), or guest search hit the login wall. Each case returns a typed error code with an explanation instead of failing the run. Retrying later or switching on the residential proxy clears most of them.
Can I watch company pages for new posts every few hours?
Yes. Save the company URLs, set a small limitPerSource, and put the run on an Apify schedule. Each scheduled run appends fresh posts to a dataset, and a webhook forwards them to Slack, email, or your database. For hundreds of companies, keep the per-source limit low so each sweep stays cheap.
How is this different from PhantomBuster or other cookie tools?
Those tools drive your real LinkedIn session, which is exactly what gets accounts restricted, and sessions expire every few days so you end up babysitting cookies. This actor has no session to expire and no account to lose. The tradeoff is honest: it can only read what LinkedIn shows to strangers.
Why not just use the official LinkedIn API?
The Posts API sits behind a Marketing Developer Platform partnership and covers pages you own. If you need public posts from arbitrary profiles and company pages without an approval process, a no-cookie scraper is the shorter path.
Limits
Guest access only, by design. Full comment threads, reactor identity lists, viewer counts and private posts need a logged-in session, which this actor will never use. LinkedIn rate-limits guests in waves (HTTP 999), mostly on profiles; the actor retries, fails over to a browser backend, throttles itself, and degrades to typed error rows rather than failing the run. Keyword search depends on guest search visibility, so residential proxy is strongly recommended for it. Output reflects whatever LinkedIn publicly exposes at run time, which differs by post, region and author.
Support
Open an issue on the actor page for bugs or field requests. Issues get answered within 24 hours, and real fixes land in the changelog below.
Disclaimer
Independent tool, not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. Use extracted data in compliance with applicable data protection laws and LinkedIn's terms of service. Do not use it for spam, harassment, or unlawful purposes.