# LinkedIn Company Scraper (No Cookies) (`mina_safwat/linkedin-company-scraper-no-cookies`) Actor

Scrapes public LinkedIn company pages without login or cookies: name, industry, size, employee and follower counts, headquarters, website, specialties, founded year, locations, similar pages and recent posts.

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

## Pricing

$1.50 / 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.

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

### What does LinkedIn Company Scraper (No Cookies) do?

**LinkedIn Company Scraper (No Cookies)** turns public [LinkedIn](https://www.linkedin.com) company pages into clean data, **without a LinkedIn account, login or session cookies**. Paste company page links and get one row per company with its **name, industry, company size, employees on LinkedIn, follower count, headquarters address, website, company type, founded year, specialties, office locations, logo and cover image**, plus the **similar and affiliated pages** LinkedIn lists beside it and the company's **recent posts** with reaction and comment counts.

Try it with the two prefilled companies: open the Actor, click **Start**, and both rows are ready in about 20 seconds. Because it runs on the Apify platform, you also get API access, scheduled runs, integrations (Google Sheets, Make, Zapier, Slack, webhooks), proxy rotation and run monitoring.

### Why scrape LinkedIn company pages?

- **Lead enrichment.** Add industry, size, headquarters, website and founded year to a list of accounts in your CRM.
- **Market and competitor research.** Compare companies by employee count, follower growth and what they post about, and discover more with LinkedIn's own *similar pages*.
- **Account-based marketing.** Segment target accounts by size range, industry, company type and country.
- **Monitoring.** Run the same list on a schedule to track follower and employee counts, new office locations or new posts.
- **No account at risk.** Nothing is done in your name: the Actor reads only what LinkedIn shows to any signed-out visitor.

### How to scrape LinkedIn company data

1. Open a company's page on LinkedIn and copy the link from your browser's address bar, for example `https://www.linkedin.com/company/microsoft/`.
2. Paste it into **LinkedIn company links**, one company per line. Links from LinkedIn's country sites (`fr.linkedin.com/company/…`), links to a company's *About* or *Posts* tab, showcase pages (`linkedin.com/showcase/…`) and the bare company name from the link (`microsoft`) all work.
3. Leave **Include recent posts** on if you want the company's latest posts.
4. Click **Start**, then download the results when the run finishes.

### Input

Everything is set on the Input tab. In JSON, the input looks like this:

```json
{
    "startUrls": [
        "https://www.linkedin.com/company/microsoft/",
        "https://fr.linkedin.com/company/mistralai/about/",
        "https://www.linkedin.com/showcase/microsoft-azure/",
        "stripe"
    ],
    "includePosts": true
}
```

| Field | What it does |
|---|---|
| `startUrls` | Company or showcase page links, one per company. API callers can also pass `{"url": "…"}` objects, and links without `https://` work. Each company is read once, however many of its links you paste. |
| `includePosts` | Adds the company's recent posts as LinkedIn shows them on the page, usually the latest 10. Default: on. |
| `proxyConfiguration` | Usually leave it as it is: the Actor reads LinkedIn through Apify's datacenter proxy with a fresh address per attempt, and moves to residential proxies only when LinkedIn keeps refusing. Pick a proxy here only if you want it used for every request. |

### Output

Each company becomes one row. Here is a real example, with the long lists shortened:

```json
{
    "companyId": 10608457,
    "name": "Apify",
    "pageType": "company",
    "slug": "apify",
    "url": "https://www.linkedin.com/company/apify/",
    "tagline": "Thousands of Actors to automate your business, get real-time web data, and equip your AI agents.",
    "description": "Apify is the largest marketplace of tools for AI. More than 50,000 Actors to automate your business. Get real-time web data, track competitors, generate leads, …",
    "website": "https://apify.com/",
    "industry": "Technology, Information and Internet",
    "companySize": "201-500 employees",
    "companySizeMin": 201,
    "companySizeMax": 500,
    "employeesOnLinkedIn": 272,
    "followers": 40909,
    "headquarters": "Prague",
    "headquartersAddress": {
        "streetAddress": "Vodickova 704/36",
        "city": "Prague",
        "region": null,
        "postalCode": "11100",
        "country": "CZ"
    },
    "companyType": "Privately Held",
    "foundedYear": 2016,
    "specialties": ["Web scraping", "Browser automation", "AI agents", "API integration", "Data pipelines", "No-code tools", "Actor marketplace", "Developer platform"],
    "logoUrl": "https://media.licdn.com/dms/image/v2/D4D0BAQF7OnC-r1njIA/company-logo_200_200/…",
    "coverImageUrl": "https://media.licdn.com/dms/image/v2/D4E3DAQGvTIu7j6RvRg/image-scale_325_1920/…",
    "locations": [
        { "address": "Vodickova 704/36, Prague, 11100, CZ", "country": "CZ", "isPrimary": true },
        { "address": "San Francisco, CA, US", "country": "US", "isPrimary": false }
    ],
    "affiliatedPages": [],
    "similarPages": [
        { "name": "n8n", "url": "https://www.linkedin.com/company/n8n/", "industry": "Software Development", "location": "Berlin, BE" }
    ],
    "products": [
        { "name": "Apify", "category": "Marketplace Platforms", "url": "https://www.linkedin.com/products/apify/" }
    ],
    "recentPosts": [
        {
            "url": "https://www.linkedin.com/feed/update/urn:li:activity:7513924444768223232/",
            "postedAt": "2026-10-08T11:33:09+00:00",
            "text": "Every agent needs proper tools, and Apifiers are all over #SFTechWeek making sure they get them 🛠️ …",
            "reactions": 4,
            "comments": 1,
            "isRepost": false
        }
    ],
    "input": "https://www.linkedin.com/company/apify/",
    "scrapedAt": "2026-10-08T13:01:23.273357+00:00"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The Output tab has three views: **Companies** (the main columns), **Profile details** (address, locations, specialties, related pages and products) and **Recent posts** (one line per post).

### Data fields

| Field | Description |
|---|---|
| `companyId` | LinkedIn's numeric ID for the company. |
| `name` | Company name. |
| `pageType` | `company`, or `showcase` for a showcase page (a brand or product page run by a company). |
| `slug` | The company's name in its LinkedIn link. |
| `url` | The company's LinkedIn page. When LinkedIn sends a link on to another page, this is the page it landed on. |
| `tagline` | The short line under the company name, when it has one. |
| `description` | The *About us* text. |
| `website` | The company's website. |
| `industry` | Industry, such as `Software Development`. |
| `companySize` | The size range the company chose, such as `201-500 employees`. |
| `companySizeMin`, `companySizeMax` | The same range as numbers. `companySizeMax` is empty for the open-ended `10,001+ employees`. |
| `employeesOnLinkedIn` | How many LinkedIn members list the company as their employer. Showcase pages often don't have it. |
| `followers` | LinkedIn followers. |
| `headquarters` | Headquarters as the page shows it, such as `Redmond, Washington`. |
| `headquartersAddress` | The headquarters address in parts: `streetAddress`, `city`, `region`, `postalCode` and `country` (two-letter code). |
| `companyType` | Such as `Public Company`, `Privately Held`, `Nonprofit` or `Partnership`. |
| `foundedYear` | The year the company was founded, when it says. |
| `specialties` | The specialties the company lists. |
| `logoUrl`, `coverImageUrl` | The logo and the banner image. |
| `locations` | Every office address listed, each with its two-letter `country` and whether it is the `isPrimary` (main) one. |
| `affiliatedPages` | Pages LinkedIn links to the company, such as subsidiaries and showcase pages: `name`, `url`, `industry`, `location`. |
| `similarPages` | The similar companies LinkedIn suggests, with the same fields. |
| `products` | Products listed on the page: `name`, `category`, `url`. |
| `recentPosts` | The posts shown on the page: `url`, `postedAt` (UTC), `text`, `reactions`, `comments`, and `isRepost` for posts the company shared from someone else. A repost is dated by the original post. Present only when **Include recent posts** is on. |
| `input` | The link you pasted that led to this row. |
| `scrapedAt` | When the row was collected, in UTC. |

A field is empty (`null` or `[]`) when the company hasn't filled it in or the page type doesn't have it.

### How much does it cost to scrape LinkedIn company pages?

The Actor uses **pay-per-event** pricing: you pay for each company saved, and the exact price is on the **Pricing** tab. Links that return nothing (a company that doesn't exist, a link that isn't a company page) are never saved as rows, so you are not charged for them. If you set a maximum cost for a run, the Actor stops as soon as it is reached.

Apify's free plan includes monthly credit you can use to try it. The Actor reads plain web pages without a browser, so runs are light: at the default 1024 MB it reads about 100 companies in about 30 seconds.

### Tips for scraping LinkedIn companies

- **Paste whatever link you have.** Country sites, *About* and *Posts* tabs, tracking parameters and links without `https://` are all cleaned up, and duplicates are read once.
- **Turn off Include recent posts** if you only need company details: rows get smaller and runs a little faster.
- **Big lists finish sooner with more memory.** The Actor reads about five pages at a time per 512 MB of memory, up to 20. In our tests, 100 companies took about 2 minutes at 512 MB and about 30 to 60 seconds at the default 1024 MB.
- **Find more companies** with the `similarPages` and `affiliatedPages` links of your results: paste them into a new run.
- **Schedule runs** to track follower and employee counts over time.

### FAQ, disclaimers and support

**Do I need a LinkedIn account or cookies?** No. The Actor reads the same public page LinkedIn shows to anyone who isn't signed in, so no account is used and none can be restricted.

**Why are some fields empty?** Companies fill in different parts of their page. Showcase pages often have no headquarters, locations or employee count, and many companies don't give a founding year or tagline. Data LinkedIn shows only to signed-in members, such as employee lists, funding rounds and older posts, is not part of the public page and is not included.

**Which links can't be read?** LinkedIn shows school (university) pages and links that open a company by number (`linkedin.com/company/1035`) only to signed-in members. Paste the link with the company's name instead. Profile, job and post links are not company pages.

**What happens to links that return nothing?** They are not saved as rows, so you are not charged for them. Each is listed with its reason in the `FAILED_INPUTS` record of the run's key-value store, and the run's status message gives the counts. A run fails only when LinkedIn refused every link.

**Is it legal to scrape LinkedIn company pages?** This Actor collects business information that companies publish openly on their public LinkedIn pages. It does not collect employee lists or personal profiles. Post text can still mention people, so you are responsible for making sure your use complies with LinkedIn's terms and with data protection laws such as the GDPR. If in doubt, ask a lawyer.

**Found a problem or need a custom solution?** Open an issue on the **Issues** tab and we will look into it. Custom scrapers and data feeds are available on request.

# Actor input Schema

## `startUrls` (type: `array`):

Company or showcase page links, one per line, such as https://www.linkedin.com/company/microsoft. Links from LinkedIn's country sites (fr.linkedin.com/company/…), links to a company's About or Posts tab, and the company name from the link on its own (microsoft) work too. School (university) pages and links that open a company by number (linkedin.com/company/1035) are shown only to signed-in members, so they are listed in the FAILED_INPUTS record instead.

## `includePosts` (type: `boolean`):

Adds the posts LinkedIn shows on the company page to signed-out visitors, usually the latest 10, with their text, date, and reaction and comment counts. Turn off for smaller rows.

## `proxyConfiguration` (type: `object`):

Leave this as it is: the Actor reads LinkedIn through Apify's datacenter proxy, retrying from fresh addresses, and moves to residential proxies only when LinkedIn keeps refusing. Choose a proxy here only if you want it used for every request.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.linkedin.com/company/microsoft/",
    "https://www.linkedin.com/company/apify/"
  ],
  "includePosts": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "startUrls": [
        "https://www.linkedin.com/company/microsoft/",
        "https://www.linkedin.com/company/apify/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mina_safwat/linkedin-company-scraper-no-cookies").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 = { "startUrls": [
        "https://www.linkedin.com/company/microsoft/",
        "https://www.linkedin.com/company/apify/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("mina_safwat/linkedin-company-scraper-no-cookies").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 '{
  "startUrls": [
    "https://www.linkedin.com/company/microsoft/",
    "https://www.linkedin.com/company/apify/"
  ]
}' |
apify call mina_safwat/linkedin-company-scraper-no-cookies --silent --output-dataset

```

## MCP server setup

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

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/hIpfYVcweYSquoa2y/builds/6CV788BnzdwCluDcy/openapi.json
