Skip to content
ScrapeField

LinkedIn scraper API

Profiles, people and company search, company pages and their people, posts with their comments and reactions, jobs with every filter, groups and the Ad Library, as clean JSON, named the way LinkedIn prints them. And we never ask for your login or your cookies.

Endpoints
18
From
3 credits a call
Returns
profile, company, post, comment, reaction, activity, member, ad, job, lead, company result, employee stats, group
linkedin.com/in/mara-vogel
MV

Mara Vogel

Head of Growth at Kestrel

Brooklyn, United States · Contact info

20,156 followers · 500+ connections

FollowMore

Kestrel

About

I build the boring parts that keep products up. Previously early at two startups; now working on data infrastructure.

Experience

  • Head of GrowthKestrel · Full-time2023-01 – Present
  • Product DesignerKestrel · Full-time2020-03 – 2023-06
  • FounderBrightwater · Contract2018-08 – 2020-09

Extracted data

  1. 1full_name "Mara Vogel"
  2. 2headline "Head of Growth at Kestrel"
  3. 3location "Brooklyn, United States"
  4. 4follower_count 20156connection_count 500
  5. 5current_company.name "Kestrel"
  6. 6about "I build the boring parts that keep products…
  7. 7experience[0].title "Head of Growth"experience[0].company.name "Kestrel"
  8. education[0].school.name "The University of Texas at Austin"
  9. skills ["Data Modeling","Product Strategy","SQL","T…

Try it now

Every LinkedIn endpoint, as an MCP tool, as a REST call, or as a question in plain English. Each one runs against the live API in demo mode — no key, no account. For an agent: the LinkedIn MCP server.

POSThttps://scrapefield.com/mcp
18 tools
Transport
HTTP, JSON-RPC 2.0
Methods
initialize · tools/list · tools/call
Auth
Bearer key (or none for demo mode)
claude mcp add --transport http scrapefield https://scrapefield.com/mcp

What people build with it

Three worked examples, each with the calls it makes and what a run costs — multiplied out from the published price of every call.

01

Track who is hiring, every week

Run the same job searches every Monday, keep the listings from the last seven days, and count them by company. A company that suddenly posts ten data roles is telling you something before any press release does.

The calls, and what each costs
GET linkedin/jobs× 80240 cr
a month, 20 searches every week240 cr

≈ $0.143 at the 250k pack

const API = 'https://api.scrapefield.com/v1';
const sf = (path, q) =>
  fetch(API + '/' + path + '?' + new URLSearchParams(q), {
    headers: { Authorization: 'Bearer ' + process.env.SCRAPEFIELD_KEY },
  }).then((r) => r.json());

const searches = [
  { query: 'data engineer', location: 'Berlin' },
  { query: 'data engineer', location: 'London' },
  { query: 'backend engineer', location: 'Amsterdam' },
];
const weekAgo = Date.now() - 7 * 24 * 60 * 60 * 1000;
const byCompany = {};

for (const s of searches) {
  const { data } = await sf('linkedin/jobs', { ...s, limit: 25 });
  for (const job of data) {
    // a posting with no date is not counted as new
    if (!job.listed_at || Date.parse(job.listed_at) < weekAgo) continue;
    const name = job.company.name;
    byCompany[name] = (byCompany[name] ?? 0) + 1;
  }
}

const top = Object.entries(byCompany).sort((a, b) => b[1] - a[1]);
console.table(top.slice(0, 10));
02

Fill in the blanks in your CRM

For every account with a LinkedIn URL, fetch the company page and write back its industry, size band, founding year, headquarters and follower count. Five hundred accounts is one loop. To finish sooner, run several calls side by side, up to your account's concurrency limit.

The calls, and what each costs
GET linkedin/company× 5001,500 cr
500 accounts, once1,500 cr

≈ $0.894 at the 250k pack

const API = 'https://api.scrapefield.com/v1';
const sf = (path, q) =>
  fetch(API + '/' + path + '?' + new URLSearchParams(q), {
    headers: { Authorization: 'Bearer ' + process.env.SCRAPEFIELD_KEY },
  }).then((r) => r.json());

for (const account of accounts) {
  const q = { url: account.linkedin_url };
  const { data: c, error } = await sf('linkedin/company', q);
  if (error) continue; // a page that is gone is refunded, not charged

  await crm.update(account.id, {
    industry: c.industry,
    size: c.company_size,
    founded: c.founded,
    hq: c.headquarters?.city,
    followers: c.follower_count,
  });
}
03

Watch competitors grow

Read the company pages of the competitors you watch every Monday and keep two numbers: followers, and the people who list the company on LinkedIn. A company adding people faster than its peers is hiring into something; one losing followers is losing attention.

The calls, and what each costs
GET linkedin/company× 40120 cr
a month, 10 companies weekly120 cr

≈ $0.072 at the 250k pack

const API = 'https://api.scrapefield.com/v1';
const sf = (path, q) =>
  fetch(API + '/' + path + '?' + new URLSearchParams(q), {
    headers: { Authorization: 'Bearer ' + process.env.SCRAPEFIELD_KEY },
  }).then((r) => r.json());

for (const url of competitors) {
  const { data: c } = await sf('linkedin/company', { url });

  // one row a week per company; the change between rows is the signal
  await save({
    company: c.name,
    week: new Date().toISOString().slice(0, 10),
    followers: c.follower_count,
    people: c.employees_on_linkedin,
  });
}

Everything that comes back

The complete response behind the LinkedIn view at the top of this page, from GET /v1/linkedin/profile — every field, including the ones that are null. Fields are named after the words LinkedIn prints, since LinkedIn has no official data API, so if you have read those docs you already know them. Every field of linkedin_profile, linkedin_company, linkedin_post, linkedin_comment, linkedin_reaction, linkedin_activity, linkedin_member, linkedin_ad, linkedin_job, linkedin_lead, linkedin_company_result, linkedin_employee_stats and linkedin_group is documented.

{
  "data": {
    "vanity_name": "mara-vogel",
    "url": "https://www.linkedin.com/in/mara-vogel/",
    "full_name": "Mara Vogel",
    "first_name": "Mara",
    "last_name": "Vogel",
    "headline": "Head of Growth at Kestrel",
    "about": "I build the boring parts that keep products up. Previously early at two startups; now working on data infrastructure.",
    "location": "Brooklyn, United States",
    "profile_picture_url": "https://cdn.example/li/kmVExb4fW1Hu.jpg",
    "follower_count": 20156,
    "connection_count": 500,
    "open_to_work": false,
    "current_company": {
      "name": "Kestrel",
      "url": "https://www.linkedin.com/company/kestrel/"
    },
    "experience": [
      {
        "title": "Head of Growth",
        "company": {
          "name": "Kestrel",
          "url": "https://www.linkedin.com/company/kestrel/"
        },
        "employment_type": "Full-time",
        "location": "Brooklyn, United States",
        "start_date": "2023-01",
        "end_date": null,
        "is_current": true,
        "description": "Own the data platform end to end: ingestion, the warehouse and the on-call rota."
      },
      {
        "title": "Product Designer",
        "company": {
          "name": "Kestrel",
          "url": "https://www.linkedin.com/company/kestrel/"
        },
        "employment_type": "Full-time",
        "location": "Brooklyn, United States",
        "start_date": "2020-03",
        "end_date": "2023-06",
        "is_current": false,
        "description": null
      },
      {
        "title": "Founder",
        "company": {
          "name": "Brightwater",
          "url": "https://www.linkedin.com/company/brightwater/"
        },
        "employment_type": "Contract",
        "location": "Brooklyn, United States",
        "start_date": "2018-08",
        "end_date": "2020-09",
        "is_current": false,
        "description": null
      }
    ],
    "education": [
      {
        "school": {
          "name": "The University of Texas at Austin",
          "url": "https://www.linkedin.com/school/theuniversityoftexasataustin/"
        },
        "degree": "Master of Science - MS",
        "field_of_study": "Industrial Design",
        "start_year": 2013,
        "end_year": 2017
      }
    ],
    "skills": [
      "Data Modeling",
      "Product Strategy",
      "SQL",
      "TypeScript"
    ],
    "emails": []
  },
  "meta": {
    "request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
    "credits_charged": 11,
    "credits_remaining": 74218,
    "cached": false,
    "fetched_at": "2026-09-20T09:12:03Z",
    "next_cursor": null
  }
}

Endpoints and prices

One published credit cost per endpoint, charged per call and refunded automatically when a call fails. See what a credit costs.

LinkedIn, specifically

The questions people ask about this platform before they call it. And how this compares with the platform’s own API: ScrapeField vs the LinkedIn API.

Do I need a LinkedIn account?
No, and we would refuse yours if offered. You never give us a login, a cookie or a session, so your own account is never involved.
Can I search for people?
Yes: linkedin/people finds people by name, title, company, school or place. LinkedIn's own people search, the default, finds people well by name but hides many other results; with source=sales_navigator, Sales Navigator's lead search hides no one and gives each person's current roles, at 170 credits a page of 25. linkedin/services finds people who offer a service, and linkedin/employees lists the people at one company.
Can I see what a person comments on and reacts to?
Yes: linkedin/activity, with type=comments or type=reactions, gives what they did, newest first, up to 100 a page, each with when and the post it was on. A comment on an article comes with the article's address and no post, because LinkedIn does not give its author. 7 credits a page.
Do profiles include emails or phone numbers?
Their work email, when you ask: detail=with_email looks for it and checks each address with its mail server, marking the ones it cannot confirm, for 33 credits a profile. A profile has no phone number. Anything a profile doesn’t show comes back as null, never as a guess.
How many jobs does one search return?
Up to 25 per call, with meta.next_cursor for the next page. Narrow it with location and LinkedIn's own filters: posted_within, workplace_type, employment_type, experience_level, company_id and easy_apply.
Does a search give the job description?
No: a search gives the title, company, place and date, and whether it is remote and Easy Apply where the list shows it; the rest is null. Pass a result's job_id to linkedin/job, as its id, for one posting in full — its employment type, seniority, pay where it is shown, and the whole description — at 3 credits.
What is in a profile?
The headline, location, followers and connections, the About section, the current company, experience, education and skills, named the way LinkedIn prints them. Anything the profile doesn’t show is null.

The same key, four more platforms

One key, one balance and one invoice across all five — and each platform’s data in its own shape, because they are five different systems.

Your first LinkedIn call, in a minute

Get a key