# LinkedIn Company Scraper ✅ No Cookies · $2.50/1k (`up2data/linkedin-company-scraper`) Actor

Enrich public LinkedIn company pages without cookies or login: name, industry, headcount, HQ, specialties, and more. $2.50 per 1,000 successful companies; failures are free.

- **URL**: https://apify.com/up2data/linkedin-company-scraper.md
- **Developed by:** [Up2Data](https://apify.com/up2data) (community)
- **Categories:** Lead generation, Social media, Automation
- **Features:** Limited permissions
- **Stats:** 4 total users, 4 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 ✅ No Cookies · $2.50/1k

Enrich **public LinkedIn company pages** without cookies, browser sessions, or `li_at` tokens. Paste company URLs (or slugs), get structured firmographics, and pay **only when a company succeeds**.

**$2.50 per 1,000 successful companies** · Failures free · Actor Start ~$0.00005

👉 Pair with people enrichment: [LinkedIn Profile Scraper](https://apify.com/up2data/linkedin-profile-scraper)\
👤 Publisher: [up2data](https://apify.com/up2data) · Support: **nick@dbee.io**

***

### Why this Actor

Cookie-based LinkedIn company scrapers depend on a logged-in session that expires, gets challenged, or puts a real account at risk. That is a bad foundation for CRM syncs and agent jobs.

**Up2Data is cookieless.** You send public company URLs or slugs. We return firmographic JSON. No LinkedIn login on your side.

Ideal for:

- Account research and territory planning
- Enriching company URLs from Clay / Apollo / CRMs
- Joining people data (from our Profile Actor) to company firmographics
- Agentic workflows that need stable pay-per-result pricing

**Honest scope:** firmographics from public company pages. Not email finding, not employee email dumps.

***

### What you get (output fields)

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Company name |
| `url` | string | LinkedIn company URL |
| `website` | string | Company website (when available) |
| `industry` | string | Industry |
| `description` | string | Company description |
| `headcount` | number | Headcount signal (when available) |
| `company_size` | object | `min` (size band lower bound when available) |
| `hq` | object | `city`, `country` |
| `specialties` | array of strings | Specialties |
| `scraped_at` | string | Scrape timestamp |
| `_meta` | object | `creditsUsed`, `requestId`, `sourceUrl` |
| `error` | object | `code`, `message` (on failure; failures are free) |

Optional input `fields` lets you restrict top-level keys in the output. **Same price** whether you request all fields or a subset.

***

### Pricing

| Event | Price |
|-------|-------|
| Successful company | **$0.0025** ($2.50 / 1,000) |
| Failed company | **$0** |
| Actor start | ~$0.00005 |

#### Cost examples

| Successful companies | Approx. cost |
|----------------------|--------------|
| 100 | ~$0.30 |
| 1,000 | ~$2.50 |
| 10,000 | ~$25.00 |
| 50,000 | ~$125.00 |

You pay for **successes only**. Bad URLs and hard failures do not burn PPE credits.

***

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `companyUrls` | array of strings | ✅ | Public LinkedIn company URLs **or** slugs (e.g. `microsoft`) |
| `fields` | array of strings | optional | Restrict top-level output fields (same price) |

#### Prefill

`https://www.linkedin.com/company/microsoft`

#### Example input

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

#### Example input with field filter

```json
{
  "companyUrls": [
    "https://www.linkedin.com/company/microsoft"
  ],
  "fields": [
    "name",
    "website",
    "industry",
    "headcount",
    "hq",
    "url"
  ]
}
```

***

### Example output

> **EXAMPLE** — illustrative public-style sample consistent with the schema. Not a live scrape guarantee.

```json
{
  "name": "Microsoft",
  "url": "https://www.linkedin.com/company/microsoft",
  "website": "https://www.microsoft.com",
  "industry": "Software Development",
  "description": "Every company has a mission. What's ours? To empower every person and every organization on the planet to achieve more...",
  "headcount": 220000,
  "company_size": {
    "min": 10001
  },
  "hq": {
    "city": "Redmond",
    "country": "United States"
  },
  "specialties": [
    "Business Software",
    "Cloud Computing",
    "Developer Tools"
  ],
  "scraped_at": "2026-08-11T12:00:00.000Z",
  "_meta": {
    "creditsUsed": 1,
    "requestId": "example-request-id",
    "sourceUrl": "https://www.linkedin.com/company/microsoft"
  }
}
```

Full demo file: see the Up2Data growth pack `demo/sample-company.json` or run the Actor with the prefill URL.

***

### Why no cookies?

| Approach | What you maintain | Typical failure mode |
|----------|-------------------|----------------------|
| Cookie / `li_at` tools | Fresh session from a real LinkedIn account | Cookie expires, account flagged, pipeline stops |
| Browser automation with login | Proxies, CAPTCHAs, account health | Fragile at scale |
| **Up2Data (this Actor)** | List of public company URLs / slugs | Individual URL failures only; no session to babysit |

Cookieless = better for **schedulers, Clay tables, APIs, and agents**.

***

### Comparison (pricing & approach)

Approximate public Store pricing for LinkedIn **company** enrichment. Always verify current competitor pages.

| | Up2Data | HarvestAPI (approx.) | ApiMaestro (approx.) | Cookie-based tools |
|--|---------|----------------------|----------------------|--------------------|
| Typical price | **$2.50 / 1k** successes | ~$4 / 1k | ~$5 / 1k | Varies + account risk |
| Cookies required | **No** | Usually no | Check listing | **Yes** (`li_at` / session) |
| Pay only on success | **Yes** | Check listing | Check listing | Often run-time / compute |
| Email finding | **No** (by design) | Varies | Varies | Sometimes bundled |
| Profile Actor pair | **Yes** ([link](https://apify.com/up2data/linkedin-profile-scraper)) | Varies | Varies | Varies |

We compete on **reliability + cookieless ops + fair PPE**, not a race to $2/1k.

***

### Use cases

1. **Account lists → firmographics** — Industry, HQ, headcount/size, specialties, website from LinkedIn company URLs.
2. **People → company join** — Take `current_company.url` from the [Profile Scraper](https://apify.com/up2data/linkedin-profile-scraper) and enrich accounts in bulk.
3. **Territory & ICP filters** — Filter by industry, HQ country, or size band before outbound.
4. **Agent pipelines** — Call via Apify API; agentic payments are whitelisted for automated usage patterns supported by Apify.

***

### API & agents

Run from the Apify API, Python/JS clients, or any HTTP agent stack.

- PPE: **$0.0025 per successful company**
- Failures: free
- Optional `fields` filter for leaner payloads (same price)
- Agentic payments: **whitelisted** for automated / agent-driven usage on Apify

Support for integration questions: **nick@dbee.io**

***

### FAQ

**Do I need a LinkedIn cookie or account?**\
No. Public company URLs or slugs only.

**Do you find emails or employee contacts?**\
No. This Actor returns public company firmographics only.

**What if a company fails?**\
You are not charged PPE for that company. Check `error.code` / `error.message` on the item.

**Can I limit output fields?**\
Yes. Pass optional `fields` (array of top-level keys). Price is unchanged.

**Can I use slugs instead of full URLs?**\
Yes. e.g. `microsoft` works in `companyUrls`.

**Is there a profile scraper?**\
Yes: [LinkedIn Profile Scraper ✅ No Cookies · $2.50/1k](https://apify.com/up2data/linkedin-profile-scraper)

**Who is behind up2data?**\
Nick Tomic · Support: nick@dbee.io · Profile: [apify.com/up2data](https://apify.com/up2data)

***

### Support

Email **nick@dbee.io** with run IDs for fastest help.\
Store profile: <https://apify.com/up2data>

If this Actor saved you cookie chaos, a Store review helps other builders find it. Thank you.

# Actor input Schema

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

Public LinkedIn company URLs or slugs.

## `fields` (type: `array`):

Restrict output to specific top-level fields.

## Actor input object example

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

# Actor output Schema

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

Dataset of scraped public LinkedIn company pages (and free failed items with error).

# 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"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("up2data/linkedin-company-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"] }

# Run the Actor and wait for it to finish
run = client.actor("up2data/linkedin-company-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"
  ]
}' |
apify call up2data/linkedin-company-scraper --silent --output-dataset

```

## MCP server setup

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