# LinkedIn profile scraper API — $0.005/profile

> LinkedIn profile scraper API: Public LinkedIn profile preview — name, headline, company. $0.005 per delivered profile, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*LinkedIn profile scraper API*

# LinkedIn profile scraper API

A LinkedIn profile scraper API that returns the public preview of a profile: name, headline, location, current company, job titles, education, follower and connection counts, and the photo — from slugs or /in/ URLs, without logging into anyone's account.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/linkedin-profile-scraper-api/#integration)

$0.005 per delivered profile · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/linkedin_profile/run

```
$ curl $QD/linkedin_profile/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"profiles": ["williamhgates"], "max_results": 5}'
{ "status": "done", "count": 5,
  "results": [
    {
      "slug": "…",
      "name": "…",
      "headline": "…",
      "location": "…" } ],
  "cost": 0.025 }
# 5 profiles × $0.005 · nothing delivered, nothing charged
```

**$0.005 / profile**400 profiles on the free $2 every month

**Semantic input**profiles, country, max_results — no URL lists

**Up to 50**profiles per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/linkedin-profile-scraper-api/#what) [Output fields](/collectors/linkedin-profile-scraper-api/#output) [Inputs](/collectors/linkedin-profile-scraper-api/#input) [Pricing](/collectors/linkedin-profile-scraper-api/#pricing) [Integration](/collectors/linkedin-profile-scraper-api/#integration) [Use cases](/collectors/linkedin-profile-scraper-api/#use-cases) [Versus the alternatives](/collectors/linkedin-profile-scraper-api/#compare) [FAQ](/collectors/linkedin-profile-scraper-api/#faq)

## What a LinkedIn profile scraper API does

Logged out, LinkedIn serves a preview page and puts the rest behind a sign-in wall. This collector reads exactly the public half — the schema.org block and the top card — and stops there. It does not authenticate, does not replay someone's session cookie, and does not pretend the hidden fields are available.

That boundary is the product decision. Tools that promise full profiles are logging in as somebody, which is the part that gets accounts banned and creates a compliance problem you inherit. If the public preview is enough for your use case, this is a clean way to collect it at volume.

Input is meaning, not a URL *profiles* *country* *max_results*

## What one profile looks like

Every delivered profile carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `slug` | string | Profile slug. |
| `name` | string | Full name. |
| `headline` | string · nullable | Profile headline. |
| `location` | string · nullable | Location as published. |
| `country` | string · nullable | Country when exposed. |
| `job_titles` | string[] | Titles listed in the public schema block. |
| `company` | string · nullable | Current company. |
| `company_url` | string · nullable | Company LinkedIn URL. |
| `education` | string[] | Schools listed publicly. |
| `followers` | integer · nullable | Follower count. |
| `connections` | integer · nullable | Connection count as shown. |
| `image` | string · nullable | Profile photo URL. |
| `url` | string | Profile URL. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `profiles` | array | yes | Profile slugs (williamhgates) or /in/ URLs, one per line. |
| `country` | string | no | ISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool. |
| `max_results` | integer | no | How many profiles to deliver at most (1–50). You pay only for delivered profiles. |

Pricing

## LinkedIn profile scraper API pricing

$0.005 per delivered profile. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 400 profiles before you spend anything.

**$0.005**per delivered profile*$5 per 1,000 delivered profiles*

**400 profiles**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/linkedin_profile/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/linkedin_profile/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profiles":["williamhgates"],"max_results":5}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/linkedin_profile/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "profiles": [
            "williamhgates"
        ],
        "max_results": 5
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/linkedin_profile/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"profiles":["williamhgates"],"max_results":5}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the linkedin_profile collector with profiles=["williamhgates"] and max_results=5
```

## What people build with the LinkedIn profile scraper API

Three shapes of work this endpoint was designed around.

### Lead enrichment

Attach title, company and location to a list of profile URLs you already hold.

### Recruiting research

Screen a candidate shortlist on headline and current employer before reaching out.

### Data hygiene

Detect when a contact has changed role or company since your CRM last saw them.

## LinkedIn profile scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Authentication | Your cookie, your account at risk | None — public preview only |
| Scope claims | Promise the full profile | Documented as the public half |

## The only official read is your own visitor

LinkedIn's API offers Sign In with LinkedIn, which returns the profile of a user who has just authenticated with your application and consented to share basic fields. That is an authentication product. Reading profiles of people who have not authorised you runs through partner programmes that are not granted for enrichment or prospecting, at any price.

Which leaves the logged-out public preview — what this reads — or a commercial contact database. They are different products: databases sell verified emails and direct dials that no public page contains; this returns current, self-published positioning for anyone with a public profile, and returns it as a typed row rather than a page.

## Limits, scope and the legal bit

Up to 50 profiles per run, logged-out fields only. Everything behind the sign-in wall — full experience history, contact details, skills — is out of scope by design and is never guessed to fill a column. Throughput is your plan's rate limit rather than anything about the collector: 60 requests/minute on pay-as-you-go, up to 1,200 on the top tier.

This is the most personal-data-heavy collector in the catalogue. US courts have repeatedly held that scraping publicly accessible pages is not unauthorised access under the CFAA, which is meaningful and narrow: a profile is still personal data under GDPR and equivalents, so you need a lawful basis, individuals hold access and erasure rights, and LinkedIn's terms prohibit automated collection independently of any statute. None of this is legal advice — get some for your actual use case.

## FAQ

Questions we get about the LinkedIn profile scraper API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Does it return the full work history?

No. Experience beyond the current role, contact details and connections are behind LinkedIn's sign-in wall, and this API does not log in. You get name, headline, location, current company, public job titles and education.

### Do I need a LinkedIn account or cookie?

No. That is the point: nothing is authenticated, so no account of yours is exposed.

### Is the company page richer?

Considerably. [linkedin_company](https://quanticdata.io/collectors/linkedin-company-scraper-api/) returns employee count, follower count, industry, website and the structured headquarters address.

### Is there a free LinkedIn profile scraper API?

Every account gets $2 of credit every month with no card, which is about 400 delivered profiles on this endpoint at $0.005 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.005. A run capped at 50 profiles — the maximum for this collector — costs $0.25 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

### Why is the dataset narrower than other LinkedIn tools claim?

Because it only reads what LinkedIn shows to signed-out visitors. Tools that return full experience history are holding a session, and sessions on LinkedIn get detected and the account restricted. A narrower dataset that keeps working is the deliberate trade.

### Can it return email addresses?

No. LinkedIn does not publish email addresses on public profiles, so no LinkedIn collector can return one honestly. For business contact details, the [site contacts](https://quanticdata.io/collectors/email-scraper-api/) and [company profile](https://quanticdata.io/collectors/company-data-api/) collectors read what a company publishes on its own site.

## Run the LinkedIn profile scraper API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 32 collectors](https://quanticdata.io/collectors/) [LinkedIn company scraper API](https://quanticdata.io/collectors/linkedin-company-scraper-api/) [LinkedIn jobs API](https://quanticdata.io/collectors/linkedin-jobs-api/) [Company Data API](https://quanticdata.io/collectors/company-data-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/linkedin-profile-scraper-api/ · Site index for AI: https://quanticdata.io/llms.txt
