{
  "data": {
    "id": "nnSlE3quamyh9mnF2",
    "actId": "aRYPc8Jwy51XhOXM3",
    "userId": "GjS6nQ8qauOdq9KGy",
    "startedAt": "2026-09-01T10:29:02.737Z",
    "finishedAt": "2026-09-01T10:30:00.706Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "API"
    },
    "stats": {
      "durationMillis": 57907,
      "runTimeSecs": 57.907,
      "computeUnits": 0.06434111111111111,
      "imageSizeBytes": 635265536
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "tag": "latest",
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"LinkedIn Profile Scraper Input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"profiles\": {\n      \"title\": \"Profiles\",\n      \"type\": \"array\",\n      \"description\": \"LinkedIn profiles to scrape — one per row. Paste a username/handle (`williamhgates`) or a full profile URL (`https://www.linkedin.com/in/williamhgates/`). Country subdomains (e.g. `in.linkedin.com/in/...`) are handled automatically. Add as many as you like. Leave EMPTY to browse a popular default set of public profiles.\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"williamhgates\",\n        \"satyanadella\",\n        \"https://www.linkedin.com/in/jeffweiner08/\",\n        \"https://www.linkedin.com/in/reidhoffman/\"\n      ],\n      \"example\": [\n        \"williamhgates\",\n        \"satyanadella\"\n      ]\n    },\n    \"includeRecentActivity\": {\n      \"title\": \"Include recent activity\",\n      \"type\": \"boolean\",\n      \"description\": \"Also capture the member's most recent public posts/articles (title, URL, date, likes) that LinkedIn embeds on the page. Leave off for a lean, profile-only record.\",\n      \"default\": false\n    },\n    \"maxResults\": {\n      \"title\": \"Max results\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of profiles to scrape in one run. Caps large lists (and the popular default set) so runs stay fast and cheap. Raise it to pull your whole list.\",\n      \"default\": 100,\n      \"prefill\": 100,\n      \"minimum\": 1,\n      \"editor\": \"number\"\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration\",\n      \"type\": \"object\",\n      \"description\": \"Apify Proxy rotates IPs automatically. LinkedIn blocks datacenter IPs (HTTP 999), so the RESIDENTIAL group is used by default and gives the most reliable results. You can change the group if you know what you are doing.\",\n      \"editor\": \"proxy\",\n      \"prefill\": {\n        \"useApifyProxy\": true,\n        \"apifyProxyGroups\": [\n          \"RESIDENTIAL\"\n        ]\n      },\n      \"default\": {\n        \"useApifyProxy\": true,\n        \"apifyProxyGroups\": [\n          \"RESIDENTIAL\"\n        ]\n      }\n    }\n  },\n  \"required\": []\n}",
    "readme": "# LinkedIn Profile Scraper — Public People Data, No Login, No Cookies, No API Key\n\n![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify&logoColor=white) ![Login not required](https://img.shields.io/badge/Login-NOT%20required-2ecc71?logo=linkedin&logoColor=white) ![Cookies none](https://img.shields.io/badge/Cookies-NONE-2ecc71) ![Ban risk zero](https://img.shields.io/badge/Account%20ban%20risk-ZERO-2ecc71) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)\n\nScrape **public LinkedIn profiles (people data)** at scale — **no login, no cookies, no API key, zero account-ban risk.** Drop in a list of profile URLs or usernames and get back a clean, structured people dataset: **name, headline, location, job titles, employers with dates, education, follower count, ⭐ Top Voice / Creator badges, bio, photo and recent posts.** It reads only the public profile page LinkedIn already serves to logged-out visitors — pure HTTP, fast and stable — so **your account is never in the loop and there's nothing to flag or ban.**\n\n> ### 🏆 Why this LinkedIn profile scraper?\n> **18+ fields per profile** · **thousands of profiles per run** · **no `li_at` cookie, no login, zero ban risk** · pure-HTTP engine (no slow headless browser) · employers + schools with dates · Top Voice / Creator detection · export to JSON / CSV / Excel. The unofficial **LinkedIn API alternative** for lead enrichment, recruiting and influencer discovery — you keep your account, you keep your data, and you only pay for results you actually get.\n\n---\n\n## 😎 What makes it different (vs. cookie / login scrapers)\n\nMost LinkedIn people-scrapers make you paste your **session cookie** (`li_at`) or log in with your account. Scrape at any real volume and LinkedIn flags that session and **bans the account — often within 3–7 days.** This Actor reads **only the public profile page** LinkedIn serves to logged-out visitors — no login, no cookie, no account in the loop.\n\n| | 👤 **This LinkedIn Profile Scraper** | 🍪 Cookie / login scrapers |\n|---|:---:|:---:|\n| LinkedIn login required | **❌ Never** | ✅ Yes |\n| Session cookie (`li_at`) required | **❌ Never** | ✅ Yes |\n| Risk of an account getting **banned** | **🟢 Zero** | 🔴 High (3–7 days) |\n| Breaks when LinkedIn rotates tokens | **🟢 No** | 🔴 Constantly |\n| Engine | **⚡ Pure HTTP** | 🐢 Headless browser |\n| ⭐ Top Voice / Creator badge detection | **✅ Yes** | ⚠️ Rarely |\n| Employers + schools **with dates** | **✅ Yes** | ⚠️ Partial |\n| Setup before first run | **🟢 None** | 🔴 Cookie export, proxies |\n| Billing | **✅ Pay per result** | varies |\n\n---\n\n## ✨ What this Actor does / Key features\n\n- 🔓 **No login, no cookie, no ban risk** — reads only the logged-out public profile page; your account is never used.\n- ⚡ **Pure-HTTP engine** — no slow headless browser, with automatic session rotation and smart retries when LinkedIn throttles.\n- 👤 **Rich people data** — name, headline, bio, location, country, follower count, current company and job titles.\n- 🏢 **Full employer history** — `companies[]` with name, slug, URL and start/end dates.\n- 🎓 **Education** — `education[]` with school name, slug, URL and start/end years.\n- ⭐ **Badge detection** — `isTopVoice`, `isCreator` and a `badges[]` list.\n- 📰 **Recent activity** — the member's most recent public posts/articles (title, URL, date, likes), toggleable.\n- 🔗 **Chains cleanly** — every `companies[].url` and `education[].url` is a handle you can feed straight into the **LinkedIn Company Scraper**.\n- 🛡️ **Graceful at scale** — bad/removed profiles return a clear `error` field instead of crashing the run, so a 5,000-profile job always finishes.\n\n## 🚀 Quick start (3 steps)\n\n1. **Configure** — paste profiles into **Profiles**: full URLs (`https://www.linkedin.com/in/satyanadella/`) or bare usernames (`satyanadella`). Country subdomains (`in.linkedin.com/in/…`) are normalized automatically.\n2. **Run** — click **Start**. Rows stream into your dataset over a pure-HTTP engine (no browser extension, no proxy setup, no scraping your own account).\n3. **Get your data** — open the **Output** tab and export to **JSON, CSV, Excel or HTML**, or pull it via the Apify API.\n\n## 📥 Input\n\nGive the Actor a list of `profiles`. Everything else is optional.\n\n### Example — enrich a list of leads (URLs + usernames mixed)\n```json\n{\n  \"profiles\": [\n    \"https://www.linkedin.com/in/williamhgates/\",\n    \"satyanadella\",\n    \"https://www.linkedin.com/in/reidhoffman/\"\n  ],\n  \"includeRecentActivity\": true,\n  \"proxyConfiguration\": { \"useApifyProxy\": true }\n}\n```\n\n### Example — lean, profile-only output for a large list\n```json\n{\n  \"profiles\": [\"williamhgates\", \"satyanadella\", \"jeffweiner08\"],\n  \"includeRecentActivity\": false,\n  \"proxyConfiguration\": { \"useApifyProxy\": true, \"apifyProxyGroups\": [\"RESIDENTIAL\"] }\n}\n```\n\n### Example — influencer / creator discovery pass\n```json\n{\n  \"profiles\": [\"reidhoffman\", \"melindagates\", \"agrimes\"],\n  \"includeRecentActivity\": true\n}\n```\n\n| Field | Type | Description | Default |\n|-------|------|-------------|---------|\n| `profiles` | array | LinkedIn profile URLs or bare usernames. Country subdomains handled automatically. **Required.** | – |\n| `includeRecentActivity` | boolean | Also capture the member's most recent public posts/articles. Leave off for a lean, profile-only record. | `false` |\n| `proxyConfiguration` | object | Apify Proxy settings. Default (datacenter/auto) is cheapest; switch to RESIDENTIAL for very large lists or throttling. | Apify Proxy (auto) |\n\n## 📤 Output\n\nOne row per profile — **18+ fields**, exportable to JSON, CSV, Excel or HTML. Here is a trimmed sample record from a real run on `williamhgates`:\n\n```json\n{\n  \"name\": \"Bill Gates\",\n  \"headline\": \"Chair, Gates Foundation and Founder, Breakthrough Energy\",\n  \"location\": \"Seattle, Washington, United States\",\n  \"country\": \"US\",\n  \"followerCount\": 40381452,\n  \"jobTitles\": [\"Co-chair\", \"Founder\", \"Co-founder\"],\n  \"currentCompany\": \"Gates Foundation\",\n  \"companies\": [\n    { \"name\": \"Gates Foundation\", \"slug\": \"gates-foundation\", \"startDate\": 2000 },\n    { \"name\": \"Microsoft\", \"slug\": \"microsoft\", \"startDate\": 1975 }\n  ],\n  \"education\": [\n    { \"name\": \"Harvard University\", \"slug\": \"harvard-university\", \"startYear\": 1973, \"endYear\": 1975 }\n  ],\n  \"isTopVoice\": true,\n  \"isCreator\": true,\n  \"profileImageUrl\": \"https://media.licdn.com/dms/image/.../profile-displayphoto\",\n  \"username\": \"williamhgates\",\n  \"linkedinUrl\": \"https://www.linkedin.com/in/williamhgates\",\n  \"recentActivity\": [{ \"type\": \"article\", \"title\": \"…\", \"url\": \"…\", \"datePublished\": \"…\", \"likes\": 7331 }],\n  \"scrapedAt\": \"2026-07-06T12:00:00.000Z\"\n}\n```\n\n<details>\n<summary><b>📋 Full field reference (click to expand)</b></summary>\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `name` | string | Member full name |\n| `headline` | string | Professional headline |\n| `bio` | string | Profile \"about\" summary |\n| `location` | string | Human-readable location |\n| `country` | string | ISO country code |\n| `followerCount` | number | Follower count |\n| `jobTitles` | string[] | Current/recent job titles |\n| `currentCompany` | string | Current or most recent employer |\n| `companies` | array | Employers: `{ name, url, slug, startDate, endDate }` |\n| `education` | array | Schools: `{ name, url, slug, startYear, endYear }` |\n| `isTopVoice` | boolean | Has the LinkedIn Top Voice badge |\n| `isCreator` | boolean | In LinkedIn Creator mode |\n| `badges` | string[] | e.g. `[\"Creator\",\"Top Voice\"]` |\n| `profileImageUrl` | string | Profile photo URL |\n| `username` | string | Profile handle (vanity slug) |\n| `linkedinUrl` | string | Canonical profile URL |\n| `recentActivity` | array | Recent posts/articles: `{ type, title, url, datePublished, likes }` |\n| `error` | string | Present only on failed rows (bad/removed/throttled profile) |\n| `scrapedAt` | string | ISO 8601 scrape timestamp |\n\n</details>\n\n## 💡 Use cases\n\n- **Lead enrichment** — turn a list of profile URLs into structured intelligence (title, company, seniority, location, follower reach) and feed it straight into your CRM or outreach tool.\n- **Recruiting & sourcing** — enrich candidate shortlists with current role, full employer history and education in one pass instead of opening hundreds of tabs.\n- **Influencer & creator discovery** — filter `isTopVoice` / `isCreator` and high follower counts to surface credible voices in any niche — a targeted alternative to expensive influencer databases.\n- **CRM enrichment** — refresh contact records in HubSpot / Salesforce / Pipedrive with current job titles and employers on a schedule.\n- **Firmographic chaining** — feed each `companies[].url` into the **LinkedIn Company Scraper** for full company data.\n- **Data products & AI** — assemble a structured people dataset for your own app, model or RAG pipeline.\n\n## 👥 Who uses it\n\nSales & lead-gen teams enriching pipelines · recruiters and sourcers · growth marketers and influencer scouts · RevOps teams refreshing CRM data · founders building people-data products · analysts and researchers assembling structured datasets.\n\n## 💰 Pricing\n\nThis Actor runs on a simple **pay-per-result** model — you pay for the profiles you extract, with no separate Apify platform fees to calculate. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.\n\n## ❓ Frequently Asked Questions\n\n**Does this LinkedIn profile scraper need a login or cookie?**\nNo — and that's the whole point. It only reads the public profile page LinkedIn serves to logged-out visitors. No login, no `li_at` session cookie, no API key. Your account is never used, so it can't be flagged, throttled or banned.\n\n**Is this a LinkedIn API alternative?**\nYes. LinkedIn has no open public profile API, so this Actor is a practical LinkedIn API alternative for profile data extraction — feed usernames or URLs and get structured people data back, no API key or developer access needed.\n\n**Can I scrape LinkedIn profiles without login or an API key?**\nYes — that's the core design. The Actor reads only the public profile page, so you scrape LinkedIn without login, without a session cookie and without any API key.\n\n**How many profiles can I scrape per run?**\nAs many as you want — feed a list of any size and results stream straight into your dataset. You only pay per result.\n\n**A profile came back with an `error` field — why?**\nThe username was wrong, the profile is private/removed, or it was throttled after all retries. Re-run those items, ideally with RESIDENTIAL proxy.\n\n**Where do I get a list of profile URLs to feed in?**\nYour CRM, an export from a search tool, your existing connections, or the `companies[].url` links from the **LinkedIn Company Scraper**. This Actor is the **enrichment** step — give it identifiers, get back rich structured data.\n\n**How do I export LinkedIn profile data to CSV or Excel in bulk?**\nFeed a bulk list of profiles in one run; every result streams into a dataset you can export to CSV, JSON or Excel, or pull live via API and webhooks — ready for your CRM, spreadsheet or outreach tool.\n\n**How much data can I get?**\nThousands of profiles per run, with 18+ fields each including full employer and education history.\n\n**Is scraping LinkedIn profiles legal?**\nIt collects only **publicly visible** profile information — the same data anyone sees without logging in. Because this is personal data, you're responsible for using the output in line with LinkedIn's terms and applicable privacy laws (GDPR/CCPA) in your region. This tool does not collect private or login-gated data.\n\n## 🔗 More social & B2B data by logiover\n\nPair the profile scraper with the rest of the people- and company-intelligence suite:\n\n| Actor | What it does |\n|---|---|\n| [LinkedIn Company Scraper](https://apify.com/logiover/linkedin-company-scraper) | Full firmographics for every employer (no login) |\n| [LinkedIn Jobs Scraper](https://apify.com/logiover/linkedin-jobs-scraper) | Job listings by keyword and location (no login) |\n| [LinkedIn Top Content Scraper](https://apify.com/logiover/linkedin-top-content-scraper) | Top-performing public LinkedIn posts and articles |\n| [X / Twitter Profile Email Scraper](https://apify.com/logiover/x-profile-email-scraper) | Public emails and contacts from X profiles |\n| [YouTube Influencer Discovery Scraper](https://apify.com/logiover/youtube-influencer-discovery-scraper) | Discover creators by niche with reach and contact data |\n| [YouTube Creator Email Finder](https://apify.com/logiover/youtube-creator-email-finder) | Find creator business emails at scale |\n| [TikTok Creator Lead Finder](https://apify.com/logiover/tiktok-creator-lead-finder) | Surface TikTok creators with follower and contact data |\n| [Website Contact Scraper](https://apify.com/logiover/website-contact-scraper) | Emails, phones and socials from any website |\n| [B2B Lead Scraper](https://apify.com/logiover/b2b-lead-scraper) | Company + person + email leads by sector and country |\n| [Instagram Media Downloader](https://apify.com/logiover/instagram-media-downloader) | Download Instagram media and metadata |\n| [Product Hunt Daily Launches Scraper](https://apify.com/logiover/product-hunt-daily-launches-scraper) | Founders, makers and launches from Product Hunt |\n| [Meetup Scraper](https://apify.com/logiover/meetup-scraper) | Events, groups and attendee counts from Meetup |\n\n👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.\n\n## ⏰ Scheduling & integration\n\nSchedule this Actor on Apify to keep your CRM enriched daily or weekly. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to HubSpot, Salesforce, your database, BI tools and webhooks through the Apify API. Connect it to **Make, n8n or Zapier** to enrich new leads automatically.\n\n## ⭐ Support & feedback\n\nFound a bug or need an extra field? Open an issue on the **Issues** tab — response is usually fast. If this Actor saves you time, a **★★★★★ review** on the Store page genuinely helps and is hugely appreciated. 🙏\n\n## ⚖️ Legal\n\nNot affiliated with, endorsed by, or sponsored by LinkedIn. \"LinkedIn\" is a trademark of LinkedIn Corporation. This Actor accesses only publicly available profile data that LinkedIn serves to logged-out visitors and does not collect private or login-gated data. Because profile data is personal data, you are responsible for using the output responsibly and in compliance with LinkedIn's terms and applicable privacy laws (GDPR/CCPA) in your region.\n\n---\n\n## 📝 Changelog\n\n<!-- maint-2026-08-01 -->\n### 2026-08-01\n\n- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.\n- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.\n- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.\n\n<!-- maint-2026-08-01-stage -->\n### 2026-08-01 — Health-check remediation\n\n- August 2026 monthly health-check remediation is in progress; this build contains fixes verified from empty/default, Console-default, targeted live probes, or field-level semantic review.\n- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.\n- The final four-input matrix verdict will be appended after post-build cloud revalidation.\n\n### 2026-07-11\n- ⚡ Cleaner input: removed the low-level `maxConcurrency` knob (handled automatically) so the Actor runs great out of the box with just a profile list.\n- 🖥️ Fixed the run **Output** tab so results render and export correctly.\n- 📚 Docs refreshed to match the simplified input.\n\n### 2026-07-06\n- ✨ README overhaul: restructured to the full field-reference + example-scenario format, added shields badges and a social/B2B cross-promo grid, kept the no-login / no-ban comparison, and clarified the quick-start.\n\n### 2026-07-01\n- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.\n- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.\n- Added ready-to-run example tasks that cover common real-world use cases.\n\n### 2026-06-15\n- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.\n\n### 2026-06-07\n- Docs: added coverage for LinkedIn API alternative, bulk profile data export to CSV/JSON, and scraping profiles without login or API key.\n\n### 2026-06-05\n- 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).\n- ⚡ Stability & performance hardening; fresh rebuild.\n\n### 2026-06-04\n- Verified live & refreshed build — reliability/maintenance pass.\n\n---\n\n*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).\n",
    "changelog": "# Changelog\n\n## 2026-09-01\n\n- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.\n- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.\n- No change to input, output fields or scraping logic.\n\n## 2026-08-11\n\n- Maintenance release: refreshed the build and dependencies.\n- Re-verified live execution, non-empty structured output and dataset field/type integrity.\n- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.\n\n## 2026-08-01\n\n- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.\n- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.\n- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.\n\n## 2026-07-18\n\n- Fixed field mixing between `education` and `companies`. LinkedIn's JSON-LD now files board memberships under `alumniOf` (e.g. Starbucks, The Business Council, Fred Hutch) and some schools under `worksFor` (e.g. University of Chicago); the parser previously mapped `alumniOf`→education and `worksFor`→companies blindly, so schools and board seats landed in the wrong arrays.\n- Both source arrays are now pooled and each organisation is classified: schools (by JSON-LD `EducationalOrganization`/`CollegeOrUniversity` type, a `/school/` URL, or a school-name heuristic) go to `education`; everything else (employers and board roles) goes to `companies`. Results are de-duplicated per array.\n- Output field keys and shapes are unchanged (`companies` keep `startDate`/`endDate`, `education` keep `startYear`/`endYear`); `currentCompany` and all core fields (name, headline, bio, location, followerCount, image, badges) are untouched.\n\n## 2026-07-12\n\n- Empty input now works: running with `{}` browses a popular default set of public profiles instead of erroring — the Actor always returns data out of the box.\n- No filters are mandatory anymore (`profiles` is optional).\n- Added a `maxResults` option (default 100) to bound large lists and the default run so it stays fast and cheap.\n- Made the run graceful — the crawler is wrapped so an early stop is logged and already-scraped records are kept (run still finishes successfully).\n- Default proxy group is now RESIDENTIAL (LinkedIn blocks datacenter IPs with HTTP 999) for far more reliable results out of the box.\n- Added per-field titles/descriptions to the dataset schema for a clearer Dataset view and cleaner exports.\n\n## 2026-06-28\n\n- Health check passed — actor verified working end-to-end on Apify platform.\n- Changelog refreshed for Store quality compliance.\n\n## 2026-06-20\n\n- Maintenance & reliability pass: re-verified end-to-end against live data and confirmed the Actor completes successfully within the 5-minute quality window on the default input.\n- Refreshed the prefilled example input and tuned run defaults for faster, lower-cost runs.\n\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "linkedin-profile-scraper",
      "title": "LinkedIn Profile Scraper - No Login, No Cookies",
      "description": "Scrape public LinkedIn profiles without login, cookies, or API keys. Extract name, headline, location, job titles, employers, education, followers, Top Voice badge, bio & photo. No account ban risk.",
      "version": "0.0",
      "dockerfile": "../Dockerfile",
      "readme": "# LinkedIn Profile Scraper — Public People Data, No Login, No Cookies, No API Key\n\n![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify&logoColor=white) ![Login not required](https://img.shields.io/badge/Login-NOT%20required-2ecc71?logo=linkedin&logoColor=white) ![Cookies none](https://img.shields.io/badge/Cookies-NONE-2ecc71) ![Ban risk zero](https://img.shields.io/badge/Account%20ban%20risk-ZERO-2ecc71) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)\n\nScrape **public LinkedIn profiles (people data)** at scale — **no login, no cookies, no API key, zero account-ban risk.** Drop in a list of profile URLs or usernames and get back a clean, structured people dataset: **name, headline, location, job titles, employers with dates, education, follower count, ⭐ Top Voice / Creator badges, bio, photo and recent posts.** It reads only the public profile page LinkedIn already serves to logged-out visitors — pure HTTP, fast and stable — so **your account is never in the loop and there's nothing to flag or ban.**\n\n> ### 🏆 Why this LinkedIn profile scraper?\n> **18+ fields per profile** · **thousands of profiles per run** · **no `li_at` cookie, no login, zero ban risk** · pure-HTTP engine (no slow headless browser) · employers + schools with dates · Top Voice / Creator detection · export to JSON / CSV / Excel. The unofficial **LinkedIn API alternative** for lead enrichment, recruiting and influencer discovery — you keep your account, you keep your data, and you only pay for results you actually get.\n\n---\n\n## 😎 What makes it different (vs. cookie / login scrapers)\n\nMost LinkedIn people-scrapers make you paste your **session cookie** (`li_at`) or log in with your account. Scrape at any real volume and LinkedIn flags that session and **bans the account — often within 3–7 days.** This Actor reads **only the public profile page** LinkedIn serves to logged-out visitors — no login, no cookie, no account in the loop.\n\n| | 👤 **This LinkedIn Profile Scraper** | 🍪 Cookie / login scrapers |\n|---|:---:|:---:|\n| LinkedIn login required | **❌ Never** | ✅ Yes |\n| Session cookie (`li_at`) required | **❌ Never** | ✅ Yes |\n| Risk of an account getting **banned** | **🟢 Zero** | 🔴 High (3–7 days) |\n| Breaks when LinkedIn rotates tokens | **🟢 No** | 🔴 Constantly |\n| Engine | **⚡ Pure HTTP** | 🐢 Headless browser |\n| ⭐ Top Voice / Creator badge detection | **✅ Yes** | ⚠️ Rarely |\n| Employers + schools **with dates** | **✅ Yes** | ⚠️ Partial |\n| Setup before first run | **🟢 None** | 🔴 Cookie export, proxies |\n| Billing | **✅ Pay per result** | varies |\n\n---\n\n## ✨ What this Actor does / Key features\n\n- 🔓 **No login, no cookie, no ban risk** — reads only the logged-out public profile page; your account is never used.\n- ⚡ **Pure-HTTP engine** — no slow headless browser, with automatic session rotation and smart retries when LinkedIn throttles.\n- 👤 **Rich people data** — name, headline, bio, location, country, follower count, current company and job titles.\n- 🏢 **Full employer history** — `companies[]` with name, slug, URL and start/end dates.\n- 🎓 **Education** — `education[]` with school name, slug, URL and start/end years.\n- ⭐ **Badge detection** — `isTopVoice`, `isCreator` and a `badges[]` list.\n- 📰 **Recent activity** — the member's most recent public posts/articles (title, URL, date, likes), toggleable.\n- 🔗 **Chains cleanly** — every `companies[].url` and `education[].url` is a handle you can feed straight into the **LinkedIn Company Scraper**.\n- 🛡️ **Graceful at scale** — bad/removed profiles return a clear `error` field instead of crashing the run, so a 5,000-profile job always finishes.\n\n## 🚀 Quick start (3 steps)\n\n1. **Configure** — paste profiles into **Profiles**: full URLs (`https://www.linkedin.com/in/satyanadella/`) or bare usernames (`satyanadella`). Country subdomains (`in.linkedin.com/in/…`) are normalized automatically.\n2. **Run** — click **Start**. Rows stream into your dataset over a pure-HTTP engine (no browser extension, no proxy setup, no scraping your own account).\n3. **Get your data** — open the **Output** tab and export to **JSON, CSV, Excel or HTML**, or pull it via the Apify API.\n\n## 📥 Input\n\nGive the Actor a list of `profiles`. Everything else is optional.\n\n### Example — enrich a list of leads (URLs + usernames mixed)\n```json\n{\n  \"profiles\": [\n    \"https://www.linkedin.com/in/williamhgates/\",\n    \"satyanadella\",\n    \"https://www.linkedin.com/in/reidhoffman/\"\n  ],\n  \"includeRecentActivity\": true,\n  \"proxyConfiguration\": { \"useApifyProxy\": true }\n}\n```\n\n### Example — lean, profile-only output for a large list\n```json\n{\n  \"profiles\": [\"williamhgates\", \"satyanadella\", \"jeffweiner08\"],\n  \"includeRecentActivity\": false,\n  \"proxyConfiguration\": { \"useApifyProxy\": true, \"apifyProxyGroups\": [\"RESIDENTIAL\"] }\n}\n```\n\n### Example — influencer / creator discovery pass\n```json\n{\n  \"profiles\": [\"reidhoffman\", \"melindagates\", \"agrimes\"],\n  \"includeRecentActivity\": true\n}\n```\n\n| Field | Type | Description | Default |\n|-------|------|-------------|---------|\n| `profiles` | array | LinkedIn profile URLs or bare usernames. Country subdomains handled automatically. **Required.** | – |\n| `includeRecentActivity` | boolean | Also capture the member's most recent public posts/articles. Leave off for a lean, profile-only record. | `false` |\n| `proxyConfiguration` | object | Apify Proxy settings. Default (datacenter/auto) is cheapest; switch to RESIDENTIAL for very large lists or throttling. | Apify Proxy (auto) |\n\n## 📤 Output\n\nOne row per profile — **18+ fields**, exportable to JSON, CSV, Excel or HTML. Here is a trimmed sample record from a real run on `williamhgates`:\n\n```json\n{\n  \"name\": \"Bill Gates\",\n  \"headline\": \"Chair, Gates Foundation and Founder, Breakthrough Energy\",\n  \"location\": \"Seattle, Washington, United States\",\n  \"country\": \"US\",\n  \"followerCount\": 40381452,\n  \"jobTitles\": [\"Co-chair\", \"Founder\", \"Co-founder\"],\n  \"currentCompany\": \"Gates Foundation\",\n  \"companies\": [\n    { \"name\": \"Gates Foundation\", \"slug\": \"gates-foundation\", \"startDate\": 2000 },\n    { \"name\": \"Microsoft\", \"slug\": \"microsoft\", \"startDate\": 1975 }\n  ],\n  \"education\": [\n    { \"name\": \"Harvard University\", \"slug\": \"harvard-university\", \"startYear\": 1973, \"endYear\": 1975 }\n  ],\n  \"isTopVoice\": true,\n  \"isCreator\": true,\n  \"profileImageUrl\": \"https://media.licdn.com/dms/image/.../profile-displayphoto\",\n  \"username\": \"williamhgates\",\n  \"linkedinUrl\": \"https://www.linkedin.com/in/williamhgates\",\n  \"recentActivity\": [{ \"type\": \"article\", \"title\": \"…\", \"url\": \"…\", \"datePublished\": \"…\", \"likes\": 7331 }],\n  \"scrapedAt\": \"2026-07-06T12:00:00.000Z\"\n}\n```\n\n<details>\n<summary><b>📋 Full field reference (click to expand)</b></summary>\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `name` | string | Member full name |\n| `headline` | string | Professional headline |\n| `bio` | string | Profile \"about\" summary |\n| `location` | string | Human-readable location |\n| `country` | string | ISO country code |\n| `followerCount` | number | Follower count |\n| `jobTitles` | string[] | Current/recent job titles |\n| `currentCompany` | string | Current or most recent employer |\n| `companies` | array | Employers: `{ name, url, slug, startDate, endDate }` |\n| `education` | array | Schools: `{ name, url, slug, startYear, endYear }` |\n| `isTopVoice` | boolean | Has the LinkedIn Top Voice badge |\n| `isCreator` | boolean | In LinkedIn Creator mode |\n| `badges` | string[] | e.g. `[\"Creator\",\"Top Voice\"]` |\n| `profileImageUrl` | string | Profile photo URL |\n| `username` | string | Profile handle (vanity slug) |\n| `linkedinUrl` | string | Canonical profile URL |\n| `recentActivity` | array | Recent posts/articles: `{ type, title, url, datePublished, likes }` |\n| `error` | string | Present only on failed rows (bad/removed/throttled profile) |\n| `scrapedAt` | string | ISO 8601 scrape timestamp |\n\n</details>\n\n## 💡 Use cases\n\n- **Lead enrichment** — turn a list of profile URLs into structured intelligence (title, company, seniority, location, follower reach) and feed it straight into your CRM or outreach tool.\n- **Recruiting & sourcing** — enrich candidate shortlists with current role, full employer history and education in one pass instead of opening hundreds of tabs.\n- **Influencer & creator discovery** — filter `isTopVoice` / `isCreator` and high follower counts to surface credible voices in any niche — a targeted alternative to expensive influencer databases.\n- **CRM enrichment** — refresh contact records in HubSpot / Salesforce / Pipedrive with current job titles and employers on a schedule.\n- **Firmographic chaining** — feed each `companies[].url` into the **LinkedIn Company Scraper** for full company data.\n- **Data products & AI** — assemble a structured people dataset for your own app, model or RAG pipeline.\n\n## 👥 Who uses it\n\nSales & lead-gen teams enriching pipelines · recruiters and sourcers · growth marketers and influencer scouts · RevOps teams refreshing CRM data · founders building people-data products · analysts and researchers assembling structured datasets.\n\n## 💰 Pricing\n\nThis Actor runs on a simple **pay-per-result** model — you pay for the profiles you extract, with no separate Apify platform fees to calculate. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.\n\n## ❓ Frequently Asked Questions\n\n**Does this LinkedIn profile scraper need a login or cookie?**\nNo — and that's the whole point. It only reads the public profile page LinkedIn serves to logged-out visitors. No login, no `li_at` session cookie, no API key. Your account is never used, so it can't be flagged, throttled or banned.\n\n**Is this a LinkedIn API alternative?**\nYes. LinkedIn has no open public profile API, so this Actor is a practical LinkedIn API alternative for profile data extraction — feed usernames or URLs and get structured people data back, no API key or developer access needed.\n\n**Can I scrape LinkedIn profiles without login or an API key?**\nYes — that's the core design. The Actor reads only the public profile page, so you scrape LinkedIn without login, without a session cookie and without any API key.\n\n**How many profiles can I scrape per run?**\nAs many as you want — feed a list of any size and results stream straight into your dataset. You only pay per result.\n\n**A profile came back with an `error` field — why?**\nThe username was wrong, the profile is private/removed, or it was throttled after all retries. Re-run those items, ideally with RESIDENTIAL proxy.\n\n**Where do I get a list of profile URLs to feed in?**\nYour CRM, an export from a search tool, your existing connections, or the `companies[].url` links from the **LinkedIn Company Scraper**. This Actor is the **enrichment** step — give it identifiers, get back rich structured data.\n\n**How do I export LinkedIn profile data to CSV or Excel in bulk?**\nFeed a bulk list of profiles in one run; every result streams into a dataset you can export to CSV, JSON or Excel, or pull live via API and webhooks — ready for your CRM, spreadsheet or outreach tool.\n\n**How much data can I get?**\nThousands of profiles per run, with 18+ fields each including full employer and education history.\n\n**Is scraping LinkedIn profiles legal?**\nIt collects only **publicly visible** profile information — the same data anyone sees without logging in. Because this is personal data, you're responsible for using the output in line with LinkedIn's terms and applicable privacy laws (GDPR/CCPA) in your region. This tool does not collect private or login-gated data.\n\n## 🔗 More social & B2B data by logiover\n\nPair the profile scraper with the rest of the people- and company-intelligence suite:\n\n| Actor | What it does |\n|---|---|\n| [LinkedIn Company Scraper](https://apify.com/logiover/linkedin-company-scraper) | Full firmographics for every employer (no login) |\n| [LinkedIn Jobs Scraper](https://apify.com/logiover/linkedin-jobs-scraper) | Job listings by keyword and location (no login) |\n| [LinkedIn Top Content Scraper](https://apify.com/logiover/linkedin-top-content-scraper) | Top-performing public LinkedIn posts and articles |\n| [X / Twitter Profile Email Scraper](https://apify.com/logiover/x-profile-email-scraper) | Public emails and contacts from X profiles |\n| [YouTube Influencer Discovery Scraper](https://apify.com/logiover/youtube-influencer-discovery-scraper) | Discover creators by niche with reach and contact data |\n| [YouTube Creator Email Finder](https://apify.com/logiover/youtube-creator-email-finder) | Find creator business emails at scale |\n| [TikTok Creator Lead Finder](https://apify.com/logiover/tiktok-creator-lead-finder) | Surface TikTok creators with follower and contact data |\n| [Website Contact Scraper](https://apify.com/logiover/website-contact-scraper) | Emails, phones and socials from any website |\n| [B2B Lead Scraper](https://apify.com/logiover/b2b-lead-scraper) | Company + person + email leads by sector and country |\n| [Instagram Media Downloader](https://apify.com/logiover/instagram-media-downloader) | Download Instagram media and metadata |\n| [Product Hunt Daily Launches Scraper](https://apify.com/logiover/product-hunt-daily-launches-scraper) | Founders, makers and launches from Product Hunt |\n| [Meetup Scraper](https://apify.com/logiover/meetup-scraper) | Events, groups and attendee counts from Meetup |\n\n👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.\n\n## ⏰ Scheduling & integration\n\nSchedule this Actor on Apify to keep your CRM enriched daily or weekly. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to HubSpot, Salesforce, your database, BI tools and webhooks through the Apify API. Connect it to **Make, n8n or Zapier** to enrich new leads automatically.\n\n## ⭐ Support & feedback\n\nFound a bug or need an extra field? Open an issue on the **Issues** tab — response is usually fast. If this Actor saves you time, a **★★★★★ review** on the Store page genuinely helps and is hugely appreciated. 🙏\n\n## ⚖️ Legal\n\nNot affiliated with, endorsed by, or sponsored by LinkedIn. \"LinkedIn\" is a trademark of LinkedIn Corporation. This Actor accesses only publicly available profile data that LinkedIn serves to logged-out visitors and does not collect private or login-gated data. Because profile data is personal data, you are responsible for using the output responsibly and in compliance with LinkedIn's terms and applicable privacy laws (GDPR/CCPA) in your region.\n\n---\n\n## 📝 Changelog\n\n<!-- maint-2026-08-01 -->\n### 2026-08-01\n\n- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.\n- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.\n- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.\n\n<!-- maint-2026-08-01-stage -->\n### 2026-08-01 — Health-check remediation\n\n- August 2026 monthly health-check remediation is in progress; this build contains fixes verified from empty/default, Console-default, targeted live probes, or field-level semantic review.\n- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.\n- The final four-input matrix verdict will be appended after post-build cloud revalidation.\n\n### 2026-07-11\n- ⚡ Cleaner input: removed the low-level `maxConcurrency` knob (handled automatically) so the Actor runs great out of the box with just a profile list.\n- 🖥️ Fixed the run **Output** tab so results render and export correctly.\n- 📚 Docs refreshed to match the simplified input.\n\n### 2026-07-06\n- ✨ README overhaul: restructured to the full field-reference + example-scenario format, added shields badges and a social/B2B cross-promo grid, kept the no-login / no-ban comparison, and clarified the quick-start.\n\n### 2026-07-01\n- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.\n- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.\n- Added ready-to-run example tasks that cover common real-world use cases.\n\n### 2026-06-15\n- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.\n\n### 2026-06-07\n- Docs: added coverage for LinkedIn API alternative, bulk profile data export to CSV/JSON, and scraping profiles without login or API key.\n\n### 2026-06-05\n- 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).\n- ⚡ Stability & performance hardening; fresh rebuild.\n\n### 2026-06-04\n- Verified live & refreshed build — reliability/maintenance pass.\n\n---\n\n*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).\n",
      "input": {
        "title": "LinkedIn Profile Scraper Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "profiles": {
            "title": "Profiles",
            "type": "array",
            "description": "LinkedIn profiles to scrape — one per row. Paste a username/handle (`williamhgates`) or a full profile URL (`https://www.linkedin.com/in/williamhgates/`). Country subdomains (e.g. `in.linkedin.com/in/...`) are handled automatically. Add as many as you like. Leave EMPTY to browse a popular default set of public profiles.",
            "editor": "stringList",
            "prefill": [
              "williamhgates",
              "satyanadella",
              "https://www.linkedin.com/in/jeffweiner08/",
              "https://www.linkedin.com/in/reidhoffman/"
            ],
            "example": [
              "williamhgates",
              "satyanadella"
            ]
          },
          "includeRecentActivity": {
            "title": "Include recent activity",
            "type": "boolean",
            "description": "Also capture the member's most recent public posts/articles (title, URL, date, likes) that LinkedIn embeds on the page. Leave off for a lean, profile-only record.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "type": "integer",
            "description": "Maximum number of profiles to scrape in one run. Caps large lists (and the popular default set) so runs stay fast and cheap. Raise it to pull your whole list.",
            "default": 100,
            "prefill": 100,
            "minimum": 1,
            "editor": "number"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy rotates IPs automatically. LinkedIn blocks datacenter IPs (HTTP 999), so the RESIDENTIAL group is used by default and gives the most reliable results. You can change the group if you know what you are doing.",
            "editor": "proxy",
            "prefill": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            },
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        },
        "required": []
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "LinkedIn Profile Scraper Output",
        "description": "Public member profiles scraped from LinkedIn without login.",
        "properties": {
          "results": {
            "type": "string",
            "title": "Results",
            "description": "All structured records produced by this run. Open the Dataset tab to inspect or export them.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "fields": {
            "type": "object",
            "properties": {
              "linkedinUrl": {
                "title": "LinkedIn URL",
                "description": "Canonical URL of the member profile."
              },
              "username": {
                "title": "Username",
                "description": "Profile handle from the /in/<username> path."
              },
              "name": {
                "title": "Name",
                "description": "Member's full name."
              },
              "headline": {
                "title": "Headline",
                "description": "Professional headline / tagline."
              },
              "bio": {
                "title": "Bio",
                "description": "About / summary text when present."
              },
              "location": {
                "title": "Location",
                "description": "City / locality."
              },
              "country": {
                "title": "Country",
                "description": "Country from the profile address."
              },
              "followerCount": {
                "title": "Followers",
                "description": "Number of followers (numeric)."
              },
              "jobTitles": {
                "title": "Job titles",
                "description": "List of current job titles."
              },
              "currentCompany": {
                "title": "Current company",
                "description": "Name of the most recent / current employer."
              },
              "companies": {
                "title": "Companies",
                "description": "Employers with name, URL, slug and start/end dates."
              },
              "education": {
                "title": "Education",
                "description": "Schools with name, URL, slug and start/end years."
              },
              "isTopVoice": {
                "title": "Top Voice",
                "description": "Whether the member carries a LinkedIn Top Voice badge."
              },
              "isCreator": {
                "title": "Creator",
                "description": "Whether the member is flagged as a Creator."
              },
              "badges": {
                "title": "Badges",
                "description": "List of profile badges."
              },
              "profileImageUrl": {
                "title": "Profile image",
                "description": "URL of the profile photo."
              },
              "recentActivity": {
                "title": "Recent activity",
                "description": "Recent public posts/articles (title, url, date, likes) when enabled."
              },
              "scrapedAt": {
                "title": "Scraped at",
                "description": "ISO timestamp of extraction."
              }
            }
          },
          "views": {
            "overview": {
              "title": "Overview",
              "transformation": {
                "fields": [
                  "name",
                  "headline",
                  "currentCompany",
                  "location",
                  "followerCount",
                  "isTopVoice",
                  "linkedinUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "name": {
                    "label": "Name",
                    "format": "text"
                  },
                  "headline": {
                    "label": "Headline",
                    "format": "text"
                  },
                  "currentCompany": {
                    "label": "Company",
                    "format": "text"
                  },
                  "location": {
                    "label": "Location",
                    "format": "text"
                  },
                  "followerCount": {
                    "label": "Followers",
                    "format": "number"
                  },
                  "isTopVoice": {
                    "label": "Top Voice",
                    "format": "boolean"
                  },
                  "linkedinUrl": {
                    "label": "LinkedIn",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      },
      "changelog": "# Changelog\n\n## 2026-09-01\n\n- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.\n- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.\n- No change to input, output fields or scraping logic.\n\n## 2026-08-11\n\n- Maintenance release: refreshed the build and dependencies.\n- Re-verified live execution, non-empty structured output and dataset field/type integrity.\n- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.\n\n## 2026-08-01\n\n- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.\n- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.\n- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.\n\n## 2026-07-18\n\n- Fixed field mixing between `education` and `companies`. LinkedIn's JSON-LD now files board memberships under `alumniOf` (e.g. Starbucks, The Business Council, Fred Hutch) and some schools under `worksFor` (e.g. University of Chicago); the parser previously mapped `alumniOf`→education and `worksFor`→companies blindly, so schools and board seats landed in the wrong arrays.\n- Both source arrays are now pooled and each organisation is classified: schools (by JSON-LD `EducationalOrganization`/`CollegeOrUniversity` type, a `/school/` URL, or a school-name heuristic) go to `education`; everything else (employers and board roles) goes to `companies`. Results are de-duplicated per array.\n- Output field keys and shapes are unchanged (`companies` keep `startDate`/`endDate`, `education` keep `startYear`/`endYear`); `currentCompany` and all core fields (name, headline, bio, location, followerCount, image, badges) are untouched.\n\n## 2026-07-12\n\n- Empty input now works: running with `{}` browses a popular default set of public profiles instead of erroring — the Actor always returns data out of the box.\n- No filters are mandatory anymore (`profiles` is optional).\n- Added a `maxResults` option (default 100) to bound large lists and the default run so it stays fast and cheap.\n- Made the run graceful — the crawler is wrapped so an early stop is logged and already-scraped records are kept (run still finishes successfully).\n- Default proxy group is now RESIDENTIAL (LinkedIn blocks datacenter IPs with HTTP 999) for far more reliable results out of the box.\n- Added per-field titles/descriptions to the dataset schema for a clearer Dataset view and cleaner exports.\n\n## 2026-06-28\n\n- Health check passed — actor verified working end-to-end on Apify platform.\n- Changelog refreshed for Store quality compliance.\n\n## 2026-06-20\n\n- Maintenance & reliability pass: re-verified end-to-end against live data and confirmed the Actor completes successfully within the 5-minute quality window on the default input.\n- Refreshed the prefilled example input and tuned run defaults for faster, lower-cost runs.\n\n"
    },
    "buildNumber": "0.0.21",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "0.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.06434111111111111
    }
  }
}