# LinkedIn Company Details Scraper – No Login (`prs_scraper/linkedin-company-details-scraper`) Actor

Scrape public LinkedIn company data: size, industry, specialties, headquarters, website, employee count, followers, founding year, logo, cover image, office locations and the latest 3 posts with likes and comments. No login, cookies or account needed.

- **URL**: https://apify.com/prs_scraper/linkedin-company-details-scraper.md
- **Developed by:** [PRS](https://apify.com/prs_scraper) (community)
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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 is LinkedIn Company Scraper?

**LinkedIn Company Scraper** is a fast, low-cost tool to **extract LinkedIn company data** at scale, with **no LinkedIn account, login or cookies**. Paste a list of LinkedIn company URLs or names and get one clean, structured record per company: company profile, industry, specialties, company size, employee and follower counts, headquarters, office locations, logo and cover image, plus the company's **latest 3 LinkedIn posts** with likes and comments.

Export your LinkedIn company data to **JSON, CSV, Excel, XML or HTML**, or pull it straight into your app, CRM or spreadsheet through the **Apify API**.

### 📋 What LinkedIn company data can you extract?

**🏢 Company profile**

- Company name, tagline and "About" description
- Website
- Industry and specialties
- Founding year

**🖼️ Branding**

- Company logo
- Cover (banner) image with width, height and link expiry

**📊 Company size & reach**

- Company size band (for example `1,001-5,000 employees`)
- Number of employees on LinkedIn
- Follower count

**📍 Headquarters & office locations**

- Headquarters
- Every office address listed on the page: street, city, region, postal code, country and a headquarters flag

**📰 Latest LinkedIn posts**

- The last 3 posts from the company page: text, post URL, publish date, author, author URL, media type (image, video, article, document, …) and reaction, like and comment counts

**✅ Run details**

- Whether each company was collected (`success`)
- Timestamp of when the company was collected

### 💡 Why scrape LinkedIn company pages?

🎯 **B2B lead generation**: turn a list of company names into enriched leads with website, industry, specialties, company size and headquarters.

🗂️ **CRM & data enrichment**: fill in missing firmographic fields in HubSpot, Salesforce, Pipedrive, Airtable or Google Sheets automatically.

💼 **Sales intelligence & prospecting**: read a prospect's "About" section, specialties and latest posts before you reach out.

🔎 **Competitor analysis**: track competitors' positioning, specialties, headcount, follower growth and what they post.

🧠 **Market research**: map an industry or region by grouping companies by industry, specialties, size and location.

📈 **Investment research**: get a quick overview of what a company does, how big it is and where it operates.

📰 **Content & news monitoring**: follow company announcements, product launches and hiring news from their latest LinkedIn posts.

🏷️ **Recruiting & talent intelligence**: find growing companies, their specialties and their office locations.

### ⭐ Why choose this LinkedIn company scraper?

- **No LinkedIn account, no cookies, no ban risk**: the Actor reads only the public company page. It never logs in or uses LinkedIn accounts, so there's nothing of yours to restrict or ban.
- **Live, fresh data**: every run reads the company page right then. Nothing comes from an old database.
- **All-in-one record**: company details, specialties, images, locations and posts in a single dataset item.
- **Flexible input**: company names (`google`), full URLs, URLs without `https://`, country subdomains and sub-page links all work.
- **Pay only for results**: failed or invalid companies are free.
- **Clean, consistent output**: missing values are `null`, never guessed, so your data stays reliable.
- **Ready for automation**: use the API, schedules, webhooks and integrations with Zapier, Make, Google Sheets and Slack.

### 💰 How much does it cost to scrape LinkedIn company data?

You pay only for results:

| Event | Price |
|---|---|
| Company (a company that returned data) | **$3.00 per 1,000 companies** |
| Actor start | $0.00005 per run |

That's **$0.003 per company**. Platform usage is included, so there are no extra compute or proxy costs. **Failed companies are free**: if a URL is invalid, the company doesn't exist, or the page can't be loaded, you aren't charged for it.

You can set a **maximum cost per run** when you start the Actor. The run stops once that limit is reached.

### 🚀 How to scrape LinkedIn company data (step by step)

1. Click **Try for free** (or **Start**).
2. Add one or more LinkedIn companies (name or URL) to **Companies**.
3. Click **Start** and wait for the run to finish. It takes a few seconds per company.
4. Download your data as JSON, CSV, Excel, XML or HTML, or access it through the Apify API.

### ⬇️ Input

Provide LinkedIn company identifiers or URLs in the `companies` field:

```json
{
  "companies": [
    "example-company",
    "https://linkedin.com/company/example-company",
    "linkedin.com/company/another-company"
  ]
}
```

**Supported input types**

- Company identifier: `example-company`
- Full URL: `https://linkedin.com/company/example-company`
- URL without `https://`: `linkedin.com/company/example-company`
- Country or mobile subdomains: `in.linkedin.com/company/...`, `m.linkedin.com/company/...`
- Links to sub-pages or with tracking parameters (`/about/`, `/posts/`, `?trk=...`) work too

Duplicates are removed (also across formats, e.g. `pwc` and `https://www.linkedin.com/company/pwc/`), so each company is collected and charged only once per run.

**Not supported:** personal profiles (`/in/...`), job posts, schools, showcase pages and non-LinkedIn URLs. These appear in the dataset with `success: false` and are not charged.

#### Advanced settings

| Setting | Default | Description |
|---|---|---|
| `urls` | none | Same as `companies`; kept for backward compatibility. |
| `url` | none | A single company (identifier or URL). Merged with `companies`. |
| `requestDelaySeconds` | `2` | Pause between requests, in seconds (0–15). |

The default works well for most runs. A lower delay can lead to more failed companies.

### ⬆️ Output: sample LinkedIn company data

Each company becomes one item in the dataset. Here is a real result for `https://www.linkedin.com/company/info-edge-india-ltd/` (long texts shortened with "…"):

```json
{
  "linkedin_url": "https://www.linkedin.com/company/info-edge-india-ltd/",
  "company_name": "Info Edge India Ltd",
  "tagline": "India’s premier online classifieds company in recruitment, matrimony, real estate, education and related services.",
  "about": "Info Edge, India’s premier online classifieds company is fundamentally in the matching business.\n\nThe umbrella brand has an online recruitment classifieds, www.naukri.com– India’s No. 1 Jobsite …",
  "website": "http://www.infoedge.in",
  "industry": "Technology, Information and Internet",
  "industries": ["Technology, Information and Internet"],
  "specialities": [
    "online recruitment",
    "matrimonial",
    "real estate & education classifieds",
    "Education",
    "Data Science",
    "Artificial Intelligence"
  ],
  "company_size": "1,001-5,000 employees",
  "employeeCount": 5754,
  "followerCount": 147916,
  "headquarters": "Expressway-Noida., Uttar Pradesh",
  "logo": "https://media.licdn.com/dms/image/v2/C4D0BAQFuCi4x-RyiYg/company-logo_200_200/company-logo_200_200/0/1631316845204?e=2147483647&v=beta&t=Znd3HYCycPmLcCUYsqE5nW_MxSm2PpzhvlDjn6GsVrA",
  "backgroundCovers": [
    {
      "url": "https://media.licdn.com/dms/image/v2/D563DAQGBbbA4jWN-rw/image-scale_191_1128/image-scale_191_1128/0/1719331358049/info_edge_india_ltd_cover?e=2147483647&v=beta&t=c8T_YPyIiqPOi9d8DUqC2AYuffmn1f5oY3F-pQyrtNc",
      "width": 1128,
      "height": 191,
      "expiresAt": 2147483647000
    }
  ],
  "foundedOn": {
    "year": 1995
  },
  "posts": [
    {
      "text": "\"Six weeks into my journey at Info Edge, and it has been an invigorating experience. …",
      "url": "https://www.linkedin.com/posts/info-edge-india-ltd_infoedge-hrleadership-talentstrategy-activity-7511020207302389763-wh6I",
      "published_at": "2026-09-30T11:12:45.427Z",
      "author": "Info Edge India Ltd",
      "media_type": "image",
      "authorUrl": "https://in.linkedin.com/company/info-edge-india-ltd",
      "reactionCount": 276,
      "likeCount": 276,
      "commentCount": 44
    },
    {
      "text": "On the latest episode of Workwise with Naukri, …",
      "url": "https://www.linkedin.com/posts/info-edge-india-ltd_on-the-latest-episode-of-workwise-with-naukri-activity-7508133517470449665-ao-N",
      "published_at": "2026-09-22T12:02:04.939Z",
      "author": "Info Edge India Ltd",
      "media_type": "video",
      "authorUrl": "https://in.linkedin.com/company/info-edge-india-ltd",
      "reactionCount": 56,
      "likeCount": 56,
      "commentCount": 2
    },
    {
      "text": "\"I am excited to join Info Edge as Executive Vice President & Head of AI Architecture. …",
      "url": "https://www.linkedin.com/posts/info-edge-india-ltd_infoduction-infoedge-lifeatinfoedge-activity-7506238304447524864-Nf8o",
      "published_at": "2026-09-17T06:31:10.884Z",
      "author": "Info Edge India Ltd",
      "media_type": "image",
      "authorUrl": "https://in.linkedin.com/company/info-edge-india-ltd",
      "reactionCount": 75,
      "likeCount": 75,
      "commentCount": 8
    }
  ],
  "locations": [
    {
      "country": "IN",
      "geographicArea": "Uttar Pradesh",
      "city": "Expressway-Noida.",
      "line1": "B-8,",
      "line2": "Sector 132, Near Jaypee Green Wishtown,",
      "postalCode": "201301",
      "headquarter": true
    }
  ],
  "success": true,
  "scraped_at": "2026-10-02T15:56:49Z"
}
```

#### Field reference

| Field | Type | Description |
|---|---|---|
| `linkedin_url` | string | The cleaned-up company page URL |
| `company_name` | string | null | Company name |
| `tagline` | string | null | Short tagline under the company name |
| `about` | string | null | "About" / description text |
| `website` | string | null | Company website |
| `industry` | string | null | Industry as listed on LinkedIn |
| `industries` | array | null | The industry as a list, for example `["Entertainment Providers"]` |
| `specialities` | array | null | Specialties the company lists, for example `["Assurance", "Tax", "Advisory"]` |
| `company_size` | string | null | Employee range, for example `51-200 employees` |
| `employeeCount` | integer | null | LinkedIn members who list the company as their employer (not the official headcount) |
| `followerCount` | integer | null | LinkedIn followers |
| `headquarters` | string | null | Headquarters location, for example `New York, NY` |
| `logo` | string | null | Logo image URL. LinkedIn's image links can change, so download the image if you need to keep it |
| `backgroundCovers` | array | null | Cover (banner) image, see below |
| `foundedOn` | object | null | Founding year, for example `{"year": 1997}` |
| `posts` | array | The last 3 original posts (reposts excluded), see below |
| `locations` | array | null | Office locations listed on the page, see below. `null` when the page lists none |
| `success` | boolean | `true` if the company was collected, `false` if it couldn't be |
| `scraped_at` | string | UTC timestamp (ISO 8601) |

Each cover image has:

| Field | Type | Description |
|---|---|---|
| `url` | string | Image URL |
| `width` | integer | null | Width in pixels |
| `height` | integer | null | Height in pixels |
| `expiresAt` | integer | null | When the image link expires, as a Unix timestamp in milliseconds |

Each post has:

| Field | Type | Description |
|---|---|---|
| `text` | string | null | Post text |
| `url` | string | null | Link to the post |
| `published_at` | string | null | Publish time, UTC (ISO 8601) |
| `author` | string | null | Author name |
| `media_type` | string | null | `video`, `image`, `article`, `document`, `poll`, `reshare`, or `null` for text-only posts |
| `authorUrl` | string | null | Author's LinkedIn page |
| `reactionCount` | integer | null | All reactions (likes, celebrates, …) |
| `likeCount` | integer | null | Like count from LinkedIn's structured data |
| `commentCount` | integer | null | Number of comments |

Each location has:

| Field | Type | Description |
|---|---|---|
| `country` | string | null | Two-letter country code, for example `US` |
| `geographicArea` | string | null | State or region, for example `CA` or `North Holland` |
| `city` | string | null | City |
| `line1` | string | null | First address line |
| `line2` | string | null | Second address line, if any |
| `postalCode` | string | null | Postal / ZIP code |
| `headquarter` | boolean | `true` for the headquarters (the location LinkedIn marks "Primary") |

#### What `success` means

- ✅ **true**: the company was found. Fields the company hasn't filled in on LinkedIn (for example a tagline, specialties or founding year) are `null`.
- ❌ **false**: the company couldn't be collected, for example because of an invalid or personal-profile URL, a company that doesn't exist, or a page that couldn't be loaded. All other fields are `null`. These companies are not charged.

A failed company never stops the run. Every URL you submit gets its own dataset item, so you can always see what happened to each one.

#### Dataset view

The **Overview** table in the Output tab shows the key fields at a glance: LinkedIn URL, company name, logo, website, industry, company size, followers, headquarters, success and time. The full record, including `about`, `specialities`, `backgroundCovers`, `posts` and `locations`, is available in the JSON view and in every export format.

### 🔌 Integrations and API

Like any Apify Actor, LinkedIn Company Scraper can be:

- Called from the [Apify API](https://docs.apify.com/api/v2) or the Apify SDK (JavaScript / Python) to get LinkedIn company data in your own app
- [Scheduled](https://docs.apify.com/platform/schedules) to track companies, headcount and followers over time
- Connected to Google Sheets, Slack, Zapier, Make, Airtable, HubSpot and more with [Apify integrations](https://apify.com/integrations)
- Wired to [webhooks](https://docs.apify.com/platform/integrations/webhooks) that trigger your own workflow when a run finishes

### ❓ FAQ

**How do I scrape LinkedIn company data without logging in?**
Add the company names or URLs to **Companies** and click **Start**. This Actor reads the public LinkedIn company page, so you don't need a LinkedIn account, cookies or a browser extension.

**Does this Actor use LinkedIn accounts behind the scenes?**
No. It reads only the public company page that anyone can open without logging in. It doesn't use your account or any account pool.

**Can I scrape LinkedIn company posts?**
Yes. Every record includes the company's last 3 original posts with text, URL, date, media type and reaction, like and comment counts.

**Can I get company specialties and cover images?**
Yes. `specialities` lists the specialties the company shows on its page, and `backgroundCovers` holds the cover image URL with its size.

**How many companies can I scrape?**
There's no fixed limit. Add as many company names or URLs as you need; each one becomes its own dataset item.

**Can I export LinkedIn company data to Excel or CSV?**
Yes. Download the results as CSV, Excel, JSON, XML or HTML from the Output tab, or send them to Google Sheets with an integration.

**Why are some fields empty?**
Not every company fills in every field on its LinkedIn page. Fields that aren't shown publicly, such as a tagline, specialties or founding year, are `null`.

**Why did some companies fail?**
Items with `success: false` are usually invalid or non-company URLs, or pages LinkedIn didn't load at that moment. Check the run log for the reason, then run those URLs again later or use a longer `requestDelaySeconds`. You are not charged for failed companies.

**Can I get funding data, personal profiles or employee lists?**
No. LinkedIn shows these only to logged-in members, and this Actor only reads public company pages.

**Is it legal to scrape LinkedIn company pages?**
This Actor only collects data that LinkedIn shows publicly to visitors who aren't logged in. Posts can mention people, so make sure your use complies with LinkedIn's terms and data protection laws such as GDPR. If you're unsure, ask a lawyer.

### 📝 Feedback

Have a feature request or found a bug? Open an issue in the **Issues** tab and we'll take a look.

# Actor input Schema

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

LinkedIn companies as identifiers (example-company) or URLs (https://linkedin.com/company/example-company, linkedin.com/company/example-company). Query strings and sub-pages (/about/, /posts/) are normalized away. Personal profiles and other LinkedIn URLs are rejected.

## `urls` (type: `array`):

Same as 'companies'; kept for backward compatibility. Merged with 'companies' if both are given.

## `url` (type: `string`):

A single company identifier or URL. Merged with 'companies' if both are given.

## `requestDelaySeconds` (type: `number`):

Pause between requests, in seconds. Higher values are gentler on LinkedIn but make the run slower.

## Actor input object example

```json
{
  "companies": [
    "pwc",
    "https://www.linkedin.com/company/info-edge-india-ltd/"
  ],
  "requestDelaySeconds": 2
}
```

# Actor output Schema

## `overview` (type: `string`):

Key company fields and scrape status in a table.

## `results` (type: `string`):

Complete records including about text and latest posts.

# 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": [
        "pwc",
        "https://www.linkedin.com/company/info-edge-india-ltd/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("prs_scraper/linkedin-company-details-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 = { "companies": [
        "pwc",
        "https://www.linkedin.com/company/info-edge-india-ltd/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("prs_scraper/linkedin-company-details-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 '{
  "companies": [
    "pwc",
    "https://www.linkedin.com/company/info-edge-india-ltd/"
  ]
}' |
apify call prs_scraper/linkedin-company-details-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,prs_scraper/linkedin-company-details-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/MjJEkfjmkzBhDj2cd/builds/Vw0JVDJWbxcUyXEgb/openapi.json
