Search people on LinkedIn
Find people by name, title, company, school or place. With source=public (the default), LinkedIn's own people search: it finds people well by name, but hides many other results as "LinkedIn Member", and those are left out. With source=sales_navigator, Sales Navigator's lead search: every match, with each person's current roles, at a higher price. 10 a page, or 25 with Sales Navigator. Give at least one of query, first_name, last_name, title, current_company, past_company, school or location. Use linkedin/profile on a result for the whole profile.
https://api.scrapefield.com/v1/linkedin/peoplehttps://api.scrapefield.com/v1/linkedin/peopleIn your code
const params = new URLSearchParams({
"query": "data engineer"
});
const res = await fetch(`https://api.scrapefield.com/v1/linkedin/people?${params}`, {
headers: { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` },
});
const { data, meta } = await res.json();
console.log(data, meta.credits_charged);Parameters
| Parameter | What it does |
|---|---|
query | Words to search for, as in LinkedIn's search box. |
first_name | Their first name, as their profile gives it. |
last_name | Their last name, as their profile gives it. |
title | Words in their current title, e.g. "head of data". |
current_company | Where they work now: a company page URL or company_id. Several, comma-separated. |
past_company | Where they worked before, as current_company. |
school | Where they studied: a school page URL or its id. Several, comma-separated. |
location | A place name, e.g. "Berlin" or "Germany". |
source | public is LinkedIn's people search; sales_navigator is Sales Navigator's lead search, which hides no one and gives current roles, at a higher price.public · sales_navigator, default public |
cursor | The meta.next_cursor from the previous page. Omit for the first page. |
fresh | Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it. default false |
Response
Returns an array of linkedin_member — or, with source, linkedin_lead for sales_navigator. This is the demo’s answer, the one the playground above returns, in full rather than abbreviated — including the fields that come back null, because a field is null when the platform does not show it and you should know which ones those are before you build on them. A call with your key returns the account you ask for.
{
"data": [
{
"type": "person",
"vanity_name": "ines-aydin-430344",
"url": "https://www.linkedin.com/in/ines-aydin-430344/",
"full_name": "Ines Aydin",
"headline": "Product Designer at Lantern",
"location": "Copenhagen, Germany",
"services": []
},
{
"type": "person",
"vanity_name": "tomas-marchetti-387254",
"url": "https://www.linkedin.com/in/tomas-marchetti-387254/",
"full_name": "Tomas Marchetti",
"headline": "Founder at Ravel",
"location": "Brooklyn, Portugal",
"services": []
}
],
"meta": {
"request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
"credits_charged": 7,
"credits_remaining": 74218,
"cached": false,
"fetched_at": "2026-09-20T09:12:03Z",
"next_cursor": "eyJwIjoxLCJzIjoiYTNmOSJ9"
}
}Fields of linkedin_member
A person or a company in a list: a post's reactors, a comment's author, a people search's results. Named after the words LinkedIn prints, since LinkedIn has no official data API.
| Field | What it is |
|---|---|
type | A company page can comment and react as itself. person · company |
vanity_name | The public name in the URL: after /in/ for a person, after /company/ for a company. null where LinkedIn gives only an id. |
url | Their page. Where LinkedIn lists a person by member id, as it does a post's reactors, this is a member-id link (/in/ACoAA…). |
full_name | The person's name, or the company's. |
headline | The line under the name. For a company, LinkedIn prints its follower count here. |
location | As printed. null in most lists. |
services | What they offer, for someone found by linkedin/services. Empty in other lists. |
Fields of linkedin_lead
A person from Sales Navigator's lead search: every match, with their current roles. Named after the words LinkedIn prints, since LinkedIn has no official data API.
| Field | What it is |
|---|---|
vanity_name | The public name after /in/. null where Sales Navigator gives only a member id. |
url | Their profile. Sales Navigator often gives a member-id link (/in/ACwAA…) instead of a public name. |
first_name | The given name. |
last_name | The family name. |
full_name | First and last name together. |
location | As printed. |
profile_picture_url | The profile photo. |
premium | Whether they pay for LinkedIn Premium. |
open_profile | Whether anyone can message them, connected or not. |
current_positions | What they do now, as Sales Navigator lists it. |
current_positions[].title | The job title, as printed. |
current_positions[].company | The employer. |
current_positions[].company.name | As the listing prints it. |
current_positions[].company.url | The company page, where it has one. |
current_positions[].company_id | LinkedIn's numeric id for the employer. |
current_positions[].start_date | YYYY-MM, or YYYY where only a year is given. |
current_positions[].description | What they wrote about the role. |
What it costs
7 credits (170 for source=sales_navigator) per successful call, whether we fetch it or serve it from cache — you pay for the answer, not for how we produced it. Responses are cached for 1 day and a cached one tells you when the data was actually fetched. A call we fail costs 0 and is refunded automatically.
On the smallest pack that is $5.46 per 1,000 calls; on the largest, $3.08. The full table.
Questions
How much does the LinkedIn people search API cost?
From 7 to 170 credits a call, depending on what you ask for: $5.46 to $132.60 per 1,000 calls on the smallest pack, $3.08 to $74.77 on the largest. A call that fails costs nothing, and the refund is automatic. A cached answer costs the same as a fresh one. Credits are bought in packs and never expire; there is no subscription.
Do I need a LinkedIn account, a login or cookies?
No. You need a key from us and nothing from LinkedIn. We never take a customer's login, cookies or session, at any price, and no account of yours is ever at risk.
Can I try it without signing up?
Yes. Add demo=true and leave the key out, or press Send request in the playground on this page. The demo answers with a real answer about Charles Leclerc, captured once a week, in exactly the shape a live call returns, whatever you ask, and charges nothing.
How fresh is the data?
An answer is kept for up to 1 day, and a cached one says when it was fetched, in meta.fetched_at. Add fresh=true to fetch it again now, at the same price; it needs any purchase, not the trial.
What does it return?
A list of linkedin_member objects. Its fields are named after the words LinkedIn prints, since LinkedIn has no official data API. A field is null when LinkedIn does not show it, never missing. Every field is described on this page.
How do I get more than one page?
Pass meta.next_cursor back as cursor, and stop when it is null. Each page is a call, priced the same. A cursor lasts as long as the answer it belongs to is cached.
Can an AI agent call it?
Yes: it is the MCP tool search_linkedin_people on our MCP server, with the same parameters, answer and price. Without a key, the tool answers from the demo.