LinkedIn Company Posts Scraper (Public Company Feed) avatar

LinkedIn Company Posts Scraper (Public Company Feed)

Pricing

from $1.50 / 1,000 posts

Go to Apify Store
LinkedIn Company Posts Scraper (Public Company Feed)

LinkedIn Company Posts Scraper (Public Company Feed)

Scrape the recent posts on public LinkedIn company pages without login: post text, posted time, reactions, comments, media, external links and post URL. Company feed only, no people profiles or commenters.

Pricing

from $1.50 / 1,000 posts

Rating

0.0

(0)

Developer

Murat Uzun

Murat Uzun

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What is LinkedIn Company Posts Scraper?

LinkedIn Company Posts Scraper reads the recent posts shown on public LinkedIn company pages, by URL or slug, and returns one row per post: text, posted time, reactions, comments, media URLs, outbound links and the post URL. It runs without a LinkedIn login and reads only the public company page (the guest view). It does not read people profiles, commenter or reactor lists, or email addresses.

What data does LinkedIn Company Posts Scraper extract?

FieldTypeSource on the public page
companyNamestringCompany title
postUrlstringPost link (linkedin.com/posts/...), else the feed/update link built from the post id
postIdstringActivity id in the card (urn:li:activity:...)
postedAtstring (ISO)Derived from the activity id (id shifted right 22 bits = epoch ms). Not printed on the page; checked against the relative time below
postedAgostringRelative time on the card, e.g. 4h, 1d, 2w (the "Edited" marker is removed)
authorName, authorTypestringName and company on a company-authored post (the author link is not returned)
textstringPost text as shown in the card (LinkedIn may cut long posts at "see more")
reactions, commentsnumberReaction and comment counts on the card
hasVideobooleanA native video is on the card (the video URL is not returned)
mediaCount, mediaUrlsnumber, arrayImage URLs in the post (profile photos excluded)
externalLinksarrayOutbound links in the post text or article card (LinkedIn redirects unwrapped, trk tracking parameter removed). lnkd.in short links are kept as LinkedIn gives them
slug, url, source, scrapedAtstringCompany identity, source tag and UTC scrape time

Fields the page does not show come back as null or []. They are never guessed.

Scope limits (stated plainly):

  • The public company page shows about the 10 most recent posts. The scraper cannot read older posts without a login, so it returns at most that many per company per run.
  • Posts written by a person (for example a CEO post shown on the company page) are skipped and counted in the run log as personalSkipped. The actor returns company-authored posts only. On the Microsoft page on 2026-10-23, 2 of 10 items were company-authored and 8 were person-authored.
  • postedAt is derived from the id, not shown by LinkedIn. It matched the relative time on every checked row (for example 4h and 1w cards), but this is a check on a sample, not a guarantee.
  • Reactions and comments are the counts shown at scrape time, not final values.

How to use LinkedIn Company Posts Scraper

  1. Open the actor in Apify Console and paste company URLs or slugs into Companies, for example https://www.linkedin.com/company/openai or openai.
  2. Separate several companies with new lines or ;. Up to 100 companies per run.
  3. Leave Proxy mode on auto. The run uses direct requests and switches to the Residential proxy only if LinkedIn blocks them.
  4. Start the run and download the dataset as JSON, CSV or Excel.
  5. Set a max total charge if you want a cap. The run stops before it exceeds the cap; one charged item is one post.

Example input

{
"companies": ["openai", "https://www.linkedin.com/company/vercel"],
"proxyMode": "auto"
}

Example output

One row from a real cloud run (run Puqe9Beq9Jox1YgvL, 2026-10-23, Apify datacenter, direct, no proxy). The text is shortened here:

{
"slug": "openai",
"companyName": "OpenAI",
"postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7518671289675603968/",
"postedAt": "2026-10-21T13:55:25.616Z",
"postedAgo": "1d",
"authorName": "OpenAI",
"authorType": "company",
"text": "OpenAI models are coming to Google Cloud. We're partnering with Google Cloud to bring OpenAI's frontier models and Codex agentic workflows i…",
"reactions": 3375,
"comments": 171,
"hasVideo": false,
"mediaCount": 1,
"externalLinks": ["https://lnkd.in/etZTxJrq"]
}

Test results

  • Cloud run Puqe9Beq9Jox1YgvL (2 inputs: openai, vercel): status SUCCEEDED, 20 rows, 0 problems, 0 person-authored items skipped.
  • Default input (demo microsoft), smoke test on 2026-10-23: SUCCEEDED, 2 items (the other 8 items on that page are person-authored and skipped).
  • Unit tests (npm test) run on the saved guest-page HTML of microsoft, openai and vercel, fetched 2026-10-23 with the same URLs the actor uses.

Input parameters

ParameterTypeDefaultDescription
companiesarray["microsoft"]Company URLs or slugs. Other input is skipped and reported in the log.
proxyModestringautoauto, never (direct only) or always (Residential from the start).

Pricing

Pay per post: one charged event per post written to the dataset. The actor also pays a small per-run start event.

PlanPrice per post (USD)
FREE, BRONZE0.0020, 0.0018
SILVER0.0016
GOLD, PLATINUM, DIAMOND0.0015

The platform stored the GOLD, PLATINUM and DIAMOND tiers at 0.0015 (the requested 0.0014 and 0.0013 were not kept; checked in the monetization response, not in the Console).

Cost side: direct runs of 2 companies took a few seconds at 512 MB. Compute cost per run was not measured (no billing read on the run). The estimate from run duration is far below the lowest tier price, so the margin is well above 70 percent for direct runs. Residential proxy use (in auto after blocks) would add cost and is not measured here.

FAQ

Does it need a LinkedIn account? No. It reads only the public guest page.

Why do I get fewer than 10 posts for a company? The public page shows at most about 10 posts, and person-authored posts are skipped. Check the run log for personalSkipped.

Can it read comments or who reacted? No. Commenter and reactor lists and people profiles are out of scope.