# LinkedIn Company Scraper: Pages, Posts & Offices (`luzivanlt/linkedin-companies-scraper`) Actor

LinkedIn company pages with their recent posts in the same row, exact followers and offices. $2.50 per 1,000 companies. About, employees on LinkedIn, similar pages.

- **URL**: https://apify.com/luzivanlt/linkedin-companies-scraper.md
- **Developed by:** [Luzi](https://apify.com/luzivanlt) (community)
- **Categories:** Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.75 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## LinkedIn Company Scraper: Pages, Posts & Offices

Get LinkedIn company pages from a list of links, each with its recent posts
and LinkedIn's similar pages in the same row: the About text,
industry, size, the exact follower count, the number of employees on LinkedIn,
headquarters and offices. One row per company. No LinkedIn account, login or
cookies needed.

Tested daily. Latest check: 20 of 20 companies read, from Microsoft to a
Vietnamese company's page and two showcase pages, 19 of them with their
recent posts.

### What does this Actor do?

You give it LinkedIn company links (or just the names after `/company/`). For
each company it reads the page LinkedIn shows to anyone who is not signed in,
and saves one row with everything on it:

- name, tagline, the About text, website, industry, company type and the year
  it was founded
- company size as LinkedIn states it ("1,001-5,000 employees") and as two
  numbers, plus the exact number of employees on LinkedIn
- the exact follower count
- specialties
- headquarters, with its street, city, region, postal code and country code
- **the offices** the page lists, each with its address lines, the primary
  one marked
- logo and cover image
- **recent posts** (up to 10): text, date, link, author,
  reactions and comments, reaction types, images, video, link preview,
  reposts and the post they reshare
- products, when the page lists any, with their category, description and
  image
- the employees LinkedIn shows on the page: name, profile link, headline,
  photo
- **affiliated pages** and **similar pages**: name, link, industry, location,
  logo — ready to feed back in
- LinkedIn's company id, its job search for the company, whether the page is a
  Premium page, the language LinkedIn served it in, and its country site when
  that is not `www`

### Why use it?

- **One row, the whole page.** The company's details, its offices, its latest
  posts and its similar pages together, ready for a CRM or a spreadsheet.
- **See what the company is saying.** Recent posts come with the page, with
  their reactions and comments, at no extra cost.
- **Find more companies.** Each row carries LinkedIn's similar and affiliated
  pages, with their links, to feed into the next run.
- **Use the data anywhere.** Download as JSON, CSV or Excel, or send it to
  your own tools through Apify's API and integrations.

### How to use it

1. Paste one or more **Companies**: links such as
   `https://www.linkedin.com/company/microsoft`, or names such as `stripe`.
2. Click **Start**. When the run ends, open the **Output** tab to view the
   companies or download them.

Run it with no input to see a sample: four companies: Microsoft, Stripe,
Perplexity and FPT Software, charged as usual.

#### Links that work

Any company page, `linkedin.com/company/<name>`, or showcase page,
`linkedin.com/showcase/<name>`, on any LinkedIn country subdomain
(`uk.linkedin.com`, `vn.linkedin.com`…), with or without tracking parts or a
trailing page such as `/about/` or `/posts/`. School pages, numeric company
links (`/company/1035`), profiles, other LinkedIn pages, other sites and
website addresses (`www.example.com`) stop the run before anything is read,
naming the link.

### Input

| Field                         | What it does                                                              | Default |
| ----------------------------- | ------------------------------------------------------------------------- | ------- |
| **Companies** (`companyUrls`) | Company links or names, one row each. A company listed twice is read once | —       |

Example input:

```json
{
  "companyUrls": ["https://www.linkedin.com/company/microsoft", "stripe"]
}
```

### Output

One row per company. An example, with made-up values and shortened lists:

```json
{
  "url": "https://www.linkedin.com/company/example-co",
  "universal_name": "example-co",
  "page_type": "company",
  "input_url": "https://vn.linkedin.com/company/example-co/",
  "company_id": "1234567",
  "name": "Example Co",
  "tagline": "Payments for everyone.",
  "description": "Example Co builds payment software…",
  "website": "https://www.example.com/",
  "industry": "Software Development",
  "company_size": "1,001-5,000 employees",
  "company_size_min": 1001,
  "company_size_max": 5000,
  "employees_on_linkedin": 1408,
  "followers_count": 184900,
  "organization_type": "Privately Held",
  "founded_year": 2015,
  "specialties": ["Payments", "Banking APIs"],
  "headquarters": "Da Nang, Da Nang",
  "hq_street": "1 Example Road",
  "hq_city": "Da Nang",
  "hq_region": "Da Nang",
  "hq_postal_code": "550000",
  "hq_country_code": "VN",
  "locations": [
    {
      "is_primary": true,
      "address": "1 Example Road, Da Nang, Da Nang 550000, VN",
      "lines": ["1 Example Road", "Da Nang, Da Nang 550000, VN"]
    }
  ],
  "logo_url": "https://media.licdn.com/dms/image/…",
  "cover_image_url": "https://media.licdn.com/dms/image/…",
  "is_paid_page": false,
  "jobs_url": "https://www.linkedin.com/jobs/example-co-jobs-worldwide?f_C=1234567",
  "page_locale": "en_US",
  "country_site": "vn",
  "products": [
    {
      "name": "Example Pay",
      "url": "https://www.linkedin.com/products/example-co-example-pay/",
      "category": "Payment Processing Software",
      "category_url": "https://www.linkedin.com/products/categories/payment-processing-software",
      "description": "Take payments online…",
      "image_url": "https://media.licdn.com/dms/image/…"
    }
  ],
  "employees_shown": [
    {
      "name": "Lan Nguyen",
      "url": "https://vn.linkedin.com/in/lan-nguyen",
      "headline": "Head of Engineering at Example Co",
      "is_influencer": false,
      "photo_url": "https://media.licdn.com/dms/image/…"
    }
  ],
  "posts": [
    {
      "activity_id": "7516000000000000000",
      "url": "https://www.linkedin.com/posts/example-co_…",
      "share_id": "7516000000000000001",
      "header": null,
      "is_repost": false,
      "original_activity_id": "7516000000000000000",
      "text": "We are hiring…",
      "published_at": "2026-10-01T08:30:00.000Z",
      "posted_ago": "2w",
      "is_edited": false,
      "author_name": "Example Co",
      "author_url": "https://www.linkedin.com/company/example-co",
      "reactions_count": 138,
      "comments_count": 5,
      "reaction_types": ["LIKE", "PRAISE"],
      "images": ["https://media.licdn.com/dms/image/…"],
      "video_url": null,
      "video_thumbnail_url": null,
      "article": null,
      "reshared_post": null
    }
  ],
  "affiliated_pages": [
    {
      "name": "Example Labs",
      "url": "https://www.linkedin.com/showcase/example-labs",
      "industry": "Software Development",
      "location": "Da Nang, Vietnam",
      "logo_url": "https://media.licdn.com/dms/image/…"
    }
  ],
  "similar_pages": [
    {
      "name": "Other Co",
      "url": "https://www.linkedin.com/company/other-co",
      "industry": "Financial Services",
      "location": "Hanoi",
      "logo_url": "https://media.licdn.com/dms/image/…"
    }
  ]
}
```

| Field                                                                                    | What it holds                                                                                                                                                                                                                                                                                                                             |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url`                                                                                    | The company's page. A company that changed its name gets its current page                                                                                                                                                                                                                                                                 |
| `universal_name`, `page_type`                                                            | The page's name in its link, in lower case, and `company` or `showcase`                                                                                                                                                                                                                                                                   |
| `input_url`                                                                              | The link or name you gave                                                                                                                                                                                                                                                                                                                 |
| `company_id`                                                                             | LinkedIn's numeric id for the company                                                                                                                                                                                                                                                                                                     |
| `name`, `tagline`, `description`                                                         | The company's name, its tagline (when it has one) and the About text, with its line breaks                                                                                                                                                                                                                                                |
| `website`, `industry`, `organization_type`, `founded_year`                               | As the About section states them                                                                                                                                                                                                                                                                                                          |
| `company_size`, `company_size_min`, `company_size_max`                                   | The size LinkedIn states, and its range as numbers ("10,001+" has no upper number)                                                                                                                                                                                                                                                        |
| `employees_on_linkedin`                                                                  | The exact number of LinkedIn members who list the company                                                                                                                                                                                                                                                                                 |
| `followers_count`                                                                        | The exact number of followers                                                                                                                                                                                                                                                                                                             |
| `specialties`                                                                            | The specialties listed                                                                                                                                                                                                                                                                                                                    |
| `headquarters`, `hq_street`, `hq_city`, `hq_region`, `hq_postal_code`, `hq_country_code` | The headquarters line and its address in parts                                                                                                                                                                                                                                                                                            |
| `locations`                                                                              | The offices listed: the address in one line, its lines, and whether it is the primary one                                                                                                                                                                                                                                                 |
| `logo_url`, `cover_image_url`                                                            | The logo and the cover image                                                                                                                                                                                                                                                                                                              |
| `is_paid_page`                                                                           | Whether the company has a Premium page                                                                                                                                                                                                                                                                                                    |
| `jobs_url`                                                                               | LinkedIn's job search for the company                                                                                                                                                                                                                                                                                                     |
| `page_locale`, `country_site`                                                            | The language LinkedIn served the page in, and its country site ("vn") when not `www`                                                                                                                                                                                                                                                      |
| `products`                                                                               | Name, link, category and its link, description, image                                                                                                                                                                                                                                                                                     |
| `employees_shown`                                                                        | The employees the page shows (a handful): name, profile link, headline, influencer mark, photo                                                                                                                                                                                                                                            |
| `posts`                                                                                  | The recent posts on the page: id, link, whether the company reposted it (with the original post's id), the "reposted this" line, text, date (when LinkedIn gives it), age as shown ("2w"), edited or not, author and their page, reactions, comments, reaction types, images, video and its thumbnail, link preview, the post it reshares |
| `affiliated_pages`, `similar_pages`                                                      | The pages LinkedIn shows beside the company: name, link, industry, location, logo                                                                                                                                                                                                                                                         |

A section the page does not show is an empty list. Not included: funding
rounds and investors, the company's phone number, the full list of its
employees and its older posts (LinkedIn shows these only to signed-in
members, or on other pages).

### How much does it cost?

No surcharges and no paid options; an item that fails is not charged.

You pay for what you get:

- **$2.50 per 1,000 companies** ($0.0025 a company). A company that could not be read is not charged.
- No start fee.

So 200 companies cost $0.50. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every company saved so far.

### How long does a run take?

Seconds for a few companies: 4 companies in about 5 seconds, 7 in about 10.
20 took about 2.5 minutes, most of it one slow answer from LinkedIn.

### Good to know

- **Language.** LinkedIn serves some companies' pages in their country's
  language (a Vietnamese company's page in Vietnamese, for example). The
  numbers, links, addresses and posts read the same; the industry and size
  text come in that language. `page_locale` says which.
- **A company that cannot be read** (removed, or shown only to signed-in
  members) is reported in the run's status; the other companies carry on.
  The run fails only when none could be read.
- **One company, one row.** A company listed twice, or under an old and a new
  name, is saved once.
- **Post dates.** LinkedIn gives the exact date for some posts; every post
  has its age as shown ("1d", "2w").

### More Actors from us

- [LinkedIn Jobs Scraper: Every Job, Counted](https://apify.com/luzivanlt/linkedin-jobs-scraper): Every job a LinkedIn search lists, checked against LinkedIn's own count, with its full description.
- [LinkedIn Profile Scraper: Public Profiles & Posts](https://apify.com/luzivanlt/linkedin-profiles-scraper): Public LinkedIn profiles from links: name, location, exact followers, current company, recent posts.
- [AliExpress Product Scraper: Search Results & Prices](https://apify.com/luzivanlt/aliexpress-products-scraper): Every product of an AliExpress search to its last page, with exact sold counts and ratings.
- [Amazon Product Scraper: Search Results & Prices](https://apify.com/luzivanlt/amazon-products-scraper): Every product on Amazon's search pages to the last page, sponsored marked, with monthly sales.
- [App Store Reviews Scraper: All Reviews, Not 500](https://apify.com/luzivanlt/app-store-reviews-scraper): Every written App Store review of an app, not just the newest 500.
- [Woolworths Coles ALDI Scraper: AU Grocery Prices](https://apify.com/luzivanlt/au-supermarkets-scraper): Woolworths, Coles and ALDI products for any search in one run, every results page to the end.
- [Bilibili Video Scraper: Search & Channel Videos](https://apify.com/luzivanlt/bilibili-videos-scraper): Bilibili videos from searches or whole channels, each with its full detail page's data.
- [Career Site Jobs Scraper: Workday, Greenhouse, Lever](https://apify.com/luzivanlt/career-site-jobs-scraper): Every job on Greenhouse, Lever, Ashby, SmartRecruiters and Workday boards, checked against each board's count.

### Use it from an AI agent or the API

One call starts a run and returns its items (Apify waits up to 300 seconds; for a
longer run, start it with `POST /v2/acts/…/runs` and read its dataset):

```text
POST https://api.apify.com/v2/acts/luzivanlt~linkedin-companies-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>
```

With the sample input as its JSON body:

```json
{
  "companyUrls": [
    "https://www.linkedin.com/company/microsoft",
    "https://www.linkedin.com/company/stripe",
    "https://www.linkedin.com/company/perplexity-ai",
    "https://www.linkedin.com/company/fpt-software"
  ]
}
```

Its inputs, in the order of the input form:

| Input                     | What it takes                                                                                                                                                                                  | Default |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `companyUrls` (Companies) | LinkedIn company or showcase page links (linkedin.com/company/… or /showcase/…, any country subdomain, even with a trailing page such as /about/) or company names (the part after /company/). | —       |

Apify's MCP server, `https://mcp.apify.com`, lists it as `luzivanlt/linkedin-companies-scraper`. To give an
AI agent this Actor as a tool, add the server to the agent's MCP config:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=luzivanlt/linkedin-companies-scraper"
    }
  }
}
```

The client signs in with OAuth, or add `"headers": { "Authorization": "Bearer <APIFY_TOKEN>" }`.

Charged per company delivered; the sample input above costs at most $0.01.

### FAQ

**Do I need a LinkedIn account or cookies?**
No. The Actor reads what anyone can see on LinkedIn without signing in.

**Can I search for companies by name or industry?**
Not yet. Give the company links; the similar pages in each row are a good way
to find more.

**Can I run it from my own code, on a schedule, or with other apps?**
Yes. Like any Apify Actor, you can start it through the Apify API, run it on a
schedule, and connect it to other apps with Apify's integrations and webhooks.

### Is it legal to scrape LinkedIn?

This Actor reads only public company pages. The employees and post authors on
a page are personal data: check LinkedIn's terms and the laws that apply to
you (such as the GDPR) before you use it, and use it only for a purpose those
laws allow. If you are unsure, ask a lawyer.

### Support

Found a problem or missing a feature? Open an issue on the **Issues** tab and
include the run's link.

***

This Actor is not affiliated with, endorsed by or sponsored by LinkedIn or
Microsoft.

# Changelog

This Actor's version history is a separate document: https://apify.com/luzivanlt/linkedin-companies-scraper/changelog.md

# Actor input Schema

## `companyUrls` (type: `array`):

LinkedIn company or showcase page links (linkedin.com/company/… or /showcase/…, any country subdomain, even with a trailing page such as /about/) or company names (the part after /company/). One row per company; a company listed twice is read once. Up to 5,000 companies a run, each charged once. School pages and numeric links (/company/1035) are refused. Example: https://www.linkedin.com/company/microsoft or stripe.

## Actor input object example

```json
{
  "companyUrls": [
    "https://www.linkedin.com/company/microsoft",
    "https://www.linkedin.com/company/stripe",
    "https://www.linkedin.com/company/perplexity-ai",
    "https://www.linkedin.com/company/fpt-software"
  ]
}
```

# Actor output Schema

## `companies` (type: `string`):

Every company the run saved, one row per company.

## `allFields` (type: `string`):

The same rows with every field.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companyUrls": [
        "https://www.linkedin.com/company/microsoft",
        "https://www.linkedin.com/company/stripe",
        "https://www.linkedin.com/company/perplexity-ai",
        "https://www.linkedin.com/company/fpt-software"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("luzivanlt/linkedin-companies-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "companyUrls": [
        "https://www.linkedin.com/company/microsoft",
        "https://www.linkedin.com/company/stripe",
        "https://www.linkedin.com/company/perplexity-ai",
        "https://www.linkedin.com/company/fpt-software",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("luzivanlt/linkedin-companies-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companyUrls": [
    "https://www.linkedin.com/company/microsoft",
    "https://www.linkedin.com/company/stripe",
    "https://www.linkedin.com/company/perplexity-ai",
    "https://www.linkedin.com/company/fpt-software"
  ]
}' |
apify call luzivanlt/linkedin-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,luzivanlt/linkedin-companies-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bl24iKNXtHI5FRoiC/builds/bnB4etQhnD0Dpj9zc/openapi.json
