// the complete record instead of the public page

Stop scraping LinkedIn. Call it.

A scraper returns the truncated public page — two roles instead of seven, no headcount history, no Sales Navigator. Edges returns the complete record, read at request time. One REST API, structured JSON, no anti-bot, no cookies.

Edges is not related to LinkedIn and is not an official LinkedIn product.

Scraping LinkedIn// your stack today
  • Selectors break when LinkedIn ships UI tweaks. On-call paged at 2am.
  • Rotate proxies + cookies. Pay the proxy bill. Manage account warmup yourself.
  • Parse HTML. Maintain a brittle DOM-to-JSON layer per surface.
  • You own ToS posture. One mis-tuned scraper hits a hard rate limit and the account dies.
  • No SLA, no status page. When it breaks, you find out from a customer.
Calling Edges// the API alternative
  • Documented endpoints. POST a URL, get typed JSON. We absorb LinkedIn changes.
  • Managed access. Your app never touches a cookie. No proxy bill.
  • Stable schemas. Versioned API; breaking changes ship behind /v2, not on Tuesday.
  • Rate posture built-in. Per-identity budgets, ramping, cool-downs — handled.
  • Status page + SLA. When something breaks, we tell you. Enterprise tier gets a phone.
Customers
100+
shipping LinkedIn in production
Uptime
99%+
status page · SOC 2 Type II
Live read
p50 1.2s
p99 2.4s
Actions
70+
one runner, one key

// used by

// What you stop maintaining

The boring infra you'd build in week three — already in the API.

The numbers below come from talking to teams switching off a scraper. Your mileage varies, but the categories don't.

// selectors.json

HTML parsing layer

The brittle DOM-to-JSON code that breaks every time LinkedIn ships a UI tweak. Including the 11 files of fallback selectors per surface.

~ 6 h / month saved

// session-pool/

Account session management

Cookie storage, refresh, rotation across accounts. The fingerprinting library you forked once and never updated.

~ 4 h / month saved

// proxies.yml

Proxy + IP rotation

The $400/mo proxy contract, the residential IP pool you swap when LinkedIn blocks a range, the geolocation routing.

~ 3 h / month + $400/mo saved

// rate-limit-policy.ts

Anti-bot & rate posture

Human-pace pacing, jittered delays, cool-downs, the table of how-much-is-too-much per LinkedIn surface that you reverse-engineered from incidents.

~ 3 h / month saved

// incident-runbook.md

Breakage response on-call

The Slack channel, the playbook, the postmortems. The deploy at 2am to patch a parser. The customer comms when an extract failed overnight.

~ 5 h / month saved

// account-warmup.cron

Account warmup scripts

The slow-ramp script that takes 21 days to bring a new LinkedIn account up to full send budget without tripping risk.

~ 2 h / month saved

// This is a REST API, not a scraper

POST a URL. Get JSON. That is the whole move.

A scraper returns HTML. An API returns JSON you can ship. Copy either snippet and run it with your key.

curl
# POST a profile URL, get typed JSON — not HTML
curl -X POST https://api.edges.run/v1/actions/linkedin-extract-people/run/live \
  -H "X-API-Key: $EDGES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"linkedin_profile_url":"linkedin.com/in/jane-doe"}}'
extract-people.ts
// npm i @edgesrun/sdk
import { Edges } from "@edgesrun/sdk"
const edges = new Edges({ apiKey })
const { data } = await edges.linkedin.extractPeople({
  input: { linkedin_profile_url: "linkedin.com/in/jane-doe" }
})

p50 1.2s · p99 2.4s on a live read · same runner as every other action

// Workflows

Common jobs people describe as LinkedIn scraping.

Expand a workflow to see how teams usually implement it — and how an API fits.

Account executives and SDRs often start with a named list of companies or titles and need firmographics, technographics hints, and trigger events to prioritize touches. A classic LinkedIn scraper workflow might dump HTML into a Python notebook; a production version dedupes domains, normalizes seniority, attaches CRM IDs, and respects per-seat governance. Edges keeps that logic in your stack while supplying consistent inputs from LinkedIn-shaped actions—so reps spend time on conversations, not CSV cleanup.

// Fully-loaded cost · sample

“Cheap” scrapers stop being cheap at scale.

A representative profile-enrichment workload at 50k records / month. Sticker price isn't the whole story — engineering time and infra add up.

Line itemSelf-built scraperGeneric scraping APIEdges
Per-call API or compute$0.0024 (Lambda + parse)$0.012 / req1 credit · $0.02999
Proxy / residential IP pool$400 / moincludedincluded
LinkedIn accounts (warm)$80 / mo · ×3your accountsmanaged pool
Engineering on-call~ 22 h × $120/h = $2,640~ 8 h × $120/h = $960~ 1 h × $120/h = $120
Infra (cron, queues, retries)$220 / mo$80 / moincluded
50k profiles / month, fully loaded~ $3,620~ $1,800~ $1,620
Engineering hours estimated from customer interviews.Build vs buy

// vs other LinkedIn data tools

Latency, coverage, price, and whether it still runs.

Proxycurl is on this table because a lot of teams comparing scrapers are replacing an enrichment API that shut down in July 2025.

ToolShapeLatencyCoveragePricingStatus
EdgesLinkedIn Actions APIp50 1.2s · p99 2.4s70+ actions · 750M profiles$39.99–$1.49 / 1k creditsLive
Bright DataProxy + datasetsUnlocker / dataset pullMulti-site · LinkedIn is one datasetDataset / bandwidth contractsLive
ProxycurlEnrichment APIPerson + company lookupsPlans no longer soldOffline July 4, 2025
PhantombusterBrowser phantomsScheduled cloud runPhantom catalog · multi-networkPer execution slotLive
ApifyActor marketplaceActor-dependentThird-party LinkedIn actorsActor fees + proxyLive
UnipileUnified inboxMessaging-firstDMs / channels · thin LinkedIn dataSeat / channelLive
Edges latency, coverage, and pricing are published figures. Competitor pricing from their public plans.All comparisons

// FAQ

Scraper questions, answered.

Migration patterns, ToS posture, and reliability commitments documented in detail.

01

What is a LinkedIn scraper?

People usually say “LinkedIn scraper” when they want to copy profile, company, or activity data from LinkedIn into a spreadsheet, CRM, or database—often with browser automation, extensions, or headless scripts. The term covers everything from one-off exports to large-scale pipelines. Edges is not a generic HTML scraper; it is a LinkedIn Actions API that returns structured JSON so you can automate workflows without maintaining fragile page parsers.

02

Is a LinkedIn scraper the same as a LinkedIn API?

Not exactly. A typical scraper reads whatever the website renders and breaks when layouts change. An API—like Edges—exposes consistent endpoints, schemas, and authentication so your integrations stay stable. Many teams outgrow scrapers precisely because engineering time goes to fixing selectors instead of shipping product.

03

Why do LinkedIn scraper setups stop working?

Public sites change markup, add friction for automated browsers, and throttle suspicious traffic. Scrapers also depend on cookies, sessions, and residential proxies that are expensive to operate. That combination means broken jobs, stale data, and on-call alerts. A unified API reduces that operational surface by design.

04

Who uses Edges instead of a traditional LinkedIn scraper?

Revenue teams building lead lists, recruiters sourcing candidates, growth teams enriching CRM records, and engineers wiring LinkedIn data into internal tools. If you need repeatable jobs, webhooks, and predictable JSON—not one-off HTML dumps—an API-first platform is usually a better fit.

05

Can Edges replace my enrichment or prospecting stack?

Edges focuses on running LinkedIn Actions through one API: people, companies, signals, and engagement-style workflows depending on what you enable in your account. Compare coverage in the action library and docs, then map endpoints to your use case. For pricing and limits, see the pricing page or talk to sales for enterprise volumes.

06

How do I get started with Edges?

Book a demo to walk through your workflow, read the documentation at docs.edges.run for authentication and endpoint reference, and explore the library of actions on edges.run/library. Your team can prototype against the API and scale usage as you harden pipelines.

07

Is Edges compliant with LinkedIn’s terms?

You are responsible for how you use any platform that touches LinkedIn data. LinkedIn’s terms and policies apply to your activity. Edges is built for teams that want a professional, API-oriented integration path rather than ad-hoc scraping—but you should review applicable terms and your legal guidance before deploying at scale.

08

Where can I see pricing and SLAs?

Public plans and calculators live on edges.run/pricing. For dedicated infrastructure, security reviews, and custom SLAs, see edges.run/enterprise and schedule a conversation with the team.

09

How fast is Edges compared to a LinkedIn scraper?

A live profile extract is p50 1.2s · p99 2.4s. That is a blocking HTTP call, not a queued browser job. Scrapers and phantoms add proxy rotation, rendering, and parse time on top of the page fetch — and they break when LinkedIn ships a UI change. If your product needs the record while a user is waiting, an action is the right primitive.

10

How does Edges pricing compare per profile?

Credits from $39.99 down to $1.49 per 1,000 records. linkedin-extract-people costs 1 credit per profile. At 50,000 profiles a month that sits in the $15.99 per 1,000 band — about $800 before identity fees — and Sales Navigator or signals share the same balance. Self-built scrapers look cheaper per call until you add proxy, accounts, and on-call; the fully-loaded sample on this page is the honest comparison.

11

Proxycurl shut down — is Edges the replacement?

For person and company lookups, yes. Proxycurl went offline on July 4, 2025 after LinkedIn Corp. v. Nubela. Map GET /api/v2/linkedin to linkedin-extract-people and the company endpoint to linkedin-extract-company. See the Proxycurl comparison for the full endpoint map and a one-day migration checklist.

The cleanest LinkedIn integration you'll ever ship.

Trade selectors for endpoints. Replace a scraper in one sprint.