LinkedIn Company Posts Scraper (No Cookies) avatar

LinkedIn Company Posts Scraper (No Cookies)

Pricing

from $0.01 / 1,000 results

Go to Apify Store
LinkedIn Company Posts Scraper (No Cookies)

LinkedIn Company Posts Scraper (No Cookies)

Get the latest public posts of any LinkedIn company, newest first, from a company link or name. Each post has text, exact date, author, reactions, comments, top comments, images, video and links as clean JSON. Date filter, live results, no login needed.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Insights Data

Insights Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Security

Limited permissions

Share

📰 What is LinkedIn Company Posts Scraper (No Cookies)?

LinkedIn Company Posts Scraper (No Cookies) helps you track competitor posts and follow any brand on LinkedIn by collecting the recent publicly discoverable posts of a company page, with the text, exact date, reactions, comment count, public comments and media of each post. It is built for marketing, social media, research and recruiting teams who need LinkedIn competitor analysis and LinkedIn brand monitoring without logging in or sharing cookies. Paste a company link or name and click Start; you can try it with the $5 monthly credit of the Apify Free plan.

This LinkedIn company post scraper also reads single posts from a post link or post ID, so you can mix companies and posts in one run. Each post is saved to your results as soon as it is read, newest first for every company. Very new posts may be missing; paste their links to read them directly.

  • 🔭 Track competitor posts: see what rival companies publish, how often they post, and which posts get the most reactions and comments.
  • 📊 Measure LinkedIn post engagement: compare reaction counts, comment counts and total engagement per post, post type and company.
  • 📣 Run LinkedIn brand monitoring: keep a dated record of your own or a client's company posts and the public comments under them.
  • 👂 Do LinkedIn social listening: read what people write in the public comments under company posts.
  • 🤝 Research LinkedIn employer branding: follow the hiring, culture and event posts of the employers you compete with for talent.
  • 🧭 Support LinkedIn market research and content strategy: collect announcements, launches, hashtags and shared links across a market, then plan your own LinkedIn content strategy from what works.

What can LinkedIn Company Posts Scraper do?

  • 🎯 Read posts from four kinds of input: a company page link, a company name, a post link or a 19-digit post ID, one per line
  • 📅 Filter by date: keep only posts from the last 24 hours, week, month, 90 days or year, or posts on or after an exact date
  • 💬 Collect public comments: text, commenter name when it is public, likes and time, at no extra charge
  • 🖼️ Get media: image links, the direct video file link with duration, thumbnail and size, and shared-article cards
  • 🗂️ Get four extra tables: authors, comments, links and tags, and media, plus a run summary
  • 📦 Export and automate: download JSON, CSV, Excel, XML or HTML, run it through the API, schedule it, or connect it to Google Sheets, Slack, Make, Zapier or n8n

Unlike a general LinkedIn posts scraper that searches by keyword, this Actor starts from the company pages you choose, so every row belongs to a company you want to follow.


📋 LinkedIn Company Posts Scraper data: what you can extract

Every post becomes one row in the main All posts table. As a LinkedIn post data scraper, it returns these fields (names as in the dataset):

Field groupFields
🆔 Post identitytype (text, image, video or article), id, urn (LinkedIn's full ID string for the post, urn:li:activity:<id>), linkedinUrl
📝 Textcontent (full post text)
🏷️ Tagshashtags, mentions
🔗 Linkslinks (short links replaced by their destination when readable), linksRaw (the original short links)
🏢 Author companyauthor.name, author.publicIdentifier, author.linkedinUrl, author.type, author.avatar (logo)
📅 DatepostedAt.timestamp (epoch milliseconds: the time as a number of milliseconds since 1 January 1970, handy for sorting), postedAt.date (ISO date and time)
👍 Engagementengagement.reactions, engagement.comments, engagement.totalEngagement (reactions + comments), engagement.shares, engagement.impressions
💬 Commentscomments with text, authorName, likes, date
🖼️ Mediamedia.type, media.images, media.video (url, duration in seconds, thumbnail, width, height), media.article (title, image), media.document
🕒 Run infoscrapedFrom (discovered = found from a company, direct = a post link you pasted), scrapedAt (UTC)

This LinkedIn post data gives you the content and the counts in one place. The tool also works as a LinkedIn post comments scraper and a LinkedIn post engagement scraper for the companies you choose.

Note: engagement.shares and engagement.impressions are always null, because LinkedIn shows them only to logged-in viewers. media.document is always null. linksRaw appears only when a post has short links. postedAt.date, postedAt.timestamp and authorName can be null when LinkedIn doesn't show them publicly for a post.

What data can't LinkedIn Company Posts Scraper extract?

  • Share counts, impressions or views
  • The reaction breakdown by type and the list of people who reacted
  • Replies to comments, and comments beyond the ones LinkedIn shows to logged-out visitors
  • Members-only, private or deleted posts
  • Follower counts and other company page details (you get the company name, page name, link and logo)
  • Posts of employees' personal profiles

For posts found by keyword, author or company, use LinkedIn Post Search Scraper (No Cookies). For the people who work at a company, use LinkedIn Company Employees Scraper.


🚀 How to scrape LinkedIn posts from a company page

LinkedIn Company Posts Scraper is designed for an easy start, even if you've never extracted data from the web before. You can scrape LinkedIn posts from several companies in one run.

  1. Create a free Apify account using your email.
  2. Open LinkedIn Company Posts Scraper (No Cookies).
  3. Add one company link per line in Company links or post links. To get a valid link, open the company's page on LinkedIn and copy the address from your browser: it looks like https://www.linkedin.com/company/stripe. You can also paste post links.
  4. Click Start and watch the posts appear in the Output tab while the run is going.
  5. Download your data from Storage → Datasets → Export in JSON, CSV, Excel, XML or HTML.

💡 First run checklist

  • Keep the prefilled company (https://www.linkedin.com/company/stripe) or paste your own company link.
  • Leave Max posts per company at 10. On the Free plan, 10 posts cost at most $0.0401 (each post is $0.004 plus a $0.00001 row fee), plus a $0.00005 start fee per run and platform usage. A small test run like this shows the full cost on the run page.
  • Optional: set a maximum charge limit in the run options below the input form.
  • Click Start, then open the Output tab.

💲 How much does it cost to scrape LinkedIn company posts?

LinkedIn Company Posts Scraper uses pay-per-event pricing, which means you pay for the events of a run (here: saved posts and the start) instead of a monthly rental. Your bill has three parts:

  1. Results: you pay for each post saved to the main All posts table. The price depends on your Apify plan (table below). Each saved post also has a flat row fee of $0.00001 (a small fee for storing the row in the main results table), the same on every plan ($0.01 per 1,000 posts).
  2. Start fee: $0.00005 per run (the Actor runs with 1 GB of memory by default).
  3. Platform usage: the compute and traffic the run uses, billed at your Apify plan's own rates.
💲 Apify planPrice per postPrice per 1,000 postsWith the $0.00001 row fee, per 1,000 posts
💲 Free$0.004$4.00$4.01
💲 Starter$0.0035$3.50$3.51
💲 Scale$0.0032$3.20$3.21
💲 Business and higher$0.0028$2.80$2.81

The plan discount applies to the result price only. The start fee is the same on every plan, and platform usage is billed at your Apify plan's own rates.

Example: the default input (one company, 10 posts) costs 10 × $0.004 = $0.04 in post charges on the Free plan, plus $0.0001 in row fees, the $0.00005 start fee and platform usage. A weekly check of 5 competitors with 10 posts each saves at most 50 posts: 50 × $0.00401 = $0.2005 per run on the Free plan, plus the start fee and platform usage. 1,000 posts cost $4.01 on the Free plan ($2.81 on Business), plus the start fee and platform usage. Platform usage depends on the run, so the best way to know your full cost is a small test run: the run page shows the exact cost when it finishes.

What is not billed: posts that could not be read, posts outside your date filter, the comments, the rows in the four extra tables, and the run summary.

See the pricing tab for the current prices.

Is scraping LinkedIn company posts free?

You can start for free. The Apify Free plan gives you $5 in monthly credit, which pays for result charges and platform usage. Free-plan runs work the same as paid runs: there is no extra cap on posts per run.

How do I cap the cost of a run?

Set a maximum charge limit in the run options below the input form before you click Start (through the API, the same limit is the maxTotalChargeUsd parameter). It caps the post and row charges of that run; platform usage comes on top. When the limit is reached, the Actor stops and keeps every post it already saved.


⬇️ LinkedIn Company Posts Scraper input

The only required field is Company links or post links. Everything else is optional and has a default.

Settings most people change

  • Company links or post links (urls): one entry per line. A company page link (https://www.linkedin.com/company/stripe) or its page name (stripe, the last part of the link) returns that company's recent publicly discoverable posts. A post link or a post ID returns that single post. Duplicates are removed.
  • Max posts per company (maxPosts): the maximum posts for each company, newest first. The default is 10. 0 means all publicly discoverable posts. It does not limit post links you paste.
  • Posted within (postedLimit): the form shows Any time, Last 24 hours, Last week, Last month, Last 90 days and Last year (API values any, 24h, week, month, 90d, year). The default is Any time.
  • Posted on or after (postedLimitDate): an exact date in YYYY-MM-DD format. It takes priority over Posted within.
  • Collect comments (scrapeComments) and Max comments per post (maxComments): comments are on by default, with up to 5 per post. You can raise it to 100, but only the comments LinkedIn shows publicly can be saved.

Here's an example that reads the 10 newest posts of Stripe with up to 5 comments each:

{
"urls": ["https://www.linkedin.com/company/stripe"],
"maxPosts": 10,
"postedLimit": "any",
"scrapeComments": true,
"maxComments": 5
}
SettingFieldDefaultWhat it does
🎯 Company links or post linksurlsStripe company page (prefill)Required. Company links, company page names, post links or post IDs, one per line
🔢 Max posts per companymaxPosts10Posts per company, newest first. 0 = all publicly discoverable posts
⏰ Posted withinpostedLimitany (Any time)Any time, Last 24 hours, Last week, Last month, Last 90 days, Last year
📅 Posted on or afterpostedLimitDateemptyYYYY-MM-DD. Wins over Posted within
💬 Collect commentsscrapeCommentstrueSaves the public comments of each post
🔢 Max comments per postmaxComments5Up to 100 of the comments LinkedIn shows publicly. 0 = all comments shown. Values above 100 are lowered to 100
🌍 Context countrycontextCountryDefaultAsks LinkedIn for pages in that country's language setting. Safe to leave on Default. It does not translate posts or dates
🌐 Proxy configurationproxyConfigurationno proxyOptional. Choose Apify Proxy or your own proxy URLs, or leave it off. If LinkedIn refuses requests, the Actor switches to a proxy automatically; that proxy traffic counts as platform usage

See the input tab for the full field descriptions.

Company links or post links

Use the company page link when you can. A company name only works when it matches the company's LinkedIn page name: the Actor turns it into lowercase and replaces spaces with hyphens.

  • ✅ Good: https://www.linkedin.com/company/stripe, stripe, https://www.linkedin.com/posts/stripe_...-activity-7519107159457038336-81L5, 7519107159457038336
  • ❌ Bad: Stripe Inc. (a display name instead of the page name), a personal profile link

⚠️ Entries that are not a company link, company name, post link or post ID are skipped with a warning in the log. If no entry is valid, the run stops with "Nothing to scrape".

Max posts per company

The limit counts per company, not per run. Five companies with Max posts per company at 10 can save up to 50 posts. Post links you paste are read regardless of this number.

  • ✅ Good: 10 for a regular check of each company
  • ❌ Bad: 0 in a scheduled run, because the cost then grows with every publicly discoverable post

Posted within and Posted on or after

For companies, posts older than your filter are skipped before they are read. Pasted post links outside the window are read but not saved, so they are not charged. Posts whose date can't be read are kept, so you don't lose them silently.

Max comments per post

Only the comments LinkedIn shows to logged-out visitors can be saved, which is the first page of comments under a post. A higher number does not unlock more: you get up to 100 of the comments shown publicly, and the default is 5. The Actor lowers any value above 100 to 100.


⬆️ LinkedIn Company Posts Scraper output

Results are stored in a dataset (a results table on the Apify platform). Open the Output tab of a run to see All posts as a table or JSON, with views for Posts overview, Engagement, Text, tags and links and All details. The same tab links the four extra tables and the run summary. To download, go to Storage → Datasets → Export and pick JSON, CSV, Excel, XML or HTML, so you can export LinkedIn posts to a spreadsheet or turn LinkedIn posts to CSV for your own tools.

JSON example

An example row for the input above (shortened; the media.video values are example values):

{
"type": "video",
"id": "7519107159457038336",
"urn": "urn:li:activity:7519107159457038336",
"linkedinUrl": "https://www.linkedin.com/posts/stripe_toto-wolff-activity-7519107159457038336-81L5",
"content": "Toto Wolff of the Mercedes-AMG PETRONAS Formula One Team joins John Collison...",
"hashtags": ["Stripe"],
"mentions": [],
"links": ["https://stripe.com"],
"author": {
"name": "Stripe",
"publicIdentifier": "stripe",
"linkedinUrl": "https://www.linkedin.com/company/stripe",
"type": "COMPANY",
"avatar": "https://media.licdn.com/..."
},
"postedAt": { "timestamp": 1792694845068, "date": "2026-10-22T18:47:25.068Z" },
"media": {
"type": "video",
"images": [],
"video": { "url": "https://dms.licdn.com/...", "duration": 55, "thumbnail": "https://media.licdn.com/...", "width": 720, "height": 720 },
"article": null,
"document": null
},
"engagement": { "reactions": 372, "comments": 15, "shares": null, "impressions": null, "totalEngagement": 387 },
"comments": [
{ "text": "Great talk", "authorName": null, "likes": 0, "date": "2026-10-23T05:02:43.599Z" }
],
"scrapedFrom": "discovered",
"scrapedAt": "2026-10-30T10:00:00Z"
}

Extra tables and run summary

Each post is also split into flat tables, so you get a clean LinkedIn posts dataset for every angle:

TableOne row perMain fields
🏢 Authorspostauthor_name, author_id, author_type, author_url, author_avatar, post_type, posted_at, reactions, comments, total_engagement
💬 Commentspublic commenttext, comment_author, likes, commented_at
🔗 Links and tagslink, short link, hashtag or mentionkind, value, short_url
🖼️ Mediaimage, video or article cardkind, url, thumbnail_url, duration_seconds, width, height, title

Every extra row also has post_id, post_url, post_author and scraped_at, so you can join it back to the main table.

🧮 The Run summary is saved in the run's key-value store (a small file store attached to each run; open the run's Storage tab, then Key-value store) as RUN_SUMMARY. It is also linked in the Output tab. It counts companies_requested, post_links_requested, posts_saved, rows_charged, posts_not_readable and posts_outside_date_filter, and lists up to 100 problems (the input and post ID that could not be read), plus duration_seconds and spend_limit_reached.


💡 Tips and advanced usage

How many posts can you scrape with LinkedIn Company Posts Scraper?

There is no fixed cap per run. For each company, the run stops at Max posts per company. It reads the recent publicly discoverable posts of each company, so very large post histories may not be complete. Very new posts may be missing; paste their links to read them directly. The best way to know for your companies is a small test run.

How to keep costs low

  • Use Posted within or Posted on or after: for companies, older posts are skipped before they are read and are never charged.
  • Keep Max posts per company small for regular checks, for example 10.
  • Turn off Collect comments if you only need the counts. Comments are free, so this only keeps your tables smaller.

Run it on a schedule

A weekly competitor report takes four steps:

  1. Fill in your competitors' company links, set Max posts per company to 10 and Posted within to week.
  2. Save the input as a task (a saved input you can run again with one click) from the Actor page.
  3. In the task, add an Apify schedule, for example every Monday at 08:00.
  4. Each run creates a new dataset. The Actor doesn't compare runs itself, so remove duplicates by id (the post ID) or linkedinUrl: for example, append each run's posts to one Google Sheet and use Data → Data cleanup → Remove duplicates on the id column. A post ID that wasn't there last week is a new post.

Cost for this schedule: 5 competitors × 10 posts = at most 50 posts, which is at most $0.2005 per weekly run on the Free plan (50 × $0.00401), plus the start fee and platform usage.

If something goes wrong

What you seeWhat is chargedWhat to do
⚠️ "Nothing to scrape" and the run stopsStart fee and platform usage onlyAdd at least one company link, company name, post link or post ID. Copy the company link from your browser
⚠️ "No posts were collected"Start fee and platform usage onlyCheck the company link, or paste post links directly, then run again later
⚠️ A post is listed in problems in the run summaryNothing for that postIt may be deleted, private or members-only
⚠️ "LinkedIn is refusing too many requests right now"Posts saved before the stop, plus the start fee and usage so farTry again later. If LinkedIn refuses requests, the Actor switches to a proxy automatically; that proxy traffic counts as platform usage
⚠️ "The maximum charge limit was reached"Posts saved up to the limitRaising the limit and running again saves and charges the posts you already have again. To avoid paying twice, also set Posted on or after to a date after your newest saved post, or paste only the post links you still need

A new run never knows what earlier runs saved, so every run charges the posts it saves.


🔌 Integrations and API

Can I use LinkedIn Company Posts Scraper as an API?

Yes. The Apify API lets you start runs, schedule them and fetch results, so you can use this Actor as a LinkedIn company posts API for the public posts of any company page. Use the apify-client NPM package for Node.js or the apify-client PyPI package for Python. The API tab has ready-to-use code.

How to scrape LinkedIn posts with Python

Here is a minimal script to scrape LinkedIn posts Python-first, using the apify-client package:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("insights_data/linkedin-company-posts-scraper-no-cookies").call(run_input={
"urls": ["https://www.linkedin.com/company/stripe"],
"maxPosts": 10,
"postedLimit": "any",
"scrapeComments": True,
"maxComments": 5,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["postedAt"]["date"], item["engagement"]["reactions"], item["linkedinUrl"])

Can I integrate LinkedIn Company Posts Scraper with other apps?

Yes. Connect it with Apify integrations such as Make, Zapier, Slack, Google Sheets, Google Drive, Airbyte, GitHub and LangChain. A webhook (an automatic message Apify sends to another app's web address) fires on run events, for example when a run succeeds, not on each new post.

Two workflows that fit this Actor:

  • Shared sheet: schedule a weekly run for your competitors and add the Google Sheets integration to the task, so every run adds its rows to one LinkedIn posts Google Sheets file that your team can sort by engagement.totalEngagement.
  • Slack digest through n8n or Make: add a webhook for "run succeeded" that calls an n8n or Make scenario. It reads the finished run's dataset and posts a digest of that run's posts with their links to a Slack channel. To post only posts you haven't seen, keep a list of id or linkedinUrl values (for example in a Google Sheet) and let the scenario skip the ones already on it. Your LinkedIn post scraper n8n flow then needs only three steps: a webhook trigger, a dataset read and a Slack message.

Can I use LinkedIn Company Posts Scraper with AI agents (MCP)?

Yes. MCP (Model Context Protocol) is a standard way for AI assistants such as Claude to call outside tools. Add it through the Apify MCP server as a LinkedIn scraper MCP tool, and the assistant runs it and reads the posts for LinkedIn content analysis or summaries. Open the MCP tab for setup steps.


🧩 Other LinkedIn scrapers

These Actors cover other LinkedIn data, so you can pick the right LinkedIn scraper for each job:

ActorWhat it adds
🔎 LinkedIn Post Search Scraper (No Cookies)Find public posts by keyword, author or company, with author followers and an exact date filter
🔎 LinkedIn Posts Search ScraperSearch public posts by keyword, phrase or hashtag, or paste post, profile and company links; finds emails in the text
👥 LinkedIn Company Employees ScraperPublic employees of a company with title, seniority, department and location, plus work emails as an option
📇 LinkedIn Profile Extractor & Enricher (No Login Required)Public profiles from URLs or IDs: headline, experience, education, skills and more
💼 Advanced LinkedIn Job Search APIPublic LinkedIn jobs with salary, seniority, applicants and the full description

❓ FAQ

Scraping publicly available data is generally legal, but you are responsible for how you use it. This Actor reads only posts that anyone can see without logging in. Company posts are public business content, but comments can contain personal data, so collect and store them only with a legitimate reason and in line with privacy laws such as GDPR. Take LinkedIn's User Agreement into account. This is not legal advice.

How does LinkedIn Company Posts Scraper work?

It works like a person reading LinkedIn without an account, only automated. For each company, it finds the company's publicly discoverable posts, orders them newest first and skips the ones outside your date filter. It then reads each public post page and saves the text, date, counts, comments and media. Post links you paste are read directly. At the end, it writes the run summary.

Do I need a LinkedIn account or cookies?

No. With this LinkedIn scraper no cookies or passwords are shared, and you don't need a LinkedIn account. You can read LinkedIn posts without login because the Actor only reads what any visitor can see.

How is it different from LinkedIn Post Search Scraper (No Cookies)?

Both read public LinkedIn posts without an account. The difference is where they start:

LinkedIn Company Posts Scraper (No Cookies)LinkedIn Post Search Scraper (No Cookies)
Starts fromCompany links or names, post links, post IDsKeyword, author or company search
Date filterTime window or exact on-or-after dateExact date filter
CommentsPublic comments shown on the post (default 5, up to 100)Comments
Author followersNoYes

Choose this Actor to follow specific company pages. Choose the search scraper to find posts about a topic.

Is this a LinkedIn post scraper for any post?

Yes, for public posts. Paste a post link or a post ID and it reads that post, even if it comes from a company you didn't add. Through the API, developers can use it as a LinkedIn post scraper API for lists of post links, and as a LinkedIn posts API for company feeds. Members-only, private and deleted posts can't be read.

Can I scrape LinkedIn company page details with it?

Partly. Each post includes the company name, page name, page link and logo. It is not a full LinkedIn company page scraper: follower counts, employee numbers and the About section are not included. For people at a company, use LinkedIn Company Employees Scraper.

Does it give LinkedIn post analytics such as impressions?

It gives the public part of LinkedIn post analytics: reactions, comments and total engagement per post, plus the post type and exact time. Impressions, views and shares are only visible to logged-in viewers or the page owner, so they are null. That is still enough for competitor content analysis, such as which post types and topics get the most engagement.

How do I download LinkedIn posts to Excel or CSV?

Run the Actor, then go to Storage → Datasets → Export and choose Excel or CSV. You can download LinkedIn posts from all your companies in one file, or export the comments, links and media tables separately.

Why am I getting fewer posts than expected?

  • The Actor reads the recent publicly discoverable posts of a company. Very new posts may be missing; paste their links to read them directly.
  • Your date filter may skip older posts. The log shows how many older posts were skipped for each company. posts_outside_date_filter in the run summary counts only posts that were read and then fell outside the filter (for example pasted post links).
  • Some posts are members-only, private or deleted. They are listed in problems in the run summary.
  • A company name that doesn't match the LinkedIn page name finds nothing. Use the company link.
  • The maximum charge limit may have stopped the run. Check spend_limit_reached in the run summary.

Which LinkedIn data scraper should I use for people, jobs or keyword searches?

Use this Actor for the posts of company pages. For other data, use the sibling Actors listed in the Other LinkedIn scrapers section above: employees, profiles, jobs, or posts found by keyword.

Can I use it for LinkedIn content analysis with AI?

Yes. The full post text, hashtags and links come as clean JSON, so you can send them to a language model, a spreadsheet or a BI tool. You can use it as a LinkedIn company posts extractor for LinkedIn content analysis and LinkedIn market research.


📧 Support and feedback

Found a bug or have a feature request? Please create an issue on the Issues tab and include the input you used.

Need a custom solution or more data? Contact us at hello.insights.data@gmail.com.

Built and maintained by insights_data.