LinkedIn Network Scraper avatar

LinkedIn Network Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
LinkedIn Network Scraper

LinkedIn Network Scraper

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScraperX

ScraperX

Maintained by Community

Actor stats

0

Bookmarked

0

Total users

0

Monthly active users

a day ago

Last modified

Share

LinkedIn Network Scraper — Export Your LinkedIn Connections with Dates, Headlines & Profile URLs

Export your own LinkedIn network into a clean, structured table. Every connection comes back with first and last name, headline, profile photo, vanity profile URL and — the field LinkedIn's own export makes hard to use — the exact date you connected, in both human-readable and ISO format.

Sorted most-recent-first, with optional date limits, so you can pull your whole network once and then run it daily to capture only what is new.


What you get

👤 Connection identity📅 Connection timing🖼️ Media
First name and last nameHuman-readable connection dateProfile picture URL (best available size)
Headline (current role)ISO-formatted connection date
Vanity name (profile slug)Sorted most recent first
Full profile URLDate-limited extraction

Key features

  • Connection dates you can actually sort. Each row carries both a readable date and an ISO YYYY-MM-DD field, so "who did I connect with in Q2?" becomes a spreadsheet filter.
  • "Today only" mode. One toggle captures just today's new connections — ideal as a daily automation that appends to a sheet or CRM.
  • Stop-at-date mode. Set a cut-off and the run stops as soon as connections get older than it — no wasted time or cost paging through years of history you already have.
  • Resume from any page. starting_page lets you continue a large export exactly where a previous run stopped (40 connections per page).
  • Row-by-row live saving. Every connection is written to the dataset as it is captured, so an interrupted run never loses what it already collected.
  • Full cookie-session support. Supply just li_at, or a complete exported cookie set (li_at, bcookie, bscookie, lidc, JSESSIONID…) for the most reliable authentication through proxies.
  • Smart proxy ladder. Starts on a direct connection, escalates to datacenter and then residential only when LinkedIn pushes back — and stays there. LinkedIn's 302 redirect/throttle is treated as a block signal, rotating through up to 6 fresh residential IPs, and challenge cookies are carried forward within an IP context.
  • Polite pacing with jitter. Your waiting time is randomised between n and 2n seconds between pages so the traffic pattern looks natural.

Use cases

  • Network backup & portability — own a structured copy of your professional network instead of relying on LinkedIn's UI.
  • CRM import — push your connections into HubSpot, Pipedrive or a spreadsheet with headline and profile link attached.
  • Daily network monitoring — schedule a "today only" run and log exactly who you connected with each day.
  • Outreach segmentation — filter your network by headline keywords to build targeted lists.
  • Connection growth analytics — chart connections per month using the ISO date field.
  • Post-event follow-up — after a conference, capture the connections you added that week and follow up systematically.
  • Recruiter & sales pipeline building — turn your accumulated network into a working prospect list.
  • Relationship auditing — see how long you have known each contact before reaching out.

How it works

  1. You supply your li_at cookie (or a full exported cookie session).
  2. The Actor authenticates against LinkedIn's Voyager API as you, and requests your connections sorted by most recently added.
  3. Pages of 40 connections are walked one at a time, with a randomised polite delay between them.
  4. Each connection is normalised into a flat row: name, headline, vanity name, profile URL, picture and connection date.
  5. Date limits are enforced — "today only" or "stop at date" ends the run as soon as the boundary is crossed.
  6. Rows are pushed to the dataset immediately, and the run log shows each captured connection in real time.

Quick start

  1. Sign in to LinkedIn in your browser.
  2. Open DevTools (F12) → ApplicationCookieshttps://www.linkedin.com.
  3. Copy the Value of the cookie named li_at.
  4. Paste it into the Actor's LinkedIn li_at Cookie field.
  5. Click Start, then export the Output tab as CSV, Excel or JSON.

Minimal input

{
"liAtCookie": "<YOUR_LI_AT_COOKIE>"
}

Input configuration

FieldTypeDefaultDescription
liAtCookiestring— (required)Your LinkedIn li_at session cookie. A full exported cookie session is also accepted for the most reliable authentication. The value is masked in the run interface.
starting_pageinteger1Which page of your network to start from. Each page holds 40 connections. Use this to resume a large export.
waiting_timenumber2Polite pause between pages, in seconds. Random jitter is applied (your value → your value × 2).
date_limit_todaybooleanfalseCapture only the connections you added today.
date_limit_strstringStop once connections are older than this date (YYYY-MM-DD). Leave empty to export everything.
proxyConfigurationobjectApify Proxy onThe Actor starts direct and escalates to datacenter, then residential, only if LinkedIn pushes back. Configure the residential country or groups here.

⚠️ Your cookie is your identity. li_at grants access to your LinkedIn account. Never share it, and be aware that automated activity can lead LinkedIn to restrict an account. Use conservative pacing and avoid running this constantly.


Output data

One row per connection.

FieldTypeDescription
firstNamestringConnection's first name.
lastNamestringConnection's last name.
headlinestringTheir LinkedIn headline (current role/company).
vanityNamestringProfile slug (the /in/<slug> part).
urlstringFull profile URL.
picturestringBest available profile picture URL.
connection_datestringWhen you connected, human-readable.
formated_connection_datestringThe same date in ISO format, for sorting and filtering.
componentRefstringInternal reference for the captured row.

Example output

{
"firstName": "Alex",
"lastName": "Example",
"headline": "Head of Growth at Example Analytics",
"vanityName": "alex-example",
"url": "https://www.linkedin.com/in/alex-example",
"picture": "https://media.licdn.com/dms/image/…",
"connection_date": "August 4, 2026",
"formated_connection_date": "2026-08-04",
"componentRef": "auto-component-6f1c…"
}

Illustrative values — a live run returns your own network data.


Usage examples

Full network export

{
"liAtCookie": "<YOUR_LI_AT_COOKIE>",
"waiting_time": 3
}

Daily new-connections log

{
"liAtCookie": "<YOUR_LI_AT_COOKIE>",
"date_limit_today": true
}

Save as a Task, attach a daily Schedule, and route the output to Google Sheets or Slack.

Incremental catch-up since your last export

{
"liAtCookie": "<YOUR_LI_AT_COOKIE>",
"date_limit_str": "2026-07-01"
}

Resume a large export

If a previous run stopped around connection 2,000:

{
"liAtCookie": "<YOUR_LI_AT_COOKIE>",
"starting_page": 51,
"waiting_time": 4
}

(50 pages × 40 connections = 2,000.)


Run it from your own code

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("scraperx/linkedin-network-scraper").call(run_input={
"liAtCookie": "<YOUR_LI_AT_COOKIE>",
"date_limit_str": "2026-01-01",
"waiting_time": 3,
})
for c in client.dataset(run["defaultDatasetId"]).iterate_items():
print(c["formated_connection_date"], c["firstName"], c["lastName"], "|", c["headline"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });
const run = await client.actor('scraperx/linkedin-network-scraper').call({
liAtCookie: '<YOUR_LI_AT_COOKIE>',
date_limit_today: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL

curl -X POST "https://api.apify.com/v2/acts/scraperx~linkedin-network-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"liAtCookie":"<YOUR_LI_AT_COOKIE>","date_limit_today":true}'

Integrations

Send connections to Google Sheets, Airtable, Slack, Make, Zapier, Google Drive or your CRM via webhooks. A daily "today only" run plus a Sheets integration gives you an automatic networking journal.


Pricing

Pay-per-event: a small Actor-start charge plus a charge per connection row delivered to your dataset. Date limits are the cheapest way to control cost — a daily incremental run only pays for the handful of new connections it finds.

Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during every run.


Limits & good to know

  • This exports your network, not someone else's. It reads the connections of whichever account the cookie belongs to.
  • 40 connections per page. starting_page is in pages, not connections — multiply by 40 to work out where to resume.
  • Cookies expire. If a run fails to authenticate, refresh your li_at value from the browser and try again.
  • Pace yourself. Very large networks scraped very fast are exactly what LinkedIn's throttling watches for. Raise waiting_time for networks over a few thousand connections.
  • LinkedIn throttling shows up as a 302 redirect. The Actor detects it and rotates through fresh residential IPs, but persistent throttling means you should slow down.
  • Profile pictures are LinkedIn CDN URLs and expire — download them promptly if you need the files.
  • E-mail addresses and phone numbers are not part of this output; LinkedIn does not expose them through this endpoint.
  • Default run options are 4 GB memory and a 1-hour timeout — raise the timeout for very large networks.

FAQ

Do I need my LinkedIn password? No — only the li_at session cookie, which you copy from your own browser.

Where exactly do I find li_at? Sign in to linkedin.com → DevTools (F12) → Application → Cookies → https://www.linkedin.com → copy the Value of li_at.

Is my cookie stored or shared? It is used only to authenticate the requests in your own run, and it is masked in the run interface. Treat it like a password regardless.

Can I scrape someone else's connections? No. LinkedIn only exposes your own network to you, and this Actor does not attempt anything else.

How do I get only new connections? Turn on date_limit_today for today's additions, or set date_limit_str to the date of your last export.

Why did the run stop early? Either a date limit was reached (expected), or LinkedIn throttled the session. Check the log — the Actor reports proxy escalations and blocks clearly.

Can I get connections' e-mail addresses? No. That data is not available through this endpoint.

Which export formats are supported? JSON, CSV, Excel (XLSX), XML and RSS. CSV works perfectly here — the rows are flat.


This Actor accesses your own LinkedIn network using your own session, in the same way your browser does. It does not access other people's private data or bypass any protection. Your connections' names, headlines and photos are personal data: if you export them into a CRM or use them for outreach, ensure you have a lawful basis under GDPR and comparable regulations, honour opt-outs, and comply with LinkedIn's User Agreement. Automated access can result in LinkedIn restricting an account — you are responsible for that risk.

Support

Need extra fields, a different pagination strategy, or a custom LinkedIn workflow? Open an issue on the Issues tab of this Actor.