LinkedIn Connections Exporter — Your Network + Full Profiles
Pricing
from $1.00 / 1,000 results
LinkedIn Connections Exporter — Your Network + Full Profiles
Export your own LinkedIn first-degree connections to CSV or JSON, each with name, headline, full work history, education and skills. No 1,000-contact cap. Or paste profile URLs. Runs on your own LinkedIn session. $0.001 per profile.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(4)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
5
Bookmarked
81
Total users
5
Monthly active users
3 hours
Issues response
3 days ago
Last modified
Categories
Share
Export your whole first-degree LinkedIn network in one run, with a full profile for every connection. Tick one box and the actor reads your own connection list, then scrapes each person on it: name, headline, location, about, full work history and education, as clean JSON or CSV. There is no 1,000-contact cap. You can also paste profile URLs, and those work without a cookie.
Exporting your connections needs your LinkedIn session, so that mode asks for your cookie. A list of profile URLs does not: leave the Cookies field empty and each profile is read as LinkedIn shows it to logged-out visitors, with no account of yours involved.
| Input | Cookie | Rows emitted |
|---|---|---|
| Profile URLs | not needed | One public profile per URL |
| Profile URLs | your cookie | One full profile per URL, adding volunteering, languages, certifications and LinkedIn's IDs |
| Your own connections (toggle, no URLs needed) | your cookie | One row per first-degree connection |
No browser and no headless Chrome. With your cookie the actor talks to LinkedIn's own internal API over plain HTTP; without one, public profiles come from a public-profile data source.
You pay per profile delivered: $0.001 each with your cookie, $0.003 without one. A run that returns nothing costs half a cent (the $0.005 start fee), never dollars.
Switching from another LinkedIn profile scraper?
If you've been burned elsewhere, here is exactly how this actor behaves on the failure modes people complain about most:
| What happens elsewhere | What happens here |
|---|---|
| "Charged $2 and got an empty JSON" | Profile charges fire only when a profile row lands in your dataset. Nothing delivered = $0.005 total for the run start, nothing more. |
| "Aborted runs charged in full" | Pay-per-event billing accrues per delivered row. Abort a run and you pay only for the profiles already in your dataset at that moment. |
| "Anomalous billing across runs" | Every event is listed on the pricing tab: $0.005 per run start, $0.001 per profile, and $0.002 more for a profile read without a cookie. A 1,000-profile run is about $1.01 with a cookie and $3.01 without, so you can predict the bill before you press Start. |
| Silent failures | A malformed or incomplete cookie stops the run within seconds with a plain-language explanation of what to fix, instead of burning your time and money first. |
Related LinkedIn Scrapers
- LinkedIn Company Profile Scraper — company details from About pages
- LinkedIn Search Jobs Scraper (Without Cookies) — job listings, no authentication
- LinkedIn Search Groups Scraper — find and extract groups
- LinkedIn Company Employees/People Scraper — employee profiles from companies
- LinkedIn People Search Scraper — search people by keyword, title, company or school
How it works
- With a cookie or without. Without one, the actor reads each profile's public view and nothing of yours is used. With one, it uses your own session, which LinkedIn requires for the full profile and for your connection list. Nothing is stored: the cookie is used for this run and discarded.
- It works out who to scrape. Either from the Start URLs you paste, or — with Scrape my own connections on — by reading your My Network list and turning every connection into a profile URL.
- It resolves each profile. With a cookie, the actor fetches the profile page, extracts the internal profile URN, then calls LinkedIn's own GraphQL endpoints for the top card and profile cards. Without one, it asks a public-profile data source for the profile and writes it under the same field names.
- It writes one row per person to the dataset, ready to export as JSON, CSV or Excel.
Logged-in traffic runs through residential proxy, because datacenter IPs get blocked.
Three ways to use it
A. Profile URLs, no cookie
Paste them into Start URLs and leave the Cookies field empty.
{"startUrls": [{ "url": "https://www.linkedin.com/in/williamhgates/" },{ "url": "https://www.linkedin.com/in/satyanadella/" }],"maxItems": 100}
You get each person's public profile: name, headline, location, about, current company, work history with dates, schools with degrees, top skills, and follower and connection counts. A profile its owner hides from logged-out visitors comes back as not found and is not billed; add your cookie to read those.
B. Profile URLs, with your cookie
Paste them into Start URLs, add your cookie, and leave the connections toggle off. The rows add volunteering, languages, certifications and LinkedIn's internal IDs.
{"startUrls": [{ "url": "https://www.linkedin.com/in/williamhgates/" },{ "url": "https://www.linkedin.com/in/satyanadella/" }],"cookies": [{ "name": "li_at", "value": "AQED...", "domain": ".linkedin.com" },{ "name": "JSESSIONID", "value": "ajax:...", "domain": ".linkedin.com" }],"maxItems": 100}
C. You want your own network
Most people cannot produce a list of their connections' profile URLs by hand. Turn on Scrape my own connections and leave Start URLs empty — the actor builds the list for you.
{"scrapeMyConnections": true,"maxConnections": 5000,"cookies": [{ "name": "li_at", "value": "AQED...", "domain": ".linkedin.com" },{ "name": "JSESSIONID", "value": "ajax:...", "domain": ".linkedin.com" }],"maxItems": 5000}
This reads your My Network → Connections list directly, so there is no 1,000-result search limit. Whether you have 300 connections or 12,000, it walks the whole list.
Input
| Field | Type | Required | Notes |
|---|---|---|---|
cookies | array | no | Leave empty to read public profiles without a login. For the full profile or your connections, paste the full EditThisCookie export, with li_at and JSESSIONID. |
scrapeMyConnections | boolean | no | Scrape your own first-degree connections instead of supplying URLs. Needs cookies. Default false. |
maxConnections | integer | no | Cap on connections enumerated when the toggle is on. Default 5000. |
startUrls | array | no | Profile URLs. Leave empty when the toggle is on. |
maxItems | integer | no | Max profiles scraped per run. Default 100. |
maxConcurrency | integer | no | Parallel requests. Default 10, which is also the most used for public profiles. |
maxRequestRetries | integer | no | Retries before giving up on a request. Default 10. |
proxy | object | no | Optional override. Leave empty to use the built-in residential proxy. |
Getting your cookie (optional)
- Install EditThisCookie for Chrome.
- Log in to linkedin.com in that browser.
- With linkedin.com open, click the extension icon and press Export.
- Clear the Cookies field in this actor and paste.
Paste the whole exported list, keeping the brackets. Both cookies are needed: li_at is the session, JSESSIONID is the CSRF token for LinkedIn's internal API. Pasting only the li_at value stops the run in a few seconds with an explanation rather than failing silently.
Output
One row per profile. Values below are illustrative. This is a row read with your cookie; the row without one follows below.
{"firstName": "Jane","lastName": "Doe","headline": "Product Operations Manager @ Panax | Chartered Accountant","location": "Melbourne, Victoria, Australia","publicIdentifier": "jane-doe-4242","profileUrl": "https://www.linkedin.com/in/jane-doe-4242","connectionDegree": "We don't know each other","about": "Chartered accountant turned product operator...","workHistory": [{"title": "Product Operations Manager","company": "Panax","date": "Aug 2023 - Present","location": "","description": ""}],"education": [{ "school": "The Hebrew University of Jerusalem", "degree": "", "date": "", "description": "" }],"volunteering": [],"languages": [],"certifications": [],"skills": [],"profileUrn": "urn:li:fsd_profile:ACoAA...","memberUrn": "urn:li:member:123456789","companyUrn": "urn:li:fsd_company:90915183","schoolUrn": "urn:li:fsd_school:41964","geoUrn": "urn:li:fsd_geo:100992797","userHandle": "jane-doe-4242","scrapedAt": "2026-10-15T09:00:00.000Z"}
Key fields
| Field | Description |
|---|---|
firstName, lastName | Name as displayed on the profile. |
headline | Professional headline. |
location | Display location, city through country. |
publicIdentifier | Profile slug, the part after linkedin.com/in/. |
profileUrl | Full profile URL. |
about | The About section. |
workHistory[] | title, company, date (for example Aug 2023 - Present), location, description. A title the profile does not show is left empty rather than guessed. |
education[] | school, degree, date, description. Dates and degrees are often empty: members hide them, and a date the actor cannot tie to a school is left out rather than guessed. |
volunteering[], languages[], certifications[] | Returned when the profile lists them. |
skills[] | Currently always empty. LinkedIn serves skills from a separate request the actor does not make yet. |
profileUrn, memberUrn, companyUrn, schoolUrn, geoUrn | LinkedIn's internal IDs, stable across name changes. geoUrn is the location's own ID. |
Without a cookie
The public view, with loggedIn: false so a dataset mixing both kinds of row can be filtered. Field names match the row above where the data is the same thing.
{"firstName": "Jane","lastName": "Doe","headline": "Product Operations Manager @ Panax | Chartered Accountant","location": "Melbourne, Victoria, Australia","publicIdentifier": "jane-doe-4242","profileUrl": "https://www.linkedin.com/in/jane-doe-4242","about": "Chartered accountant turned product operator...","currentCompany": "Panax","currentCompanyUrl": "https://www.linkedin.com/company/panax","followerCount": 1662,"connectionCount": 500,"workHistory": [{ "title": "Product Operations Manager", "company": "Panax", "companyUrl": "https://www.linkedin.com/company/90915183/", "date": "Aug 2023 - Present", "isCurrent": true }],"education": [{ "school": "The Hebrew University of Jerusalem", "schoolUrl": "https://www.linkedin.com/company/41964/", "degree": "BCom, Accounting", "date": "2012 - 2015" }],"skills": ["Product Operations", "Financial Modeling", "SQL"],"isPremium": false,"isVerified": true,"openToWork": false,"profilePictureUrl": "https://media.licdn.com/...","backgroundPictureUrl": "https://media.licdn.com/...","accountCreatedAt": "2016-03-14T10:22:05.000000+00:00","loggedIn": false,"userHandle": "jane-doe-4242","scrapedAt": "2026-10-15T09:00:00.000Z"}
skills holds the top three skills the profile shows. The first/last name split is the display name cut at the first space. Volunteering, languages, certifications, connection degree and the URNs need your cookie.
Pricing
Pay per event. No monthly rental.
| Event | When it fires | Price |
|---|---|---|
| Actor start | Once per run, per GB of memory | $0.005 |
| Dataset item | Each profile written | $0.001 |
| Profile without login | Each profile written by a run with no cookie, on top of the dataset item | $0.002 |
A 1,000-profile run costs about $1.01 with your cookie and $3.01 without one. The extra $0.002 pays for the public-profile lookup that replaces your session.
No profiles, no profile charges. Both profile events fire only when a profile row is actually written. A profile that does not exist or is hidden is not billed, and an empty run costs $0.005, full stop.
FAQ
Do I need a LinkedIn cookie? Not for profile URLs: leave the field empty and you get each person's public profile. You need one to export your own connections, for volunteering, languages, certifications and LinkedIn's IDs, and for profiles their owners hide from logged-out visitors.
Is my cookie stored? No. It is used for the requests in this run and nothing else.
Can this scrape someone else's connections? No. LinkedIn exposes a connection list only to the account that owns it. The toggle reads your own network, never anyone else's.
Why are some dates or fields empty? Members can hide them, and the actor leaves a field empty rather than guessing a value it cannot confirm.
Why is skills always empty?
LinkedIn serves skills from a separate request that this actor does not make yet. The maxSkills input is ready for when it does.
My run failed with an HTTP 999 or a redirect to login. The session expired. Log in to LinkedIn again, export a fresh cookie and re-run.
The run returned nothing — am I still charged? Only the $0.005 start fee. The profile charges fire per row written to your dataset, so a run with zero results can never cost you dollars.
Will this get my account restricted? Without a cookie your account is not involved at all. Any tool that uses your session carries some risk. Traffic runs through residential proxy and at modest concurrency to reduce it, but scrape at a sensible pace and avoid very large runs on a brand-new account.
🤖 For AI Agents & LLM Apps
Purpose: Extract LinkedIn profile records — identity, headline, location, about, work history, education — from profile URLs, or from the caller's own first-degree connection list.
Auth: None for profile URLs: omit cookies and each profile's public view is returned. The end user's LinkedIn session cookies (li_at + JSESSIONID, as an array of cookie objects) are needed for connection-list mode and for the fuller logged-in row.
Minimal tested input:
{"startUrls": [{"url":"https://www.linkedin.com/in/williamhgates/"}],"maxItems": 1}
Connection-list mode: set scrapeMyConnections: true and omit startUrls. Returns one row per first-degree connection of the cookie's owner. No 1,000-result cap.
Output fields, no cookie (loggedIn: false): firstName, lastName, headline, location, publicIdentifier, profileUrl, about, currentCompany, currentCompanyUrl, followerCount, connectionCount, workHistory[] (title, company, companyUrl, date, isCurrent), education[] (school, schoolUrl, degree, date), skills[] (top 3), isPremium, isVerified, openToWork, profilePictureUrl, backgroundPictureUrl, accountCreatedAt, userHandle, scrapedAt.
Output fields, with cookies: firstName, lastName, headline, location, publicIdentifier, profileUrl, connectionDegree, about, workHistory[] (title, company, date, location, description), education[] (school, degree, date, description), volunteering[], languages[], certifications[], skills[] (currently always empty), profileUrn, memberUrn, companyUrn, schoolUrn, geoUrn, userHandle, scrapedAt.
Billing: $0.005 per run start (per GB), $0.001 per profile returned, plus $0.002 (event public-profile) per profile returned without cookies.
Failure modes worth handling: without cookies, a deleted, mistyped or hidden profile is skipped and not billed, and the status message counts them; malformed cookies fail immediately with a descriptive status message; an expired session surfaces as HTTP 302/401/403 with a "cookie expired" message; hidden or unconfirmed fields come back as "" or [] rather than being omitted or guessed.
Additional Services
Custom fields, a full dataset, or a different LinkedIn surface — email muhamed.didovic@gmail.com.
Support
Issues and feature requests via the actor's Issues tab, or email above.
⚠️ Disclaimer
Without a cookie, this actor returns only what LinkedIn shows logged-out visitors. With one, it accesses only data visible to the logged-in account whose session you supply. Use it on data you are entitled to access, and comply with LinkedIn's Terms of Service and applicable data-protection law — including the GDPR and CCPA — when storing or processing results. Personal data carries obligations around lawful basis, retention and subject access. You are the data controller for anything you collect; the actor's author is not. Do not use output for unlawful discrimination, harassment, or unsolicited bulk messaging.
SEO Keywords
linkedin connections exporter, export linkedin connections to csv, download linkedin connections, linkedin network export, linkedin scraper, linkedin profile scraper, linkedin data extraction, scrape linkedin profiles, linkedin connections export, export linkedin connections, first degree connections, linkedin my network export, linkedin profile api, linkedin profile scraper no cookies, linkedin scraper without login, public linkedin profile data, linkedin lead generation, recruitment data, candidate sourcing, linkedin crawler, linkedin json export, linkedin csv export, professional profile data, linkedin employment history, b2b prospecting, sales navigator alternative, reliable linkedin profile scraper, best linkedin profile scraper, linkedin scraper pay per result, cheap linkedin profile scraper, linkedin profile scraper alternative, linkedin scraper transparent billing, apify linkedin actor