# LinkedIn Profile Scraper — No Cookies | Email & Company (`apivault_labs/linkedin-profile-scraper-no-cookies`) Actor

LinkedIn profile scraper without login — no cookies, cookieless, bulk & fast. Extract email, company & employees data, experience, education, skills, jobs/posts activity. People search for CRM, lead gen, recruiting. CSV/JSON/Excel, API & webhooks. From $1.2/1K profiles.

- **URL**: https://apify.com/apivault\_labs/linkedin-profile-scraper-no-cookies.md
- **Developed by:** [Apivault Labs](https://apify.com/apivault_labs) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 90 total users, 28 monthly users, 99.7% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.60 / 1,000 profile scrapeds

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

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![LinkedIn Profile Scraper](https://api.apify.com/v2/key-value-stores/E76hLVOROveornuAY/records/linkedin-profile-hero-v3.jpg)

## LinkedIn Profile Scraper — No Cookies Required | Email, Company & Employees

**Bulk LinkedIn profile scraper — cookieless, no login, no browser, fast.**
Turn LinkedIn profile URLs or usernames into complete, live CRM records. Each
profile includes current role and company, work history, education, skills,
emails and websites when public, recent jobs/posts activity, and a free derived
intelligence layer for sales, recruiting and people search.

This LinkedIn scraper needs **no cookies and no account** — so there is zero
account-ban risk. Feed it a bulk list, get structured profiles back in one run.
Export JSON, CSV or Excel, call it via API, or wire it into webhooks, n8n, Make
and MCP agents. From **$1.2 per 1,000 profiles** on paid plans.

### Why this Actor?

| | This Actor | Typical LinkedIn scrapers |
|---|---|---|
| Login / cookies | Never needed | Often need cookies (account-ban risk) |
| Data freshness | Fetched live at run time | Frequently cached, weeks old |
| Deep career data | Experience, education and skills | Often a paid add-on |
| Lead intelligence | Seniority, decision maker, tenure, lead score | Usually absent |
| Input correlation | Preserve your CRM `id` | Often absent |
| Output | Full JSON or flat CRM row | Varies |

### What you get

- Identity: name, username, headline, about, location and country.
- Current snapshot: title, company, followers, connections, website and photo.
- Full profile: structured experience, education, skills, certifications, volunteer roles, projects, publications, honors, languages and recommendations.
- Public content: recent activity, authored articles and LinkedIn courses when shown.
- Intelligence: seniority, decision-maker flag, total experience, current tenure,
  open-to-work/recent-change signals, industry guess, lead score and reasons.
- Integration-ready: nested JSON or a flat CSV/Excel/CRM row, plus caller-provided
  IDs for joining results back to source records.

### Input

```json
{
  "profileUrls": ["satyanadella"],
  "profiles": [{"url": "https://www.linkedin.com/in/williamhgates/", "id": "crm-42"}],
  "enrich": true,
  "exportFormat": "default",
  "maxConcurrency": 5,
  "maxRetries": 1,
  "timeout": 75
}
```

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `profileUrls` | string\[] | — | URLs or usernames |
| `profiles` | object\[] | \[] | Advanced `{url,id}` CRM correlation records |
| `enrich` | boolean | true | Add free lead-intelligence fields |
| `exportFormat` | string | default | `default` nested JSON or `flat` CRM row |
| `maxConcurrency` | int | 5 | Parallel requests, maximum 10 |
| `maxRetries` | int | 1 | Retries for transient failures |
| `timeout` | int | 75 | Timeout per profile in seconds |

### Output

```json
{
  "status": "success",
  "inputId": "crm-42",
  "linkedinUrl": "https://www.linkedin.com/in/satyanadella",
  "publicIdentifier": "satyanadella",
  "fullName": "Satya Nadella",
  "headline": "Chairman and CEO at Microsoft",
  "location": "Redmond, Washington, United States",
  "currentTitle": "Chairman and CEO",
  "currentCompany": "Microsoft",
  "experience": [{"title": "Chairman and CEO", "company": "Microsoft", "isCurrent": true}],
  "education": [],
  "skills": [],
  "intelligence": {"seniority": "C-Level", "decisionMaker": true, "leadScore": 60, "leadTier": "warm"}
}
```

### Pricing — pay per result, cheaper on higher tiers

You pay **only for profiles successfully scraped**. Failed or empty profiles are **free** — no runaway bills.

| Apify plan tier | Price / 1,000 profiles | Price / profile |
|---|---|---|
| **Free** | **$2.00** | $0.0020 |
| **Bronze** | $2.00 | $0.0020 |
| **Silver** | $1.80 | $0.0018 |
| **Gold** | $1.60 | $0.0016 |
| **Platinum** | $1.40 | $0.0014 |
| **Diamond** | $1.20 | $0.0012 |

Higher subscription tiers pay less per profile. Free Apify credits cover roughly **2,500 profiles/month**. No subscriptions, no monthly fees.

### Use cases

- **B2B lead generation** — pull fresh prospect data straight into your CRM.
- **Recruiting** — current headlines, locations and follower signals.
- **Sales outreach** — enrich a list of LinkedIn URLs before you send.
- **CRM hygiene** — refresh stale LinkedIn records in bulk.
- **Market research** — live follower counts and industry data.

### Integrations (n8n, Make, MCP, AI agents)

Run it from the **Apify API**, schedule it, or wire it into **n8n / Make** with the Apify nodes. Because output is clean JSON, it drops straight into **AI agents and MCP** workflows that need fresh LinkedIn data on demand.

### Performance

- 15–30 seconds per profile (real-time scraping, not an instant cache lookup).
- Up to 20 concurrent requests; recommended 5–10 for the best success rate.
- Transient hiccups are retried automatically, so a busy run won't hang or fail the whole batch.
- \~95%+ success rate on public profiles.

### FAQ

**Do I need a LinkedIn account or cookies?**
No. The Actor reads public profile pages — no login, no cookies, no account-ban risk.

**Is the data live or cached?**
Live. Each profile is scraped in real time, so follower counts, bios and links are current.

**Can it get emails and phone numbers?**
Only if they're publicly visible on the profile, which is rare on LinkedIn. Enable those fields only if you need them.

**Why is it cheaper than other LinkedIn scrapers?**
It focuses on the core public fields (no heavy full-CV extraction), so it's faster and we pass the savings on.

**What if a profile fails?**
It's retried automatically; if it still can't be scraped it's marked failed and **you are not charged** for it.

### Notes

- Only public profile data is extracted.
- Restricted profiles may return partial data.
- Recommended concurrency: 5–10 for best results.

### Disclaimer

This Actor extracts only publicly available data and is **not affiliated with, endorsed by, or sponsored by LinkedIn Corporation**. LinkedIn® is a registered trademark of LinkedIn Corporation. Ensure your use complies with applicable laws and LinkedIn's terms of service.

# Actor input Schema

## `profileUrls` (type: `array`):

Full /in/ URLs or bare usernames.

## `profiles` (type: `array`):

Optional objects with url and id. The id is copied to output as inputId.

## `enrich` (type: `boolean`):

Compute seniority, decision-maker status, tenure, job-change signals and lead score at no extra charge.

## `exportFormat` (type: `string`):

Choose complete nested JSON or a flat row suitable for CSV, Excel and CRM imports.

## `maxConcurrency` (type: `integer`):

Maximum number of profiles processed at the same time.

## `maxRetries` (type: `integer`):

Additional attempts for temporary throttling, empty responses or network failures.

## `timeout` (type: `integer`):

Maximum time allowed for one profile extraction attempt.

## `diagnosticDumps` (type: `boolean`):

Developer troubleshooting only: save a bounded raw public-profile response to the default key-value store when the fallback source is used.

## `readerOnly` (type: `boolean`):

Developer test mode: never use residential direct fallback.

## Actor input object example

```json
{
  "profileUrls": [
    "https://www.linkedin.com/in/satyanadella/"
  ],
  "profiles": [],
  "enrich": true,
  "exportFormat": "default",
  "maxConcurrency": 5,
  "maxRetries": 1,
  "timeout": 75,
  "diagnosticDumps": false,
  "readerOnly": false
}
```

# Actor output Schema

## `profiles` (type: `string`):

Complete profile records with career data and derived lead intelligence.

## `summary` (type: `string`):

Profile totals grouped by seniority and lead tier.

# 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 = {};

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

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

```

## MCP server setup

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