LinkedIn Company Posts Scraper
Pricing
from $3.00 / 1,000 results
LinkedIn Company Posts Scraper
Scrape posts from any LinkedIn company page. Get post content, engagement metrics, media, and company details.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
19 hours ago
Last modified
Categories
Share
Extract posts from any LinkedIn company page — content, engagement metrics, media links, and company details — using the LinkedIn Voyager API (HTTP-only, no browser required).
What It Does
This actor scrapes the public activity feed of one or more LinkedIn company pages. For each post it returns:
- Full post text content
- Posted timestamp
- Reaction count, comment count, and repost count
- Media type (text, image, video, article, document, or repost)
- Image URLs (when present)
- Article title and URL (when present)
- Company name, slug, page URL, and logo URL
- Direct link to the post on LinkedIn
You can scrape up to 200 posts per company in a single run, across multiple companies in one batch.
Input
| Field | Type | Required | Description |
|---|---|---|---|
companyUrls | List of strings | Yes | LinkedIn company page URLs or slugs to scrape. Accepts full URLs, sub-paths, or just the slug (e.g. apple). |
cookie | String | Yes | Your LinkedIn session cookie. See Cookie Setup below. |
maxPostsPerCompany | Integer | No | Maximum posts to return per company. Default: 10. Range: 1–200. |
proxyConfiguration | Object | No | Apify proxy settings. Residential proxy recommended for highest reliability. |
Accepted companyUrls formats
All of the following are valid for the same company:
https://www.linkedin.com/company/apple/https://www.linkedin.com/company/apple/posts/https://www.linkedin.com/company/apple/posts/?feedView=allhttps://www.linkedin.com/company/applelinkedin.com/company/appleapple
Output
Each item in the dataset represents one post:
| Field | Type | Description |
|---|---|---|
postId | String | Unique LinkedIn activity ID for the post. |
postUrl | String | Direct URL to the post on LinkedIn. |
companyName | String | Display name of the company. |
companySlug | String | Company slug from the LinkedIn URL. |
companyUrl | String | Canonical URL of the company page. |
companyLogoUrl | String | URL of the company's logo image (when available). |
content | String | Text body of the post (when present). |
postedAt | String | ISO 8601 UTC timestamp of when the post was published. |
mediaType | String | One of: text, image, video, article, document, repost. |
mediaUrls | Array | CDN URLs of attached images (present when mediaType is image). |
articleTitle | String | Title of a linked article (present when mediaType is article). |
articleUrl | String | URL of a linked article (present when mediaType is article). |
reactionsCount | Integer | Total number of reactions (likes, etc.). |
commentsCount | Integer | Total number of comments. |
repostsCount | Integer | Total number of reposts/shares. |
inputUrl | String | The original input URL provided for this company. |
scrapedAt | String | ISO 8601 UTC timestamp of when this record was scraped. |
Empty fields are omitted (you will never see null values in the output).
Example output
{"postId": "7234567890123456789","postUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7234567890123456789/","companyName": "Apple","companySlug": "apple","companyUrl": "https://www.linkedin.com/company/apple/","companyLogoUrl": "https://media.licdn.com/dms/image/v2/C560BAQHTFL.../company-logo.png","content": "We're thrilled to announce the latest additions to the Apple ecosystem...","postedAt": "2025-05-23T08:14:32+00:00","mediaType": "image","mediaUrls": ["https://media.licdn.com/dms/image/v2/D4E.../feedshare-shrunk.jpg"],"reactionsCount": 12430,"commentsCount": 874,"repostsCount": 310,"inputUrl": "https://www.linkedin.com/company/apple/","scrapedAt": "2025-05-24T14:22:11.483201+00:00"}
Cookie Setup
A LinkedIn session cookie (li_at) is required. This is a read-only session token — it lets the scraper access the same data you can see when logged into LinkedIn.
Option 1: Copy li_at from DevTools (simplest)
- Open linkedin.com and log in.
- Press F12 to open DevTools (or right-click → Inspect).
- Go to Application → Cookies →
https://www.linkedin.com. - Find the cookie named
li_at. - Copy its Value column.
- Paste it into the LinkedIn Cookie field in the actor input.
Option 2: Export full cookies with EditThisCookie
- Install the EditThisCookie browser extension.
- Visit linkedin.com while logged in.
- Click the EditThisCookie extension icon → click the Export button (the square with an arrow).
- This copies the full cookies JSON array to your clipboard.
- Paste the entire JSON array into the LinkedIn Cookie field.
Using the full cookie export is recommended — it provides a more complete session that reduces the chance of LinkedIn returning challenges.
Frequently Asked Questions
How many posts can I scrape per company?
Up to 200 posts per company per run. Set maxPostsPerCompany to control this. The default is 10 posts.
Can I scrape multiple companies in one run?
Yes. Add multiple URLs to the companyUrls list and the actor will scrape each one sequentially.
Do I need a proxy?
A proxy is optional but recommended. LinkedIn can rate-limit requests from datacenter IP addresses. Using a residential proxy via Apify's proxy service significantly improves reliability. Configure it via the proxyConfiguration input field.
How long does a cookie stay valid?
LinkedIn session cookies (li_at) typically remain valid for several weeks to a few months, depending on your account activity and security settings. If you see a "cookie is invalid or expired" error, log into LinkedIn on your browser and copy a fresh li_at value.
What happens if a company page is not found?
The actor will log a warning and skip that company, continuing with any remaining URLs in the list.
Are private company posts scraped?
The actor uses the same Voyager API that LinkedIn's website uses. It can only access posts that are visible to your logged-in account. Posts restricted to followers or connections of the company's employees will not be returned.
Why might some posts be missing content?
Some posts are image-only or video-only with no text body. In those cases, the content field will be absent from the output record, and mediaType will indicate the media type (e.g. image or video).
Is this against LinkedIn's Terms of Service?
This actor is intended for personal and business research purposes. Please review LinkedIn's User Agreement and ensure your use case complies with their policies.
Notes
- The actor adds a polite delay between page requests (3–7 seconds) to avoid triggering LinkedIn rate limits.
- Proxy rotation happens automatically every few pages.
- If LinkedIn returns a permanent authentication error (HTTP 401/403), the run stops immediately with a descriptive error message.
Explore the rest of the LinkedIn suite
Need a different LinkedIn surface? Pair this actor with any of the others in the LinkedIn Suite — all published under the same publisher and built to share the same cookie format and output conventions.
| Actor | What it scrapes |
|---|---|
| LinkedIn Comments Scraper | All comments + reply threads on a post |
| LinkedIn Company Employees Scraper | Employee list for any company (by URN) |
| LinkedIn Company Info Scraper | Company About page (size, HQ, industry, specialties) |
| LinkedIn Events Scraper | Events by keyword/URL with full event detail |
| LinkedIn Hashtag Posts Scraper | Posts ranked under a #hashtag |
| LinkedIn Jobs Scraper | Job listings via the public jobs-guest API |
| LinkedIn Jobs Scraper Ultra | Same as jobs-scraper + full detail enrichment |
| LinkedIn Learning Courses Scraper | LinkedIn Learning course catalog by keyword |
| LinkedIn People Search Scraper | People search with every LinkedIn facet (role, company, school, location, etc.) |
| LinkedIn Post Reactions Scraper | Reactors on a post (name, headline, reaction type) |
| LinkedIn Post Scraper | Full post (text, media, engagement counts, author) |
| LinkedIn Post Search Scraper | Posts matching a keyword (with date/author/network filters) |
| LinkedIn Profile Posts Scraper | All posts/reposts/articles for one profile |
| LinkedIn Profile Scraper | Public profile fields (name, headline, positions, education, skills) |
| LinkedIn Profile Scraper Pro | Profile fields + extras (recommendations, organizations, languages) |
| LinkedIn Profile Scraper Pro Ultra | Pro + premium fields (contact info, followers list when allowed) |
| LinkedIn Profile Scraper Ultra | Profile + the full upstream dash-120 surface |
| LinkedIn Profile Search by Name | Search profiles by person name (great for matching CSVs of names) |
| LinkedIn Schools Alumni Scraper | Alumni list for any LinkedIn school page |
| LinkedIn Top Content Scraper | Trending / top-engagement posts by topic |
| LinkedIn User Activity Scraper | Reactions + comments + posts feed for one profile |
All actors share the same cookie input format (plain li_at OR full cookies JSON array) and the same omit-empty output convention.