# LinkedIn Profile Scraper (No Cookies) – Bulk & API (`enrichgrid/linkedin-profile-scraper`) Actor

Scrape public LinkedIn profiles in bulk from URLs or usernames. No cookies, no login. Get name, headline, current role and company, location, experience, education and skills as JSON. Pay only for profiles found, from $0.70 per 1,000.

- **URL**: https://apify.com/enrichgrid/linkedin-profile-scraper.md
- **Developed by:** [EnrichGrid](https://apify.com/enrichgrid) (community)
- **Security:** Limited permissions
- **Stats:** 3 total users, 3 monthly users, 97.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 found profiles

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/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 Profile Scraper (No Cookies) – Bulk & API

By [EnrichGrid](https://enrichgrid.com), the LinkedIn data API for sales, recruiting and AI agents.

**Scrape public LinkedIn profiles in bulk without cookies, login or a LinkedIn account.** Paste LinkedIn profile URLs or usernames and get clean, structured JSON for every person: name, headline, current job title and company, seniority, location, work experience, education, skills, certifications and more. Download the data as JSON, CSV or Excel, or send it straight to your CRM, Google Sheets, n8n, Make, Zapier or your own code.

- ✅ **No cookies, no login.** Your LinkedIn account is never used, so it can't be restricted.
- ✅ **Bulk.** Up to 10,000 LinkedIn profiles per run, 10 to 50 in parallel.
- ✅ **Pay only for found profiles.** From **$0.70 per 1,000 profiles**. Profiles that are not found are free.
- ✅ **Fast.** Recently collected profiles come back in seconds.
- ✅ **API ready.** Run it through the Apify API, or call the real-time HTTP endpoint (Standby mode).

### What data can you scrape from a LinkedIn profile?

| Group | Fields |
|---|---|
| Person | `first_name`, `last_name`, `headline`, `summary`, `slug`, `token`, `member_id`, `photo_url` |
| Current job | `current_title`, `current_company_name`, `current_company_id`, `seniority`, `job_function`, `sub_role`, `current_companies` (with company firmographics) |
| Location | `location`, `location_country`, `region`, `geo_id` |
| Career | `sections.experiences` (every position with company and dates), `sections.educations`, `sections.skills` |
| More | `industry`, `certifications`, `courses`, `honors`, `volunteering`, `publications`, `patents`, `recommendations`, `personal_website` |
| Audience | `num_connections` (the exact number, not just "500+"), `follower_count`, `last_refreshed_at` |

The available fields depend on what each person shows on their public profile. Emails and phone numbers are not included.

### How to scrape LinkedIn profiles

1. Click **Try for free**.
2. Paste LinkedIn profile URLs or usernames into **LinkedIn profile URLs or usernames**, one per line.
3. Click **Start**, then download the results from the **Output** tab as JSON, CSV, Excel or HTML.

#### Input example

```json
{
  "profileUrls": [
    "https://www.linkedin.com/in/reidhoffman",
    "satyanadella"
  ],
  "maxConcurrency": 10
}
```

Accepted formats: `https://www.linkedin.com/in/username`, the bare `username`, or a LinkedIn profile ID that starts with `ACoAA`.

#### Output example

A real result for Reid Hoffman (LinkedIn co-founder). Every field the Actor returns is shown; long lists and texts are shortened here for readability.

```json
{
  "token": "ACoAAAAABL0B3SGhqeNX998wiOuk_8hYA6ojLwg",
  "member_id": 1213,
  "slug": "reidhoffman",
  "first_name": "Reid",
  "last_name": "Hoffman",
  "headline": "Co-Founder, LinkedIn, Manas AI & Inflection AI. Founding Team, PayPal.  Author of Superagency.  Podcaster of Possible and Masters of Scale.",
  "current_company_id": 106067845,
  "location_country": "US",
  "last_refreshed_at": "2026-11-05T22:16:25.997112+00:00",
  "current_title": "Co-Founder, Executive Board Chair",
  "seniority": "owner",
  "job_function": "general_management",
  "sub_role": "co founder executive board chair",
  "summary": "My current priority is investing in and building with AI to benefit humanity.  Recently, I've co-founded Inflection.AI and ManasAI.co.  \n\nI am active in all fac…",
  "current_company_name": "Manas AI",
  "industry": "Venture Capital and Private Equity Principals",
  "industry_id": 106,
  "location": "United States",
  "region": "na",
  "geo_id": 103644278,
  "photo_root_url": "https://media.licdn.com/dms/image/v2/D5603AQHW7wKzPb3DAg/profile-displayphoto…",
  "photo_segment": "800_800/profile-displayphoto-shrink_800_800/0/17182162363…",
  "num_connections": 4332,
  "follower_count": 2799713,
  "personal_website": "https://www.superagency.ai/",
  "photo_url": "https://media.licdn.com/dms/image/v2/D5603AQHW7wKzPb3DAg/profile-displayphoto…",
  "recommendations": [
    {
      "recommender_urn": "urn:li:ts_profile:ACoAAAAqJ6sBiCJWv-zPjtx19BOkhyFeXniPKHc",
      "text": "In spite of his achievements and respect in the tech industry, Reid was one of the first people who…",
      "relationship": "WORKED_IN_DIFFERENT_COMPANIES",
      "created": 1387505868663
    }
  ],
  "certifications": [],
  "courses": [],
  "honors": [
    {
      "position": 0,
      "title": "Martin Luther King \"Salute to Greatness\"​",
      "issuer": "Martin Luther King Jr. Center",
      "issued_on": "01/2012"
    }
  ],
  "volunteering": [
    {
      "position": 0,
      "role": "Member, Board of Directors",
      "company_name": "Mozilla",
      "company_id": 13948,
      "cause": "scienceAndTechnology",
      "description": "Evangelists and champions of the free and open web-platform, Firefox. Firefox allows consumers the e…",
      "started_on": "08/2005",
      "ended_on": "12/2016"
    }
  ],
  "publications": [
    {
      "position": 0,
      "name": "The Startup of You",
      "publisher": "Crown",
      "description": "People should lead their lives as entrepreneurs — not necessarily starting companies, but investing…",
      "url": "www.startupofyou.com",
      "published_on": "02/2012",
      "authors_count": 2
    }
  ],
  "websites_extra": [],
  "patents": [],
  "test_scores": [],
  "sections": {
    "experiences": [
      {
        "title": "Co-Founder, Executive Board Chair",
        "company_name": "Manas AI",
        "company_id": 106067845,
        "location": null,
        "description": "Manas AI leverages proprietary AI, generative computational chemistry, and best in class biology to…",
        "started_on": "2025-01-01",
        "ended_on": null,
        "is_current": true,
        "employment_status": null,
        "started_on_display": "2025-01",
        "ended_on_display": null,
        "is_top_card": true,
        "entreprise": {
          "website_url": "https://www.manasai.co/",
          "slug": "manas-ai",
          "name": "Manas AI",
          "industry": "Biotechnology Research",
          "staff_count": 32,
          "staff_count_range": "11-50",
          "country_code": null,
          "region": "unknown",
          "founded_year": null,
          "revenue_range": null,
          "company_type": "Privately Held",
          "follower_count": 8798,
          "hq_city": null,
          "hq_region": null,
          "description": "Disrupting drug development.",
          "tagline": "Disrupting drug development.",
          "specialties": null,
          "logo_url": "https://media.licdn.com/dms/image/v2/D4D0BAQHehetLvQnNEg/company-logo_200_200…",
          "claimable": false,
          "linkedin_url": "https://www.linkedin.com/company/manas-ai/"
        }
      },
      {
        "title": "Co-Founder and founding CEO",
        "company_name": "LinkedIn",
        "company_id": 1337,
        "location": "Palo Alto, California, United States",
        "description": "We launched LinkedIn to establish a platform that not only facilitated professional connections but…",
        "started_on": "2003-05-01",
        "ended_on": "2016-12-01",
        "is_current": false,
        "employment_status": "Full-time",
        "started_on_display": "2003-05",
        "ended_on_display": "2016-12",
        "is_top_card": false,
        "entreprise": {
          "website_url": "https://careers.linkedin.com",
          "slug": "linkedin",
          "name": "LinkedIn",
          "industry": "Software Development",
          "staff_count": 23314,
          "staff_count_range": "10001+",
          "country_code": "US",
          "region": "na",
          "founded_year": null,
          "revenue_range": null,
          "company_type": "Public Company",
          "follower_count": 34633854,
          "hq_city": "Sunnyvale",
          "hq_region": "CA",
          "description": "Founded in 2003, LinkedIn connects the world's professionals to make them more productive and succes…",
          "tagline": null,
          "specialties": [
            "Online Professional Network",
            "Jobs",
            "People Search"
          ],
          "logo_url": "https://media.licdn.com/dms/image/v2/C560BAQHaVYd13rRz3A/company-logo_200_200…",
          "claimable": false,
          "linkedin_url": "https://www.linkedin.com/company/linkedin/"
        }
      }
    ],
    "educations": [
      {
        "school_name": "Stanford University",
        "school_id": 1792,
        "degree_name": "B.S.",
        "field_of_study": "Symbolic Systems",
        "started_on": "1985-01-01",
        "ended_on": "1990-01-01",
        "grade": null,
        "activities": "Marshall Scholar, Dinkelspiel Award, Golden Grant, Founder of the Symbolic Systems Forum",
        "description": null,
        "started_on_display": "1985",
        "ended_on_display": "1990",
        "is_top_card": false,
        "ecole": {
          "slug": "stanford-university",
          "description": "Stanford University pursues its founding mission of research and education with a spirit of optimism…",
          "logo_url": "https://media.licdn.com/dms/image/v2/C560BAQHr9suxyJBXMw/company-logo_200_200…",
          "website": "http://stanford.edu",
          "slogan": null,
          "staff_count": 28894,
          "student_count": null,
          "school_type": "SocialMediaPosting",
          "address_street": "450 Jane Stanford Way",
          "address_locality": "Stanford",
          "address_region": "CA",
          "address_postal": "94305",
          "address_country": "US",
          "linkedin_url": "https://www.linkedin.com/school/stanford-university/"
        },
        "kind": "institution"
      }
    ],
    "skills": [
      {
        "name": "Product Management",
        "endorsement_count": 188,
        "assessment_verified": null
      },
      {
        "name": "Venture Capital",
        "endorsement_count": 139,
        "assessment_verified": null
      },
      {
        "name": "Business Development",
        "endorsement_count": 97,
        "assessment_verified": null
      }
    ]
  },
  "current_companies": [
    {
      "company_id": 106067845,
      "company_name": "Manas AI",
      "titles": [
        "Co-Founder, Executive Board Chair"
      ],
      "entreprise": {
        "website_url": "https://www.manasai.co/",
        "slug": "manas-ai",
        "name": "Manas AI",
        "industry": "Biotechnology Research",
        "staff_count": 32,
        "staff_count_range": "11-50",
        "country_code": null,
        "region": "unknown",
        "founded_year": null,
        "revenue_range": null,
        "company_type": "Privately Held",
        "follower_count": 8798,
        "hq_city": null,
        "hq_region": null,
        "description": "Disrupting drug development.",
        "tagline": "Disrupting drug development.",
        "specialties": null,
        "logo_url": "https://media.licdn.com/dms/image/v2/D4D0BAQHehetLvQnNEg/company-logo_200_200…",
        "claimable": false,
        "linkedin_url": "https://www.linkedin.com/company/manas-ai/"
      },
      "is_top_card": true
    }
  ]
}
```

In the full record this profile has 33 positions, 6 schools, 42 skills, 10 recommendations, 9 honors, 14 volunteering roles and 6 publications. Fields stay empty or null when the person has not filled them in.

Each run also saves an `OUTPUT` record with a summary: how many profiles were delivered, not found or failed, and which inputs were not found.

### How much does it cost to scrape LinkedIn profiles?

You pay only for profiles that are found and saved to the dataset. Profiles that are not found, invalid URLs and errors are free. The higher your Apify plan, the lower the price:

| Apify plan | Price per 1,000 profiles |
|---|---|
| Free | $1.50 |
| Starter | $1.20 |
| Scale | $0.90 |
| Business | $0.70 |

Each run also has a tiny start fee of $0.00005. Platform usage is included in the price.

On the Apify **Free plan** the Actor processes up to **25 profiles per day**, so you can test it on your own data. Any paid Apify plan removes this limit.

### Use cases

- **Lead generation and CRM enrichment.** Add job title, company, seniority and location to leads in HubSpot, Salesforce, Pipedrive or Google Sheets.
- **Recruiting and sourcing.** Get candidates' work experience, education and skills in one table.
- **Sales intelligence.** Research decision makers and their companies before outreach.
- **AI agents and LLM apps.** Give your agent structured LinkedIn profile data, also through the Apify MCP server.
- **Proxycurl alternative.** Proxycurl shut down in 2025. This Actor returns similar LinkedIn person data through the Apify API.

### Integrations and API

Run the Actor from any language with the Apify API, or connect it to n8n, Make, Zapier, Google Sheets, Slack and webhooks with Apify integrations.

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("enrichgrid/linkedin-profile-scraper").call(
    run_input={"profileUrls": ["https://www.linkedin.com/in/reidhoffman"]}
)
for profile in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(profile["first_name"], profile.get("current_title"), profile.get("current_company_name"))
```

#### Real-time API (Standby)

Get one profile per HTTP request, without starting a run:

```bash
curl -X POST "https://enrichgrid--linkedin-profile-scraper.apify.actor/v1/enrich/single" \
  -H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"profile_url": "https://www.linkedin.com/in/reidhoffman"}'
```

### FAQ

**Do I need a LinkedIn account or cookies?**
No. The Actor never logs in to LinkedIn and never asks for your cookies.

**How fresh is the data?**
Profiles are collected on request or served from a cache that is at most 30 days old. The `last_refreshed_at` field shows when each profile was collected.

**What happens if a profile is not found?**
It is free. The run's `OUTPUT` record lists every input that was not found.

**Can I get email addresses or phone numbers?**
No. The Actor returns professional profile data only.

**How many profiles can I scrape in one run?**
Up to 10,000. Split bigger lists into several runs.

**Why did my run stop early?**
Either the Free plan daily limit was reached, or too many inputs in one day were not found (for example a list of invalid URLs). The run's status message explains which one.

**Is it legal to scrape LinkedIn profiles?**
The Actor collects only publicly available profile data. Personal data is protected by laws such as GDPR, so use it only for legitimate purposes and consult a lawyer if you are unsure.

### Support

Found a bug or need a feature? Open an issue in the **Issues** tab or email support@enrichgrid.com. Built and maintained by [EnrichGrid](https://enrichgrid.com). Need more than Apify? EnrichGrid also offers a REST API, Excel/CSV bulk enrichment and an MCP server at [enrichgrid.com](https://enrichgrid.com).

EnrichGrid is not affiliated with LinkedIn or Microsoft.

# Actor input Schema

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

One per line: linkedin.com/in/ profile URLs, usernames (the part after /in/) or profile IDs starting with ACoAA. Up to 10,000 per run; duplicates are removed.

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

How many profiles to fetch at the same time (1-50). The default suits most runs.

## Actor input object example

```json
{
  "profileUrls": [
    "https://www.linkedin.com/in/reidhoffman"
  ],
  "maxConcurrency": 10
}
```

# Actor output Schema

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

No description

## `result` (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 = {
    "profileUrls": [
        "https://www.linkedin.com/in/reidhoffman"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("enrichgrid/linkedin-profile-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 = { "profileUrls": ["https://www.linkedin.com/in/reidhoffman"] }

# Run the Actor and wait for it to finish
run = client.actor("enrichgrid/linkedin-profile-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 '{
  "profileUrls": [
    "https://www.linkedin.com/in/reidhoffman"
  ]
}' |
apify call enrichgrid/linkedin-profile-scraper --silent --output-dataset

```

## MCP server setup

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