LinkedIn Profile Scraper - People Search, No Login
Pricing
from $3.00 / 1,000 per-run start fees
LinkedIn Profile Scraper - People Search, No Login
LinkedIn scraper for public profiles. Search people by role and country, or paste profile URLs, and get name, role, current employer, location, follower and connection counts, About text and education. No login, no cookies. Pay only for profiles read.
Pricing
from $3.00 / 1,000 per-run start fees
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
6
Monthly active users
13 days ago
Last modified
Categories
Share
LinkedIn Profile Scraper: people search without cookies or login
This LinkedIn profile scraper reads public profiles. Describe the people you are looking for,
like ecommerce manager netherlands, or paste profile URLs you already have, and
get one row per person: name, role, current employer, location, follower and
connection counts, About text and education. Use it to scrape LinkedIn profiles
for lead lists, recruiting research or to refresh a CRM.
No LinkedIn account, no session cookie, nothing copied from your browser. Your own profile is never at risk because it is never used.
What you get
| Field | What it holds |
|---|---|
name, first_name, last_name | The person's name as shown on the profile |
headline | Their role, for profiles found through a search |
current_company | Current employer, from the profile page |
location | City, region and country as they wrote it |
followers, connections | Counts as displayed, such as 500+ |
about | The About text |
education | Schools, with degree and years where shown |
positions | Past and current employers with location |
photo_url, profile_url, slug | Picture and canonical link |
search, search_title, search_snippet | The phrase that found this person and what the index showed |
fetched, error | Whether the profile page was read, and why not if it was not |
Every row is public profile data: what anyone sees when they open a LinkedIn profile without signing in. There are no email addresses or phone numbers in the output, and private or restricted profiles stay private.
The one thing LinkedIn does not show
Job titles per position are not available. LinkedIn sends that field empty
to visitors who are not signed in, on every position of every profile we tested,
and it withholds the dates too. So positions tells you where someone worked,
not what they were called there.
That is why headline matters. The search index kept the person's role, the
live page carries the employer, and the row has both. One search returned "Edo
Voets - E-Commerce Manager" while the live page for the same person says "Moët
Hennessy Nederland BV". Neither half is complete on its own.
Each row also carries titles_available, normally false. If LinkedIn ever
starts serving titles, that flag turns true and the column fills itself.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
searches | list | empty; form prefill: ecommerce manager netherlands | One phrase per line, each a people search in the public profile index |
profileUrls | list | empty | Profiles you already have, as full links or bare slugs. Combine with searches or use alone |
maxProfiles | integer | 50 | Stop after this many profiles (1 to 1.000). Also the cost ceiling |
searchPages | integer | 3 | How deep to go per phrase (1 to 10). Each page adds roughly seven to eleven profiles |
country | string | nl | Two-letter code. Picks the search market and the language LinkedIn serves the profile in |
language | string | en | Two-letter language code for the search |
concurrency | integer | 3 | Profiles read at once (1 to 8) |
attempts | integer | 5 | Retries for a profile that refuses before it is marked blocked |
Give at least one search phrase or one profile URL. The form prefills a search phrase; API runs without either field return bad_input.
Output example
{"profile_url": "https://www.linkedin.com/in/williamhgates","slug": "williamhgates","handle": "williamhgates","name": "Bill Gates","first_name": "Bill","last_name": "Gates","current_company": "Gates Foundation","location": "Seattle, Washington, United States","followers": "41M","connections": "8","followers_count": 41000000,"connections_count": 8,"about": "Chair of the Gates Foundation. Founder of Breakthrough Energy. Co-founder of Microsoft…","positions": [{"title": null,"company": "Gates Foundation","location": null,"dates": null,"is_current": true}],"position_count": 1,"education": [{"school": "Harvard University","degree": null,"dates": "1973 - 1975"}],"photo_url": "https://media.licdn.com/dms/image/v2/D5603AQF-RYZP55jmXA/profile-displayphoto-shrink_200_200/B56ZRi8g.aGsAY-/0/1736826818802?e=2147483647&v=beta&t=bKWfN6UwwtiCqFWsG7rBELbd48qJOAMLdxhBzzkJV0k","titles_available": false,"search": null,"headline": null,"search_title": null,"search_snippet": null,"fetched": true,"error": null,"duration_seconds": 3.07,"position": 1,"source": "linkedin-profile-scraper","platform": "linkedin","fetched_at": "2026-10-02T18:43:58.546Z"}
This is an actual profile row retrieved on 2 October 2026 with the profile URL input. Fields from the search index appear when using people searches.
The original followers and connections fields remain displayed strings. Numeric equivalents are available as followers_count and connections_count; a displayed 500+ becomes the lower bound 500. handle is the decoded public profile slug, and fetched_at records when the row was read.
How to search LinkedIn profiles well
Write the phrase the way the person would describe themselves, because that is
what the index matched on. head of procurement retail germany works;
decision maker in supply chain does not, because nobody writes that on their
profile. Add the country or city to the phrase and set country to match.
A Dutch profile read with country: nl comes back with Dutch labels. Set the
country of the people you are after, not your own.
Use cases
Lead lists for B2B sales. Search ecommerce manager netherlands or
head of marketing fashion germany, and you get names, current employers and
roles in one table, ready to match against your CRM. Because the employer comes
from the live page and the role from the index, you can check a lead is still
at the company before you write to them.
Recruiting and talent mapping. Run a phrase per role and region, keep
location, education and positions, and you have a map of who does a job in
a market and where they came from, without a Recruiter seat.
Enriching a list you already have. Paste the profile URLs from your CRM or a
spreadsheet into profileUrls. Each comes back with current employer, location,
follower count and About text, so stale records show up as a changed
current_company.
Creator and executive research. Follower counts and About texts for a list of named people, for influencer shortlists or for a briefing before a meeting.
How this LinkedIn profile scraper compares
| This actor | harvestapi/linkedin-profile-scraper | harvestapi/linkedin-profile-search | |
|---|---|---|---|
| Per profile | $0,004 | $0,004 | $0,004 (Free plan) |
| Search pages | not billed | search is a separate actor | $0,10 per page (Free plan) |
| Run start | $0,003 | none | none |
| Emails | no | $0,01 per profile with email | $0,01 per profile with email |
| Cookies or login needed | no | no | no |
Prices from the Apify Store on 2 October 2026. Where they are ahead: they have far more users and reviews, and they sell email lookup, which this actor does not. Where this one fits: people search where you pay per profile read and nothing for the search pages.
Pricing
Pay per event. profile costs $0,004 for each profile actually read, $4,00 per
1.000, and run_start costs $0,003 once per run. Profiles that could not be
read are not billed: they still appear as rows with fetched: false and what
the index knew. You only pay for results you receive, with no per-compute-unit
charges.
On the Apify Free plan a run returns at most 10 profiles, at the same prices.
On a paid Apify plan maxProfiles applies in full, up to 1.000 per run.
Limits and gotchas
- No job titles or dates per position. See above;
headlineis the role. headlineonly comes with search. A profile passed as a URL has no index entry attached, so its row has the employer but no headline.- Access can change without warning. If a run that worked last week returns
blockedfor every profile, LinkedIn changed something; it is not your phrase. CompareprofilesReadwithprofilesFoundin the run summary. - Raise
attemptsif some profiles come backblocked. - Private and restricted profiles are not read, by design.
- Search depth is bounded by the index: roughly seven to eleven profiles per page, up to ten pages per phrase.
| Error code | Meaning |
|---|---|
blocked | The profile could not be read after every attempt |
search_failed | The index could not be searched for that phrase |
no_results | Nothing matched and no URLs were given |
bad_input | Neither a search phrase nor a URL was given |
FAQ
Can I scrape LinkedIn profiles without cookies? Yes. This actor needs no LinkedIn account and no session cookie, so there is no account of yours to get restricted.
Can I search LinkedIn people by job title and country?
Yes, as a phrase: ecommerce manager netherlands. Each phrase runs against the
public profile index and returns the matching profiles.
Does this LinkedIn scraper return email addresses? No. It returns public profile data only.
Why are job titles missing from the positions?
LinkedIn does not send them to visitors who are not signed in. The role you get
is the headline from the search index.
Is this a LinkedIn profile API? It works as one. Start a run through the Apify API with your phrases or profile URLs and read the rows from the dataset as JSON or CSV. It does not use the official LinkedIn API, which needs a partner agreement and does not offer people search to outsiders.
How many profiles can one run return?
Up to maxProfiles, at most 1.000. A search phrase yields roughly seven to eleven
profiles per page and up to ten pages, so use several phrases for larger lists.
Is there a free LinkedIn scraper option? You can try this one with the monthly credit that comes with an Apify Free plan account. Free-plan runs return up to 10 profiles each, so you can check the output on your own phrases before you upgrade. Search pages and unread profiles cost nothing on any plan.
Can I pass a list of LinkedIn profile URLs?
Yes, in profileUrls, as full links or bare slugs, with or without searches in
the same run.
Related Actors
- LinkedIn Jobs Scraper: job postings by keyword and location
- LinkedIn Ads Library: what a company is advertising on LinkedIn