7 Best LinkedIn Profile Scraper APIs for 2026

   By: Jayden Sprent
Last Updated: July 13, 2026

The best LinkedIn profile scraper APIs in 2026 are LinkdAPI, Bright Data, Scrapingdog, Apify, and Nimbleway. The right choice depends on your budget, required response speed, and whether you need structured JSON output or AI pipeline integration.

Top Picks by Use Case

  • Best overall: LinkdAPI — 30+ endpoints, fast responses, from $59/month.
  • Best enterprise: Bright Data — large proxy network and enterprise-grade reliability.
  • Best budget: Scrapingdog — about $0.47 per 1,000 profiles.
  • Best for AI: Apify — supports MCP, LangChain, and Claude.
  • Best general scraper: ScraperAPI — works across LinkedIn, Amazon, and Google.
  • Best for speed: Nimbleway — 150–300 ms response times.

How We Picked and Ranked These APIs

We tested 7 LinkedIn profile scraper APIs on real public profiles across standard accounts, Sales Navigator profiles, and high-connection accounts. Every failed request, empty response, and incomplete data field counted against the score. Pricing was verified directly on each vendor's site in 2026 — not copied from another review. Where APIs use credit multipliers, we calculated the real effective cost per 1,000 profiles rather than showing the base plan price.

Rankings are based on four criteria: account ban risk (does it require your LinkedIn login), data completeness (fields returned vs. expected), response time and reliability (average speed and success rate across test profiles), and real cost per 1,000 profiles at the standard entry plan. Ban risk carries the most weight — an API that requires your LinkedIn session can get your account restricted regardless of how good the data is.

Ratings are from G2 and Capterra verified review pages. No tool paid for placement. Some offer affiliate commissions; it has no effect on position.

7 Best LinkedIn Scraper APIs of 2026

Each review includes real code examples, endpoint lists, pricing breakdown, and honest pros/cons.

linkdapi

LinkdAPI is the closest thing to what Proxycurl should have been — a clean, purpose-built LinkedIn API that works exactly like you'd expect. No cookie management, no account juggling, no infrastructure. Just REST endpoints that return structured JSON with full profile data.

Its async Python SDK is the standout feature: process 1,000 profiles in ~30 seconds using concurrent requests, compared to 8+ hours with Selenium. For 95% of developer use cases, this is the right starting point in 2026.

LinkdAPI — Enrich 1,000 Leads in 30 Seconds
Python

LinkdAPI — Enrich 1,000 leads in ~30 seconds

Python LinkdAPI · async SDK · bulk enrichment
import asyncio
from linkdapi import AsyncLinkdAPI

async def enrich_leads(usernames: list):
    """Enrich 1,000 leads concurrently in ~30 seconds"""

    async with AsyncLinkdAPI("YOUR_API_KEY") as api:
        batch_size = 100
        results = []

        for i in range(
            0,
            len(usernames),
            batch_size
        ):
            batch = usernames[i:i + batch_size]

            tasks = [
                api.get_profile_overview(u)
                for u in batch
            ]

            batch_results = await asyncio.gather(
                *tasks,
                return_exceptions=True
            )

            results.extend(batch_results)

            if i + batch_size < len(usernames):
                await asyncio.sleep(1)

        return [
            {
                "name": p["data"]["fullName"],
                "title": p["data"]["headline"],
                "company": p["data"]["CurrentPositions"][0]["name"]
            }
            for p in results
            if p.get("success")
        ]

# Usage
leads = [
    "user1",
    "user2",
    ...,
    "user1000"
]

data = asyncio.run(enrich_leads(leads))
~30 sec for 1,000 profiles · 💰 $15–30 per 1,000 requests · 🔒 No LinkedIn login required

Pros:

  • Best developer experience in category — clean REST API
  • Native async Python SDK — 40× faster batch processing
  • 30+ endpoints: profiles, companies, jobs, search, posts
  • Sub-200ms response time at 99.9% uptime
  • No LinkedIn account needed — zero ban risk
  • Transparent pricing: $0.015–0.03 per profile

Cons:

  • Newer — less brand recognition than Bright Data
  • Smaller team (though very responsive support)
  • Starter plan ($59/mo) may not suit tight budgets
  • No visual no-code interface — developers only

Starter from $59/mo (10K credits) · 100 free credits, no card required

Bright Data LinkedIn Scraper APIs

Bright Data is the enterprise standard for LinkedIn scraping — legally defensible, massively scaled, and proven in court. It successfully defended scraping in US courts in 2024 and operates with 99.99% uptime SLA. The API design is more complex than LinkdAPI, but the coverage is broader:

profiles, companies, jobs, posts, plus pre-collected LinkedIn datasets for historical analysis. Best for teams that need compliance documentation and can absorb the $500+ monthly minimum spend. For more information, read our bright-data Review

Bright Data — Profile Collection by URL
Python ·

Bright Data — Profile collection by URL

Python Bright Data · trigger + poll pattern
import requests
import time

API_KEY = "YOUR_BRIGHT_DATA_KEY"
BASE = "https://api.brightdata.com/datasets/v3"

def get_linkedin_profile(username: str):

    # Step 1 — trigger collection
    res = requests.post(
        f"{BASE}/trigger",
        headers={
            "Authorization": f"Bearer {API_KEY}"
        },
        json=[
            {
                "url": f"https://linkedin.com/in/{username}"
            }
        ]
    )

    snapshot_id = res.json()["snapshot_id"]

    # Step 2 — poll until ready
    time.sleep(3)

    result = requests.get(
        f"{BASE}/snapshot/{snapshot_id}",
        headers={
            "Authorization": f"Bearer {API_KEY}"
        }
    )

    return result.json()

profile = get_linkedin_profile("satyanadella")

print(
    profile["fullName"],
    "—",
    profile["headline"]
)

# For large batches, use webhook callbacks instead of polling
# requests.post(BASE + "/trigger?webhook=https://your.site/cb", ...)
~2–5 sec per profile · 💰 $0.001 per record · 🎁 5,000 free records / month

Pros:

  • Legal wins in US courts — strongest compliance position
  • 150M+ IPs, 99.99% uptime SLA for enterprise
  • Covers profiles, companies, jobs, posts, datasets
  • 5,000 free records/month — most generous free tier
  • Webhook support for async large-batch collection
  • Dedicated account managers on enterprise plans

Cons:

  • ~$500/mo minimum — not suitable for solo devs
  • Complex API design — steeper learning curve
  • Polling-based result retrieval adds latency
  • No native async SDK for Python

From $1.50 / 1,000 records · 5,000 free records/month · ~$500 minimum spend

Scrapingdog web scrpaing

Scrapingdog is the most affordable dedicated LinkedIn scraper API in 2026 and the closest structural Proxycurl replacement. It uses dedicated endpoints for LinkedIn profiles and companies — not generic HTML scraping — so you receive structured JSON without parsing.

At $40/month for 200,000 credits and $0.47 per 1,000 profiles average, it's the cheapest no-login option available. Response times of ~1.8 seconds are fast for the price point. For more information, read our Scrapingdog Review

Scrapingdog — Profile + Company Lookup
Python

Scrapingdog — Profile + company lookup

Python Scrapingdog · dedicated endpoints · structured JSON
import requests

API_KEY = "YOUR_SCRAPINGDOG_KEY"
BASE = "https://api.scrapingdog.com"

# Profile lookup by LinkedIn username
profile = requests.get(
    f"{BASE}/linkedinprofile/",
    params={
        "api_key": API_KEY,
        "profile_id": "satyanadella"
    }
).json()

# Company lookup by LinkedIn company slug
company = requests.get(
    f"{BASE}/linkedincompany/",
    params={
        "api_key": API_KEY,
        "company_id": "microsoft"
    }
).json()

# Both endpoints return structured JSON
print(f"Name    : {profile['fullName']}")
print(f"Title   : {profile['headline']}")
print(f"Company : {company['name']}")
print(f"Industry: {company['industry']}")
print(f"Size    : {company['employeeCount']} employees")
~1.8 sec per request · 💰 $0.47 per 1,000 profiles · 🔄 Best Proxycurl replacement on price

Pros:

  • Lowest per-profile cost: $0.47/1K — cheapest in category
  • Dedicated LinkedIn endpoints return structured JSON
  • No LinkedIn login — zero account ban risk
  • Strong docs across Python, Node.js, PHP, Java, Ruby
  • Best Proxycurl alternative on price and endpoint structure
  • 200 free credits to test before buying

Cons:

  • No async SDK — synchronous requests only
  • No email enrichment — data only
  • Smaller IP pool than Bright Data or LinkdAPI
  • Limited search endpoints compared to LinkdAPI

From $40/mo (200K credits) · 200 free credits to test now

apify LinkedIn profile scraper

Apify is a marketplace of 31,000+ serverless "Actors" — pre-built scrapers deployable to cloud. For LinkedIn specifically, the Mass LinkedIn Profile Scraper Actor ($10/1K profiles) handles bulk collection without session cookies. The key differentiator for 2026:

Apify is the only LinkedIn scraping option with a native MCP server at mcp.apify.com, enabling direct integration with Claude, ChatGPT, LangChain, and LlamaIndex — making it the default choice for AI-powered LinkedIn data pipelines. For more information, read our Apify Review

Apify — AI-Ready LinkedIn Pipeline
JavaScript

Apify — AI-ready LinkedIn pipeline

JavaScript Apify · Actor SDK · LangChain / MCP integration
const { ApifyClient } = require("apify-client");

const client = new ApifyClient({
    token: "YOUR_APIFY_TOKEN"
});

// Run the LinkedIn Profile Scraper Actor
const run = await client
    .actor("curious_coder/linkedin-profile-scraper")
    .call({
        profileUrls: [
            "https://linkedin.com/in/satyanadella",
            "https://linkedin.com/in/jeffweiner08"
        ],
        proxy: {
            useApifyProxy: true
        }
    });

// Retrieve structured results
const { items } = await client
    .dataset(run.defaultDatasetId)
    .listItems();

// Prepare data for LangChain, n8n, Claude, or other AI workflows
const profiles = items.map((p) => ({
    name: p.fullName,
    title: p.headline,
    company: p.experience?.[0]?.companyName,
    experience: p.experience
}));

console.log(
    `Scraped ${profiles.length} profiles`
);

// No-code option: connect through the Apify MCP server
// Use it with compatible AI assistants and automation tools
~30 sec per profile · 💰 $10–50 per 1,000 profiles · 🤖 AI and automation integration support

Pros:

  • Only LinkedIn API with native MCP server
  • Direct Claude, LangChain, LlamaIndex integration
  • 31,000+ pre-built Actors — skip writing scrapers
  • Open-source Crawlee SDK for custom builds
  • Free $5/mo credit — never expires, no card
  • Python, JavaScript, CLI, HTTP all supported

Cons:

  • ~30 seconds per profile — very slow vs dedicated APIs
  • Some Actors need your LinkedIn session cookie
  • Actor quality varies — test specific Actor before scaling
  • Platform complexity — steeper learning curve than REST APIs

Platform from $49/mo · Actor costs $10–50/1K profiles · Free $5/mo credit

scraperapi Proxi

ScraperAPI is not purpose-built for LinkedIn — it's a general-purpose scraping infrastructure that handles LinkedIn alongside Amazon, Google, and hundreds of other sites. The trade-off: you scrape LinkedIn by fetching raw HTML and parsing it yourself, rather than receiving structured JSON.

It costs 25–50 credits per LinkedIn request (vs 1 credit for simple sites), making effective cost $24–37 per 1,000 profiles. Best for developers who need to scrape LinkedIn as one of many data sources in a single pipeline. For more information, read our ScraperAPI Review.

ScraperAPI — LinkedIn HTML Parsing
Python

ScraperAPI — LinkedIn HTML parsing

Python JavaScript rendering · manual HTML parsing
import requests
from bs4 import BeautifulSoup

# LinkedIn needs JavaScript rendering, which uses more credits
response = requests.get(
    "https://api.scraperapi.com",
    params={
        "api_key": "YOUR_KEY",
        "url": "https://linkedin.com/in/satyanadella",
        "render": "true",   # JavaScript rendering
        "premium": "true"  # Premium routing
    }
)

# ScraperAPI returns HTML, so you must parse it yourself
soup = BeautifulSoup(
    response.text,
    "html.parser"
)

name = soup.find(
    "h1",
    class_="text-heading-xlarge"
)

print(
    name.text.strip()
    if name
    else "Not found"
)

# No structured JSON output
# LinkedIn may change its CSS classes without notice
⚠️ Manual HTML parsing required · 25–50 credits per rendered request · CSS selectors may change

Pros:

  • Best-in-class documentation across 6 languages
  • Works on any site — Amazon, Google, LinkedIn in one API
  • 5,000 free credits + permanent 1K/month free plan
  • Handles JS rendering, CAPTCHAs, proxy rotation
  • Simple flat API — easy to start

Cons:

  • Returns raw HTML — you parse profile data yourself
  • 25–50 credits per LinkedIn request (very expensive)
  • No LinkedIn-specific structured endpoints
  • No search functionality for LinkedIn profiles

From $49/mo (100K credits) · 5,000 free credits + 1K/month permanent free plan

Nimbleway scraping

Nimbleway is the fastest LinkedIn scraper API available in 2026 — 150–300ms response times versus 2 seconds for Bright Data and 30 seconds for Apify. Its AI fingerprint technology generates browser fingerprints indistinguishable from real users at the infrastructure level, achieving 90–95% success rate on well-formed requests.

Automated parsing means you receive structured JSON without writing selectors. Best for enterprise teams processing real-time LinkedIn data at high volume who need the absolute minimum latency. For more information, read our nimbleway Review

Nimbleway — Real-Time Profile Collection
Python

Nimbleway — Real-time profile collection

Python Nimbleway · real-time API · automatic parsing
import requests

USERNAME = "YOUR_NIMBLE_USERNAME"
PASSWORD = "YOUR_NIMBLE_PASSWORD"

response = requests.post(
    "https://api.webit.live/api/v1/realtime/web",
    auth=(USERNAME, PASSWORD),
    json={
        "url": "https://www.linkedin.com/in/satyanadella",
        "render": "html",
        "country": "US",
        "parse": "linkedin_profile"  # Automatic page parsing
    }
)

# Raise an error if the request fails
response.raise_for_status()

# Retrieve the structured response
data = response.json()
profile = data["parsing"]["entities"][0]

print(f"Name    : {profile['name']}")
print(f"Position: {profile['position']}")
print(f"Location: {profile['location']}")

# Structured output reduces manual HTML parsing
# No LinkedIn account credentials are included in this request
150–300 ms response · 💰 $3 per 1,000 requests · $150 monthly minimum

Pros:

  • Fastest response: 150–300ms — fastest in category
  • AI fingerprint mimics real browser at infrastructure level
  • Automated parsing — structured JSON, no selectors
  • 90–95% success rate on valid requests
  • No LinkedIn login required

Cons:

  • $150/mo minimum — too expensive for small teams
  • $3/CPM adds up at very high volume
  • Setup and configuration required
  • Less documentation than Bright Data or LinkdAPI

From $49/mo (100K credits) · 5,000 free credits + 1K/month permanent free plan

Nimbleway scraping

PhantomBuster is not really a developer API — it's a no-code automation platform that happens to extract LinkedIn data. It uses your LinkedIn session cookie, has an 80-profile/day practical limit, and requires human-like delays that make it inherently slow.

For developers, it offers no SDK, no structured endpoint, and no batch processing. Its value is for non-technical teams who need to scrape and message LinkedIn contacts in one visual workflow — not for anyone building a data pipeline. For more information, read our phantombuster Review

Python

LinkdAPI via RapidAPI — No subscription needed

Python RapidAPI marketplace · 10 free calls · pay per call
import requests

# Access LinkdAPI through the RapidAPI marketplace
# Use the free test calls before choosing a paid plan

response = requests.get(
    "https://linkdapi.p.rapidapi.com/profile-overview",
    headers={
        "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
        "X-RapidAPI-Host": "linkdapi.p.rapidapi.com"
    },
    params={
        "username": "satyanadella"
    },
    timeout=30
)

# Stop execution if the API request fails
response.raise_for_status()

profile = response.json()

print(profile["data"]["fullName"])
print(profile["data"]["headline"])
print(profile["data"]["location"])
print(profile["data"]["connections"])

# Suggested pricing choice:
# Under 500 calls/month  → RapidAPI pay-per-call plan
# Over 500 calls/month   → Direct LinkdAPI plan may cost less
<300 ms response · 🎁 10 free test calls — no card · 💰 $0.02–$0.04 per additional call

Pros:

  • No-code — marketing teams can use without developers
  • Scraping + outreach automation in one workflow
  • HubSpot and Google Sheets integration built-in
  • Large community with pre-built Phantom templates
  • 14-day free trial with 50 email credits

Cons:

  • No developer API or SDK — not programmable
  • ~80 profiles/day maximum — not scalable
  • Uses your LinkedIn account — medium ban risk
  • No structured JSON output for pipelines

From $56/mo · 14-day free trial with 50 email credits

Wrapping Up


Hopefully, you’ve got a clear picture of the Best LinkedIn Profile Scraper APIs for 2026.

If you want to save time and avoid the frustration of manually collecting LinkedIn data, try these scraper APIs. Each one has its own strengths, so you can pick the right tool based on your needs.

Want to learn about the best LinkedIn Post Scraper APIs for 2026? This fantastic blog will satisfy your needs.

Note:  This page contains affiliate links — we may earn a commission if you buy through them, at no extra cost to you.

Frequently Asked Questions

Does LinkedIn have an official API for scraping profiles?

No. LinkedIn's official API only returns first name, last name, and email address — the equivalent of Sign In with LinkedIn. It does not return work history, education, skills, company data, or anything useful for enrichment or lead generation. This is why third-party LinkedIn scraper APIs exist.

What happened to Proxycurl API?

Proxycurl shut down in July 2026 after LinkedIn sued them for creating hundreds of thousands of fake accounts to scrape data. The best API replacements are LinkdAPI (closest developer experience, similar endpoint design), Bright Data (enterprise scale), and Scrapingdog (budget alternative with similar per-credit pricing).

Is using a LinkedIn scraper API legal?

Scraping publicly visible LinkedIn data is legal in the United States under the hiQ Labs v. LinkedIn ruling (9th Circuit, 2022).

The key distinction: APIs that only collect public data without fake accounts — LinkdAPI, Bright Data, Scrapingdog — are in a much stronger legal position than tools that create fake accounts, which is exactly what caused Proxycurl's shutdown.

How fast are LinkedIn scraper APIs?

Response times vary significantly: Nimbleway is the fastest at 150–300ms per profile. LinkdAPI delivers under 200ms. Scrapingdog averages 1.8 seconds. Bright Data takes 2–5 seconds per profile. ScraperAPI averages 3–5 seconds for LinkedIn.

Apify is the slowest at ~30 seconds per profile due to Actor startup overhead. For bulk processing, async concurrency (as in LinkdAPI's Python SDK) reduces effective time dramatically — 1,000 profiles in ~30 seconds.

How much does a LinkedIn scraper API cost per 1,000 profiles?

Cost per 1,000 LinkedIn profiles in 2026: Scrapingdog is cheapest at $0.47. Bright Data is $1.50 (pay-as-you-go, ~$500 minimum). Nimbleway is $3/CPM.

Apify runs $10–50 depending on Actor. LinkdAPI is $15–30. ScraperAPI is $24–37 (due to 25–50 premium credits per LinkedIn request). PhantomBuster is not comparable as it's limited to ~80 profiles/day regardless of plan.

Can I use a LinkedIn API without a LinkedIn account?

Yes. API-based scrapers like LinkdAPI, Bright Data, Scrapingdog, and Nimbleway collect public data through proxy infrastructure without requiring your LinkedIn credentials.

This is the safest approach — zero account ban risk. PhantomBuster requires your LinkedIn session cookie, which carries medium ban risk at high volumes.

What data fields does a LinkedIn scraper API return?

A complete LinkedIn scraper API returns: full name, headline, location, about section, all work experience (company, title, start/end dates, description), full education history (school, degree, field, dates), skills list, LinkedIn profile URL, connection count, follower count, premium and creator status, and optionally verified email addresses via enrichment. Company endpoints additionally return employee count, industry, website, headquarters, founding year, and similar companies.

Which LinkedIn API integrates with AI tools like Claude or LangChain?

Apify is the only LinkedIn scraping option with a native MCP (Model Context Protocol) server at mcp.apify.com, enabling direct integration with Claude, ChatGPT, LangChain, LlamaIndex, n8n, Make, and Zapier without writing custom connectors.

For custom LangChain or LlamaIndex integrations using any API, you can also wrap LinkdAPI or Scrapingdog responses in a standard LangChain Tool or LlamaIndex data connector.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Jayden Sprent is a tech enthusiast renowned for his expertise in web scraping, proxies, and VPNs. Originating from Pennsylvania, USA, Jayden's journey in technology began early, evolving into a career marked by a profound understanding of web development. Specializing in ethical and efficient data extraction, he navigates the complexities of proxies and VPNs with finesse. Jayden's commitment to responsible tech practices shines through, advocating for privacy and staying at the forefront of industry advancements. A collaborative figure, he shares knowledge through mentoring and public speaking, making a lasting impact on the tech community. In the fast-paced tech landscape, Jayden Sprent is a versatile professional, leaving an indelible mark on digital innovation.

Related Articles

>