{
  "data": {
    "id": "7E8tAqTBvFwhsGHlM",
    "actId": "j4qiav7vzrmMLcq5A",
    "userId": "BDnumQABsZbENhvGm",
    "startedAt": "2026-06-21T13:43:01.484Z",
    "finishedAt": "2026-06-21T13:43:04.391Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 2850,
      "runTimeSecs": 2.85,
      "computeUnits": 0.0031666666666666666,
      "imageSizeBytes": 507382272
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"$schema\": \"https://apify.com/schemas/v1/input.ide.json\",\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 profile URLs or usernames/slugs to scrape (e.g. 'satyanadella' or 'https://www.linkedin.com/in/satyanadella')\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"satyanadella\"\n      ]\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy Configuration\",\n      \"type\": \"object\",\n      \"description\": \"Apify Proxy settings (required). Only datacenter/residential proxies should be used.\",\n      \"editor\": \"proxy\",\n      \"default\": {\n        \"useApifyProxy\": true\n      }\n    },\n    \"maxProfiles\": {\n      \"title\": \"Max Profiles\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of profiles to scrape. Leave empty for no limit.\",\n      \"editor\": \"number\",\n      \"minimum\": 1\n    }\n  },\n  \"required\": [\n    \"profiles\"\n  ]\n}",
    "readme": "# LinkedIn Profile Scraper (No Login / No Cookies / Safe)\n\nA production-grade, high-performance Apify Actor for scraping public LinkedIn profiles.\n\nUnlike other LinkedIn scrapers on the market, **this Actor does not require cookies, logins, or active account sessions**. It runs entirely logged-out, eliminating the risk of your personal or business LinkedIn accounts getting flagged or banned.\n\n---\n\n## 🚀 Key Differentiators & Benefits\n\n- **Zero Ban Risk**: No login credentials or cookies are required. Your LinkedIn accounts are 100% safe.\n- **No Cookie Expiry**: Since no session cookies are used, your scraping pipelines will never break due to \"session expired\" errors.\n- **Blazing Fast & Lightweight**: Built on top of Crawlee and CheerioCrawler (raw HTML parsing), avoiding heavy browser automation overhead. It is up to 10x faster and uses a fraction of the memory/CPU compared to Puppeteer/Playwright alternatives.\n- **Apify Proxy Integration**: Automatically routes requests through high-quality proxy IPs to ensure high success rates and prevent rate limiting.\n- **Pay-Per-Event (PPE) Friendly**: You only pay for what you successfully scrape!\n\n---\n\n## 🛠️ How it Works\n\nThe Actor requests the public profile page (`https://www.linkedin.com/in/<slug>`) using a randomized desktop User-Agent and routes it through Apify Proxy. Public profiles contain structured schema.org `Person` markup embedded inside an `application/ld+json` script tag. The Actor parses this JSON-LD payload to extract rich, structured profile information without needing to authenticate or execute heavy client-side JavaScript.\n\n---\n\n## 📥 Input Settings\n\nThe Actor accepts the following input fields:\n\n| Field                | Type             | Description                                                                                                                      | Required / Default                   |\n| -------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |\n| `profiles`           | Array of strings | A list of LinkedIn usernames/slugs (e.g. `satyanadella`) or full profile URLs (e.g. `https://www.linkedin.com/in/satyanadella`). | **Required**                         |\n| `proxyConfiguration` | Object           | Connection settings for proxy routing. Apify Proxy is used by default.                                                           | Default: `{ \"useApifyProxy\": true }` |\n| `maxProfiles`        | Integer          | Caps the maximum number of profiles to scrape. Useful for budget control.                                                        | Optional / Null                      |\n\n---\n\n## 📤 Output Fields\n\nThe Actor produces clean, flat records in the default dataset. Below are the fields extracted:\n\n| Field            | Type    | Description                                                                       |\n| ---------------- | ------- | --------------------------------------------------------------------------------- |\n| `fullName`       | String  | The full name of the user.                                                        |\n| `headline`       | String  | The profile's headline (often current job title/role).                            |\n| `about`          | String  | The user's biography/about summary.                                               |\n| `location`       | String  | Geolocation (e.g. \"Redmond, Washington, United States\").                          |\n| `currentCompany` | String  | The company name of their current primary employment.                             |\n| `currentTitle`   | String  | Their current job title.                                                          |\n| `experience`     | Array   | Full employment history (company, company URL, title, location, start/end dates). |\n| `education`      | Array   | Education history (school name, school URL, start/end dates).                     |\n| `followers`      | Integer | Total number of followers on their profile.                                       |\n| `connections`    | Integer | Total number of connections (if available).                                       |\n| `skills`         | Array   | A list of endorsed/listed skills.                                                 |\n| `languages`      | Array   | Spoken/written languages.                                                         |\n| `profileUrl`     | String  | Canonical URL of the profile (`https://www.linkedin.com/in/<slug>`).              |\n| `scrapeStatus`   | String  | Either `success` or `error`.                                                      |\n| `scrapedAt`      | String  | ISO timestamp of the scraping event.                                              |\n\n### Example Output JSON\n\n```json\n{\n    \"fullName\": \"Satya Nadella\",\n    \"headline\": \"Chairman and CEO at Microsoft\",\n    \"about\": \"Satya Nadella is Chairman and CEO of Microsoft...\",\n    \"location\": \"Redmond, Washington, United States\",\n    \"currentCompany\": \"Microsoft\",\n    \"currentTitle\": \"Chairman and CEO\",\n    \"experience\": [\n        {\n            \"company\": \"Microsoft\",\n            \"companyUrl\": \"https://www.linkedin.com/company/microsoft\",\n            \"location\": \"Greater Seattle Area\",\n            \"title\": \"Chairman and CEO\",\n            \"startDate\": \"2014-02\",\n            \"endDate\": null\n        }\n    ],\n    \"education\": [\n        {\n            \"school\": \"University of Chicago Booth School of Business\",\n            \"schoolUrl\": \"https://www.linkedin.com/school/chicago-booth/\",\n            \"startDate\": \"1995\",\n            \"endDate\": \"1997\"\n        }\n    ],\n    \"followers\": 10500000,\n    \"connections\": 500,\n    \"skills\": [\"Enterprise Software\", \"Cloud Computing\", \"SaaS\"],\n    \"languages\": [\"English\", \"Hindi\"],\n    \"profileUrl\": \"https://www.linkedin.com/in/satyanadella\",\n    \"scrapeStatus\": \"success\",\n    \"scrapedAt\": \"2026-06-21T18:45:00.000Z\"\n}\n```\n\n---\n\n## 💰 Pay-Per-Event (PPE) Pricing\n\nThis Actor is configured with Pay-Per-Event billing:\n\n1. **`actor-start`**: Charged once per Actor run to cover initialization costs.\n2. **`profile-scraped`**: Charged per successfully scraped profile. Profiles that fail to scrape (e.g. login-walled, invalid username) are marked with `scrapeStatus: 'error'` and are **not** charged the profile success fee.\n\n---\n\n## 🔗 Sibling Actors\n\nIf you are scraping LinkedIn data for lead generation or market analysis, you may also find our other specialized tools helpful:\n\n- **[LinkedIn Jobs Scraper](https://apify.com/gopalakrishnan/linkedin-jobs)**: Extract job listings, descriptions, salary details, and employer info without any session cookies.\n",
    "actorDefinition": {
      "$schema": "https://apify.com/schemas/v1/actor.ide.json",
      "actorSpecification": 1,
      "name": "linkedin-profile",
      "title": "LinkedIn Profile Scraper (No Login / No Cookies)",
      "description": "Scrapes public LinkedIn profiles without login cookies, credentials, or ban risk. Extract headline, experience, education, followers, and more.",
      "version": "1.0",
      "meta": {
        "templateId": "js-crawlee-cheerio",
        "generatedBy": "Antigravity with Gemini 3.5 Flash"
      },
      "input": {
        "$schema": "https://apify.com/schemas/v1/input.ide.json",
        "title": "LinkedIn Profile Scraper Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "profiles": {
            "title": "Profiles",
            "type": "array",
            "description": "LinkedIn profile URLs or usernames/slugs to scrape (e.g. 'satyanadella' or 'https://www.linkedin.com/in/satyanadella')",
            "editor": "stringList",
            "prefill": [
              "satyanadella"
            ]
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify Proxy settings (required). Only datacenter/residential proxies should be used.",
            "editor": "proxy",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxProfiles": {
            "title": "Max Profiles",
            "type": "integer",
            "description": "Maximum number of profiles to scrape. Leave empty for no limit.",
            "editor": "number",
            "minimum": 1
          }
        },
        "required": [
          "profiles"
        ]
      },
      "output": {
        "$schema": "https://apify.com/schemas/v1/output.ide.json",
        "actorOutputSchemaVersion": 1,
        "title": "Run output",
        "properties": {
          "profiles": {
            "type": "string",
            "title": "Profiles",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "$schema": "https://apify.com/schemas/v1/dataset.ide.json",
          "actorSpecification": 1,
          "fields": {
            "type": "object",
            "properties": {
              "fullName": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "headline": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "about": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "location": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "currentCompany": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "currentTitle": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "experience": {
                "type": "array"
              },
              "education": {
                "type": "array"
              },
              "followers": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "connections": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "skills": {
                "type": "array"
              },
              "languages": {
                "type": "array"
              },
              "profileUrl": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "scrapeStatus": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "scrapeError": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "scrapedAt": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "views": {
            "overview": {
              "title": "Overview",
              "transformation": {
                "fields": [
                  "fullName",
                  "headline",
                  "currentCompany",
                  "currentTitle",
                  "location",
                  "followers",
                  "connections",
                  "about",
                  "profileUrl",
                  "scrapeStatus",
                  "scrapeError",
                  "scrapedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "fullName": {
                    "label": "Full Name",
                    "format": "text"
                  },
                  "headline": {
                    "label": "Headline",
                    "format": "text"
                  },
                  "currentCompany": {
                    "label": "Current Company",
                    "format": "text"
                  },
                  "currentTitle": {
                    "label": "Current Title",
                    "format": "text"
                  },
                  "location": {
                    "label": "Location",
                    "format": "text"
                  },
                  "followers": {
                    "label": "Followers",
                    "format": "number"
                  },
                  "connections": {
                    "label": "Connections",
                    "format": "number"
                  },
                  "about": {
                    "label": "About",
                    "format": "text"
                  },
                  "profileUrl": {
                    "label": "Profile URL",
                    "format": "link"
                  },
                  "scrapeStatus": {
                    "label": "Status",
                    "format": "text"
                  },
                  "scrapeError": {
                    "label": "Error Description",
                    "format": "text"
                  },
                  "scrapedAt": {
                    "label": "Scraped At",
                    "format": "date"
                  }
                }
              }
            }
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# LinkedIn Profile Scraper (No Login / No Cookies / Safe)\n\nA production-grade, high-performance Apify Actor for scraping public LinkedIn profiles.\n\nUnlike other LinkedIn scrapers on the market, **this Actor does not require cookies, logins, or active account sessions**. It runs entirely logged-out, eliminating the risk of your personal or business LinkedIn accounts getting flagged or banned.\n\n---\n\n## 🚀 Key Differentiators & Benefits\n\n- **Zero Ban Risk**: No login credentials or cookies are required. Your LinkedIn accounts are 100% safe.\n- **No Cookie Expiry**: Since no session cookies are used, your scraping pipelines will never break due to \"session expired\" errors.\n- **Blazing Fast & Lightweight**: Built on top of Crawlee and CheerioCrawler (raw HTML parsing), avoiding heavy browser automation overhead. It is up to 10x faster and uses a fraction of the memory/CPU compared to Puppeteer/Playwright alternatives.\n- **Apify Proxy Integration**: Automatically routes requests through high-quality proxy IPs to ensure high success rates and prevent rate limiting.\n- **Pay-Per-Event (PPE) Friendly**: You only pay for what you successfully scrape!\n\n---\n\n## 🛠️ How it Works\n\nThe Actor requests the public profile page (`https://www.linkedin.com/in/<slug>`) using a randomized desktop User-Agent and routes it through Apify Proxy. Public profiles contain structured schema.org `Person` markup embedded inside an `application/ld+json` script tag. The Actor parses this JSON-LD payload to extract rich, structured profile information without needing to authenticate or execute heavy client-side JavaScript.\n\n---\n\n## 📥 Input Settings\n\nThe Actor accepts the following input fields:\n\n| Field                | Type             | Description                                                                                                                      | Required / Default                   |\n| -------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |\n| `profiles`           | Array of strings | A list of LinkedIn usernames/slugs (e.g. `satyanadella`) or full profile URLs (e.g. `https://www.linkedin.com/in/satyanadella`). | **Required**                         |\n| `proxyConfiguration` | Object           | Connection settings for proxy routing. Apify Proxy is used by default.                                                           | Default: `{ \"useApifyProxy\": true }` |\n| `maxProfiles`        | Integer          | Caps the maximum number of profiles to scrape. Useful for budget control.                                                        | Optional / Null                      |\n\n---\n\n## 📤 Output Fields\n\nThe Actor produces clean, flat records in the default dataset. Below are the fields extracted:\n\n| Field            | Type    | Description                                                                       |\n| ---------------- | ------- | --------------------------------------------------------------------------------- |\n| `fullName`       | String  | The full name of the user.                                                        |\n| `headline`       | String  | The profile's headline (often current job title/role).                            |\n| `about`          | String  | The user's biography/about summary.                                               |\n| `location`       | String  | Geolocation (e.g. \"Redmond, Washington, United States\").                          |\n| `currentCompany` | String  | The company name of their current primary employment.                             |\n| `currentTitle`   | String  | Their current job title.                                                          |\n| `experience`     | Array   | Full employment history (company, company URL, title, location, start/end dates). |\n| `education`      | Array   | Education history (school name, school URL, start/end dates).                     |\n| `followers`      | Integer | Total number of followers on their profile.                                       |\n| `connections`    | Integer | Total number of connections (if available).                                       |\n| `skills`         | Array   | A list of endorsed/listed skills.                                                 |\n| `languages`      | Array   | Spoken/written languages.                                                         |\n| `profileUrl`     | String  | Canonical URL of the profile (`https://www.linkedin.com/in/<slug>`).              |\n| `scrapeStatus`   | String  | Either `success` or `error`.                                                      |\n| `scrapedAt`      | String  | ISO timestamp of the scraping event.                                              |\n\n### Example Output JSON\n\n```json\n{\n    \"fullName\": \"Satya Nadella\",\n    \"headline\": \"Chairman and CEO at Microsoft\",\n    \"about\": \"Satya Nadella is Chairman and CEO of Microsoft...\",\n    \"location\": \"Redmond, Washington, United States\",\n    \"currentCompany\": \"Microsoft\",\n    \"currentTitle\": \"Chairman and CEO\",\n    \"experience\": [\n        {\n            \"company\": \"Microsoft\",\n            \"companyUrl\": \"https://www.linkedin.com/company/microsoft\",\n            \"location\": \"Greater Seattle Area\",\n            \"title\": \"Chairman and CEO\",\n            \"startDate\": \"2014-02\",\n            \"endDate\": null\n        }\n    ],\n    \"education\": [\n        {\n            \"school\": \"University of Chicago Booth School of Business\",\n            \"schoolUrl\": \"https://www.linkedin.com/school/chicago-booth/\",\n            \"startDate\": \"1995\",\n            \"endDate\": \"1997\"\n        }\n    ],\n    \"followers\": 10500000,\n    \"connections\": 500,\n    \"skills\": [\"Enterprise Software\", \"Cloud Computing\", \"SaaS\"],\n    \"languages\": [\"English\", \"Hindi\"],\n    \"profileUrl\": \"https://www.linkedin.com/in/satyanadella\",\n    \"scrapeStatus\": \"success\",\n    \"scrapedAt\": \"2026-06-21T18:45:00.000Z\"\n}\n```\n\n---\n\n## 💰 Pay-Per-Event (PPE) Pricing\n\nThis Actor is configured with Pay-Per-Event billing:\n\n1. **`actor-start`**: Charged once per Actor run to cover initialization costs.\n2. **`profile-scraped`**: Charged per successfully scraped profile. Profiles that fail to scrape (e.g. login-walled, invalid username) are marked with `scrapeStatus: 'error'` and are **not** charged the profile success fee.\n\n---\n\n## 🔗 Sibling Actors\n\nIf you are scraping LinkedIn data for lead generation or market analysis, you may also find our other specialized tools helpful:\n\n- **[LinkedIn Jobs Scraper](https://apify.com/gopalakrishnan/linkedin-jobs)**: Extract job listings, descriptions, salary details, and employer info without any session cookies.\n"
    },
    "buildNumber": "1.0.2",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.0031666666666666666
    }
  }
}