# LinkedIn Profile Scraper 👔 (`scriptbase/linkedin-profile-scraper`) Actor

👔 Get LinkedIn profile data as structured JSON. Name, headline, location, about, current company, followers and connections for any public profile. No login, no cookies, no Sales Navigator seat.

- **URL**: https://apify.com/scriptbase/linkedin-profile-scraper.md
- **Developed by:** [Scriptbase](https://apify.com/scriptbase) (community)
- **Categories:** Social media, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

Get LinkedIn profile data as structured JSON. Name, headline, location, about, current company, followers and connections for any public profile — no login, no cookies, no Sales Navigator seat, no browser extension.

### What it does

Takes one public LinkedIn profile URL and returns one dataset row. No pagination — one input, one record.

### Input

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `url` | string | yes | — | LinkedIn person profile URL, e.g. `https://www.linkedin.com/in/username` |

```json
{ "url": "https://www.linkedin.com/in/williamhgates" }
````

Country subdomains work — `uk.linkedin.com/in/…` and `ca.linkedin.com/in/…` resolve to the same person, and are billed once rather than once per spelling.

### Output

One row.

```json
{
  "platform": "linkedin",
  "publicIdentifier": "williamhgates",
  "url": "https://linkedin.com/in/williamhgates",
  "fullName": "Bill Gates",
  "headline": "Chair, Gates Foundation",
  "about": "Co-chair of the Bill & Melinda Gates Foundation…",
  "location": "Seattle, Washington",
  "currentCompany": { "name": "Gates Foundation", "url": "https://www.linkedin.com/company/gates-foundation" },
  "counts": { "followers": 37000000, "connections": 500 },
  "avatarUrl": "https://media.licdn.com/dms/image/…"
}
```

| Field | Type | Notes |
|---|---|---|
| `platform` | string | Always `linkedin` |
| `publicIdentifier` | string | The `/in/<slug>` segment |
| `url` | string | Canonical profile URL |
| `fullName` | string | Full name — always present |
| `headline` | string | Profile headline — **may be absent**, see below |
| `about` | string | About / summary section |
| `location` | string | Stated location |
| `currentCompany` | object | `name`, `url` — most recent employer |
| `counts.followers` | integer | Follower count |
| `counts.connections` | integer | Connections, capped at 500 by LinkedIn itself |
| `avatarUrl` | string | Profile photo URL |

#### Fields that depend on the source

Two independent upstream sources serve this actor, and they are near-complementary: one carries `about`, `location` and employment history; the other carries `headline`. Whichever answered first decides which of those you get. `fullName`, `url` and follower count come from both.

This is stated plainly rather than hidden because a field that is *sometimes* missing is worse than one that never exists — if you build a pipeline assuming `headline` is always there, it will break on a fraction of rows.

#### `connections` is capped by LinkedIn

LinkedIn stops reporting exact connection counts at 500. A profile showing `500` may have 500 or 50,000. That ceiling is LinkedIn's, not this actor's, and any tool claiming a precise number above it is inventing one.

### What it does not do

- **Person profiles only.** Company pages (`/company/…`), school pages and post URLs are rejected with `BAD_REQUEST` rather than charged for a call that cannot fill the fields.
- **No email addresses.** LinkedIn does not publish them. Tools that return one are guessing from name and employer, and their accuracy is a claim you should test before trusting.
- **No connections list, no followers list, no messaging.**
- **Public profiles only.** A profile that is private or requires sign-in returns `NOT_FOUND`.
- **One profile per run.**

### Pricing

Charged per profile. One run, one charge. Failed runs charge nothing.

### Errors

| Code | Meaning |
|---|---|
| `BAD_REQUEST` | Input missing, malformed, or not a URL this actor serves |
| `NOT_FOUND` | The target is private, removed, or does not exist |
| `UNSUPPORTED_OPERATION` | The URL resolved to a platform this actor does not serve |
| `UPSTREAM_FAILED` | Every upstream source failed — retry shortly |
| `RATE_LIMITED` | Too many requests; back off and retry |
| `TIMEOUT` | The source took longer than the actor's budget |
| `UNAUTHORIZED` | The actor's API credentials are invalid — contact the author |
| `INSUFFICIENT_CREDITS` | The account behind this actor is out of credits — contact the author |
| `INTERNAL_ERROR` | Unexpected failure |

`UNAUTHORIZED` and `INSUFFICIENT_CREDITS` are on us, not you. If you see either, the actor is misconfigured on our side.

### How it works

Two independent upstream sources serve this operation. If the first returns nothing usable, the second is tried automatically inside the same run — no double charge, no retry on your side.

Profile figures are cached for a day. A LinkedIn profile changes when someone moves job, not by the minute, so a day-old record is still a correct one — and re-fetching it hourly would charge you for a number that did not move.

### FAQ

**Do I need a LinkedIn account or cookies?** No, and no browser extension either.

**Do I need Sales Navigator?** No.

**Can I get email addresses?** No. LinkedIn does not publish them; anything that returns one is guessing.

**Why is `connections` exactly 500?** That is LinkedIn's own reporting ceiling.

**Why is `headline` missing on some profiles?** Only one of the two sources carries it. See "Fields that depend on the source".

**Can I scrape a company page?** No — this actor is for person profiles only.

# Actor input Schema

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

URL of the LinkedIn person profile, e.g. https://www.linkedin.com/in/username. Company and school pages are not supported.

## Actor input object example

```json
{
  "url": "https://www.linkedin.com/in/williamhgates"
}
```

# Actor output Schema

## `overview` (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 = {
    "url": "https://www.linkedin.com/in/williamhgates"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scriptbase/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 = { "url": "https://www.linkedin.com/in/williamhgates" }

# Run the Actor and wait for it to finish
run = client.actor("scriptbase/linkedin-profile-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "url": "https://www.linkedin.com/in/williamhgates"
}' |
apify call scriptbase/linkedin-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scriptbase/linkedin-profile-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Profile Scraper 👔",
        "description": "👔 Get LinkedIn profile data as structured JSON. Name, headline, location, about, current company, followers and connections for any public profile. No login, no cookies, no Sales Navigator seat.",
        "version": "0.1",
        "x-build-id": "UDYLhEquIUrzAN5gw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scriptbase~linkedin-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scriptbase-linkedin-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scriptbase~linkedin-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scriptbase-linkedin-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scriptbase~linkedin-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scriptbase-linkedin-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "url"
                ],
                "properties": {
                    "url": {
                        "title": "LinkedIn Profile URL",
                        "type": "string",
                        "description": "URL of the LinkedIn person profile, e.g. https://www.linkedin.com/in/username. Company and school pages are not supported."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
