# LinkedIn Company Scraper (No Login, Fast) (`juliob.rangel/linkedin-company-fast`) Actor

Get public LinkedIn company page data without logging in: name, industry, size, headquarters, website, founded year, specialties, followers, employees on LinkedIn and description. Ideal for B2B lead enrichment.

- **URL**: https://apify.com/juliob.rangel/linkedin-company-fast.md
- **Developed by:** [Julio Barcellos Rangel](https://apify.com/juliob.rangel) (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 $2.10 / 1,000 company scrapeds

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 (No Login, Fast)

LinkedIn Company Scraper gets public LinkedIn company page data in bulk without logging in: name, industry, company size, headquarters and address, website, founded year, specialties, followers, employees on LinkedIn and the About description. It is a LinkedIn company data scraper for B2B sales, marketing and research teams who enrich account lists. Paste company URLs or slugs and export LinkedIn company profiles to Excel, CSV or JSON, with no account and no cookies.

### What does LinkedIn Company Scraper do?

You give it a list of LinkedIn companies. For each one, the scraper opens the public company page on linkedin.com (the version anyone sees without logging in), reads the top card, the About section and the structured data in the page, and saves one clean row per company.

It accepts these forms, mixed in the same list:

| Input form | Example |
|---|---|
| Company page URL | `https://www.linkedin.com/company/nubank` |
| URL with a sub-page | `https://www.linkedin.com/company/stripe/about/` |
| Company slug only | `openai` |

The slug is the part after `/company/` in the link. Duplicates are removed, so the same slug in two lines is scraped once.

Each row holds the company's identity (name, tagline, logo, LinkedIn URL), its About data (description, website, industry, size bracket, headquarters, organization type, founded year, specialties), its LinkedIn numbers (followers and employees on LinkedIn) and its address split into street, city, region, postal code and country. No personal profiles are collected. You do not need a LinkedIn account, cookies or an API key.

### What data can you extract?

| Field | What it means | Example |
|---|---|---|
| `name` | Company name | `OpenAI` |
| `linkedinUrl` | Company page on LinkedIn | `https://www.linkedin.com/company/openai` |
| `tagline` | Short tagline under the name, when the page has one | `Help increase the GDP of the internet.` |
| `description` | About text of the company | `OpenAI is an AI research and deployment company…` |
| `website` | Company website (the real link, not LinkedIn's redirect) | `https://openai.com/` |
| `industry` | Industry chosen on LinkedIn | `Research Services` |
| `companySize` | Size bracket chosen on LinkedIn | `1,001-5,000 employees` |
| `headquarters` | Headquarters city and region | `San Francisco, CA` |
| `organizationType` | Type of organization | `Partnership` |
| `foundedYear` | Year founded, when the page shows it | `2010` |
| `specialties` | List of specialties | `["artificial intelligence and machine learning"]` |
| `followers` | Number of LinkedIn followers | `11883115` |
| `employeesOnLinkedIn` | Number of LinkedIn members linked to the company | `11191` |
| `address` | Address object with the fields below, or `null` | `{…}` |
| `address.street` | Street address | `354 Oyster Point Blvd` |
| `address.city` | City | `San Francisco` |
| `address.region` | State or region | `CA` |
| `address.postalCode` | Postal code | `94110` |
| `address.country` | Country code | `US` |
| `logo` | Logo image link | `https://media.licdn.com/dms/image/v2/…/openai_logo?…` |
| `scrapedAt` | When the row was collected | `2026-10-07T19:37:02.140Z` |
| `error` | Only on error rows: why the company was not returned | `Company page not found or not reachable` |

Examples come from real runs (OpenAI, and Stripe for `tagline`, `foundedYear` and `address.street`). Counts are real numbers, so you can sort and filter by `followers` or `employeesOnLinkedIn` in Excel or Google Sheets. Fields that a company page does not show come as `null` (or `[]` for `specialties`).

### How to use LinkedIn Company Scraper

1. Open LinkedIn Company Scraper in Apify Console (sign in or create a free Apify account).
2. In **Company URLs or slugs**, paste LinkedIn company links or slugs, one per line. Hundreds of lines are fine.
3. Leave **Proxy** on the default Apify Proxy (datacenter proxies work).
4. Click **Start**. The log shows how many companies were returned.
5. Open the **Output** tab to see the table, then click **Export** to download the data as JSON, CSV, Excel or HTML.
6. Optional: save the input as a task and add a schedule (for example monthly) to track followers and employee counts over time.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `companies` | array of strings | `["https://www.linkedin.com/company/nubank", "openai"]` | LinkedIn company URLs (`linkedin.com/company/...`) or just the slug, for example `nubank`. |
| `proxy` | object | `{"useApifyProxy": true}` | Apify Proxy settings (datacenter works). |

There is no "max results" setting: each company in the list returns exactly one row (the company, or an error row). A plain slug can contain letters, numbers, underscores, dots, hyphens and `%`. Lines that are neither a slug nor a LinkedIn company link produce no row.

Example input:

```json
{
  "companies": [
    "https://www.linkedin.com/company/nubank",
    "https://www.linkedin.com/company/stripe/about/",
    "openai",
    "natura"
  ],
  "proxy": {
    "useApifyProxy": true
  }
}
```

### Output example

A real row from the latest run (the description and logo link are shortened):

```json
{
  "name": "OpenAI",
  "linkedinUrl": "https://www.linkedin.com/company/openai",
  "tagline": null,
  "description": "OpenAI is an AI research and deployment company dedicated to ensuring that general-purpose artificial intelligence benefits all of humanity…",
  "website": "https://openai.com/",
  "industry": "Research Services",
  "companySize": "1,001-5,000 employees",
  "headquarters": "San Francisco, CA",
  "organizationType": "Partnership",
  "foundedYear": null,
  "specialties": ["artificial intelligence and machine learning"],
  "followers": 11883115,
  "employeesOnLinkedIn": 11191,
  "address": {
    "street": null,
    "city": "San Francisco",
    "region": "CA",
    "postalCode": "94110",
    "country": "US"
  },
  "logo": "https://media.licdn.com/dms/image/v2/D560BAQHpzXbqSyR74A/company-logo_200_200/B56ZT8EYB8HsAI-/0/1739395793272/openai_logo?…",
  "scrapedAt": "2026-10-07T19:37:02.140Z"
}
```

An error row looks like this and is not charged:

```json
{
  "linkedinUrl": "https://www.linkedin.com/company/notarealcompany-xyz-123",
  "error": "Company page not found or not reachable"
}
```

### How much does it cost?

LinkedIn Company Scraper uses pay per event pricing. You pay **$3.00 per 1,000 companies** returned ($0.003 per company) on the Free plan. Platform usage (compute and proxy) is included in that price.

| Apify plan | Price per 1,000 companies |
|---|---|
| Free | $3.00 |
| Bronze (10% off) | $2.70 |
| Silver (20% off) | $2.40 |
| Gold and higher (30% off) | $2.10 |

Worked examples on the Free plan:

- 100 target accounts for a sales campaign = **$0.30**
- 2,000 companies from a CRM export = **$6.00**
- 10,000 companies for a market map = **$30.00** ($21.00 on Gold)

What you are **not** charged for:

- Error rows ("Company page not found or not reachable").
- Retries. A company that needs several tries is charged once, only if it is returned.
- Duplicate lines and lines that are not a slug or LinkedIn company link.

### Use cases

- **CRM enrichment.** Add industry, size bracket, headquarters, website and LinkedIn followers to the accounts you already have.
- **Ideal customer profile (ICP) lists.** Filter a long list of companies by `industry`, `companySize` and `address.country` to keep only the accounts that fit.
- **Competitor tracking.** Run the same companies every month and follow `followers` and `employeesOnLinkedIn` as growth signals.
- **Market and investment research.** Build a table of the players in a sector with their size, founding year, organization type and specialties.
- **Website discovery.** Get each company's real website from its LinkedIn page, then find emails and phones with a contact scraper.
- **Data cleaning.** Find slugs that no longer work; they come back as error rows.
- **Hiring context.** Pair company data with the company's open roles from LinkedIn Jobs Scraper.

### Tips and limits

- **Public data only.** The scraper sees what a logged-out visitor sees on the company page. It does not return employee names, people profiles, posts or job listings.
- **Some fields are often empty.** `tagline`, `foundedYear` and `specialties` are only filled when the page shows them to logged-out visitors. In recent runs, `foundedYear` was empty for several large companies. `address` comes from the page's structured data and may miss the street or postal code.
- **Employees vs size.** `companySize` is the bracket the company chose (like `5,001-10,000 employees`). `employeesOnLinkedIn` is the number of LinkedIn members who list the company, so the two can differ.
- **Specialties.** The list is split on commas, so the last item can start with "and " when LinkedIn writes the list that way (for example `and Biodiversidade`).
- **Use the exact slug.** The company slug is not always the brand name (for example Magalu is `magazine-luiza`). Copy it from the company's LinkedIn URL. Duplicates are compared as written, so `Stripe` and `stripe` are looked up twice.
- **Retries and the login wall.** Each page gets up to 5 tries with a 30-second timeout. When LinkedIn sends the request to its login wall instead of the page, the scraper counts it as a failed try and tries again. If all tries fail or the page does not exist, you get an error row.
- **Companies are processed one at a time.** A long list simply takes longer. You can split a very large list into several runs.

### Use it from the API, Python or JavaScript

JavaScript (Node.js) with the official `apify-client` package:

```javascript
const { ApifyClient } = require('apify-client');

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const input = { companies: ['https://www.linkedin.com/company/nubank', 'openai'] };

(async () => {
    const run = await client.actor('juliob.rangel/linkedin-company-fast').call(input);
    const { items } = await client.dataset(run.defaultDatasetId).listItems();
    console.log(items);
})();
```

Python with the official `apify-client` package:

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_TOKEN')
run_input = {'companies': ['stripe', 'natura', 'https://www.linkedin.com/company/totvs']}

run = client.actor('juliob.rangel/linkedin-company-fast').call(run_input=run_input)
items = client.dataset(run['defaultDatasetId']).list_items().items
for item in items:
    print(item.get('name'), item.get('industry'), item.get('employeesOnLinkedIn'), item.get('website'))
```

The scraper also works with Make, Zapier and n8n, can export results to Google Sheets, can call your webhook when a run finishes, and can be used by AI agents through the Apify MCP server.

### FAQ

#### Do I need a LinkedIn account or cookies?

No. The scraper reads public company pages without logging in, so there is no risk to your own LinkedIn account. You only need an Apify account to run it.

#### Can I export LinkedIn company data to Excel or CSV?

Yes. After the run, open the Output tab and export the dataset as Excel, CSV, JSON or HTML, or read it through the API.

#### How many companies can I scrape in one run?

There is no fixed cap in the scraper. Each line in `companies` returns one row, and companies are fetched one after another, so bigger lists take longer.

#### Is it legal to scrape LinkedIn company pages?

The scraper only collects publicly available company data. You are responsible for complying with LinkedIn's terms and with privacy laws such as GDPR and LGPD. If you combine company data with personal data, you need a legitimate reason to process it.

#### Why did I get a row with an `error` field?

The slug does not exist on LinkedIn, or LinkedIn did not show the page after 5 tries (for example, it kept sending the request to the login wall). Error rows are not charged. Check the slug in the company's URL and run it again later.

#### Does it return employee lists or emails?

No. It returns company-level data only. Use the `website` field with Website Contact Details Scraper to find emails and phones.

#### Can I search companies by keyword?

No. The input is a list of company URLs or slugs. Find the companies first (for example in your CRM or from job postings), then paste their LinkedIn links.

### Related scrapers

- [LinkedIn Jobs Scraper (No Login, Fast)](https://apify.com/juliob.rangel/linkedin-jobs-fast)
- [Website Contact Details Scraper (Emails, Phones, Socials)](https://apify.com/juliob.rangel/website-contact-details-scraper)
- [Google Maps Email Extractor (Leads with Emails & Socials)](https://apify.com/juliob.rangel/google-maps-email-extractor)
- [Career Site Jobs: Greenhouse, Lever, Ashby, Workable](https://apify.com/juliob.rangel/career-site-jobs)
- [Google Maps Scraper (Places, Phones, Websites, Ratings)](https://apify.com/juliob.rangel/google-maps-places-scraper-fast)

***

## Raspador de Empresas do LinkedIn (sem login)

Dados públicos de páginas de empresa do LinkedIn em massa: setor, porte, funcionários no LinkedIn, seguidores, sede, endereço, site, fundação e especialidades. Para enriquecer leads B2B e montar listas de empresas-alvo.

# Actor input Schema

## `companies` (type: `array`):

LinkedIn company URLs (linkedin.com/company/...) or just the slug, e.g. 'nubank'.

## `proxy` (type: `object`):

Apify Proxy settings (datacenter works).

## Actor input object example

```json
{
  "companies": [
    "https://www.linkedin.com/company/nubank",
    "openai"
  ],
  "proxy": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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 = {
    "companies": [
        "https://www.linkedin.com/company/nubank",
        "openai"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("juliob.rangel/linkedin-company-fast").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 = { "companies": [
        "https://www.linkedin.com/company/nubank",
        "openai",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("juliob.rangel/linkedin-company-fast").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 '{
  "companies": [
    "https://www.linkedin.com/company/nubank",
    "openai"
  ]
}' |
apify call juliob.rangel/linkedin-company-fast --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,juliob.rangel/linkedin-company-fast"
        }
    }
}
```

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/XEL8KjAPqhupqKG1h/builds/4gbz0tbGszbRJqezU/openapi.json
