{
  "data": {
    "id": "OesKEgvd9X5rOWnyO",
    "actId": "zj7kKwjTyEhUNvyK9",
    "userId": "TNuV1820RfGozb2kq",
    "startedAt": "2026-09-12T15:34:07.039Z",
    "finishedAt": "2026-09-12T15:34:30.191Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 23091,
      "runTimeSecs": 23.091,
      "computeUnits": 0.025656666666666668,
      "imageSizeBytes": 676350976
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"LinkedIn Profile Scraper Input\",\n  \"description\": \"Paste LinkedIn profile URLs or usernames. No LinkedIn login or account cookies required. Duplicate profiles are removed.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"profiles\": {\n      \"title\": \"LinkedIn profiles\",\n      \"type\": \"array\",\n      \"description\": \"LinkedIn profile URLs or public identifiers. Example: https://www.linkedin.com/in/whoareyouanas/ or whoareyouanas.\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"https://www.linkedin.com/in/whoareyouanas/\"\n      ]\n    },\n    \"username\": {\n      \"title\": \"Single profile URL or username\",\n      \"type\": \"string\",\n      \"description\": \"Legacy single-profile input. Used when profiles is empty.\",\n      \"editor\": \"textfield\"\n    },\n    \"includeEmail\": {\n      \"title\": \"Include public email\",\n      \"type\": \"boolean\",\n      \"description\": \"Include email when it is returned from visible LinkedIn contact/profile data. No independent email discovery is performed.\",\n      \"default\": true\n    },\n    \"maxConcurrency\": {\n      \"title\": \"Max concurrency\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of profiles processed in parallel.\",\n      \"default\": 5,\n      \"minimum\": 1,\n      \"maximum\": 25\n    },\n    \"requestTimeoutSecs\": {\n      \"title\": \"Request timeout (seconds)\",\n      \"type\": \"integer\",\n      \"description\": \"Timeout for each profile HTTP request.\",\n      \"default\": 20,\n      \"minimum\": 5,\n      \"maximum\": 120\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration\",\n      \"type\": \"object\",\n      \"description\": \"Optional proxy settings. Residential proxies can improve public LinkedIn profile access.\",\n      \"editor\": \"proxy\"\n    },\n    \"profileUrls\": {\n      \"title\": \"Profile URLs (API alias)\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\",\n      \"description\": \"Compatibility alias. Used only when profiles and username are empty.\"\n    },\n    \"maxProfiles\": {\n      \"title\": \"Maximum profiles\",\n      \"type\": \"integer\",\n      \"default\": 1000,\n      \"minimum\": 1,\n      \"maximum\": 5000,\n      \"description\": \"Process the first N unique profiles. Start with 5 to evaluate coverage.\"\n    },\n    \"maxRequestRetries\": {\n      \"title\": \"Retries per profile\",\n      \"type\": \"integer\",\n      \"default\": 1,\n      \"minimum\": 0,\n      \"maximum\": 3,\n      \"description\": \"Retry temporary network, rate-limit and server failures with backoff.\"\n    },\n    \"useUpstreamFallback\": {\n      \"title\": \"Enable paid provider fallback\",\n      \"type\": \"boolean\",\n      \"default\": true,\n      \"description\": \"Try a third-party Apify actor when direct access fails. Requires APIFY_TOKEN. Child runs have their own charges, separate from this actor result fee. No email search is requested.\"\n    },\n    \"maxFallbackProfiles\": {\n      \"title\": \"Maximum paid fallback attempts\",\n      \"type\": \"integer\",\n      \"default\": 10,\n      \"minimum\": 0,\n      \"maximum\": 1000,\n      \"description\": \"Per-run cap on provider calls, each capped at $0.01. Default worst-case child-run charge cap: $0.10. Set 0 to disable.\"\n    }\n  }\n}",
    "readme": "# LinkedIn Profile Scraper - No Login, JSON & CSV\n\nTurn LinkedIn profile URLs or usernames into structured profile data for CRM enrichment, recruiting research, and spreadsheets. Extract names, headlines, current company, work experience, education, and skills when available. No LinkedIn account or account cookies are required.\n\nStart with a few profiles, inspect the results, then scale your input. Public profile coverage varies; limited records are explicitly marked `partial`.\n\n## Quick start\n\n1. Paste profile URLs or usernames into **LinkedIn profiles**.\n2. Set **Maximum profiles** to 5 for an initial coverage check.\n3. Run the actor and open **Profiles** or **CRM CSV export** in the Output tab.\n4. Check **Run summary** and **Failed profiles** before running a larger list.\n\n```json\n{\n  \"profiles\": [\"https://www.linkedin.com/in/whoareyouanas/\", \"neal-mohan\"],\n  \"maxProfiles\": 5,\n  \"includeEmail\": false,\n  \"useUpstreamFallback\": false\n}\n```\n\nThis example disables the paid provider fallback so you can evaluate direct public-page coverage. Enable it in the input if you accept the separate child-run costs described below.\n\n## Pricing and cost controls\n\nThe result fee is **$0.004 per usable profile ($4 per 1,000)**. Both `success` and `partial` profiles are billable; a partial profile may contain only a name and headline. Duplicate URLs/usernames are processed once. Failed profiles are stored in `DIAGNOSTICS`, outside the billed dataset.\n\n| Usable profiles | Result fee |\n| --- | --- |\n| 10 | $0.04 |\n| 100 | $0.40 |\n| 1,000 | $4.00 |\n\nThe live listing currently also has an actor-start event of $0.00005 per GB, with a minimum of one event. Check the [Pricing tab](https://apify.com/whoareyouanas/linkedin-profile-actor/pricing) for the effective rates and platform charges for your run.\n\n**Paid fallback costs are separate.** When enabled, this actor can call `apimaestro/linkedin-profile-detail` using the run's Apify token. Each child run is capped at $0.01; the default limit of 10 attempts bounds those requested child-run charge caps to $0.10 per parent run. This is a spending limit, not an estimate or a guarantee of a successful result. The parent run's result-fee limit does not replace these child-run limits. Set `useUpstreamFallback: false` or `maxFallbackProfiles: 0` to avoid child runs. No provider email search is requested.\n\n## Input reference\n\n| Field | Default | Behavior |\n| --- | --- | --- |\n| `profiles` | Required unless an alternative is supplied | Array of profile URLs or usernames; API input also accepts `{ \"url\": \"...\" }` entries. |\n| `username` | None | Single-profile compatibility input, used when `profiles` is empty. |\n| `profileUrls` | None | API alias, used when both inputs above are empty. |\n| `maxProfiles` | `1000` | Process the first N unique profiles, 1–5,000. Excess profiles are not processed. |\n| `includeEmail` | `true` | Include public email from directly parsed data when available; `false` guarantees `basic_info.email` is null. |\n| `maxConcurrency` | `5` | Parallel profiles, 1–25. Output order may differ from input order. |\n| `requestTimeoutSecs` | `20` | Timeout per HTTP request, 5–120 seconds. Guest bootstrap, retries, and fallback add time. |\n| `maxRequestRetries` | `1` | Retries for temporary network, blocked, or server responses, 0–3. |\n| `proxyConfiguration` | None | Optional Apify proxy settings. Coverage depends on IP and public availability. |\n| `useUpstreamFallback` | `true` | Enable paid third-party recovery; requires an Apify token. |\n| `maxFallbackProfiles` | `10` | Maximum child-run attempts across all workers, 0–1,000. |\n\nTracking parameters are removed for requests. `linkedin.com`, `www.linkedin.com`, and two-letter country subdomains are supported. Company, search, and Sales Navigator URLs are not profile inputs. Invalid profile strings fail validation before scraping, instead of being silently discarded.\n\n## Output schema and exports\n\nThe actor registers an Apify output schema and a separate dataset field schema. The Output tab links to:\n\n| Output | Contents |\n| --- | --- |\n| Profiles | One row per usable unique profile, including `partial` results. |\n| CRM CSV export | Name, headline, LinkedIn URL, company, location, public email, status, input, and timestamp. |\n| Run summary | Requested/processed/saved counts, status counts, retries, fallback attempts, and budget-stop flag. |\n| Failed profiles | `DIAGNOSTICS` key-value record containing unsuccessful profile rows, with no result fee. |\n\nThe default overview preserves nested fields for existing integrations. The `profiles` dataset view selects columns for CRM/spreadsheet exports. JSON preserves experience and education arrays.\n\nIllustrative abbreviated result; values are examples, not a coverage guarantee:\n\n```json\n{\n  \"input\": \"example-person\",\n  \"basic_info\": {\n    \"fullname\": \"Example Person\",\n    \"headline\": \"Software Engineer\",\n    \"profile_url\": \"https://linkedin.com/in/example-person\",\n    \"public_identifier\": \"example-person\",\n    \"current_company\": \"Example Company\",\n    \"location\": { \"country\": \"\", \"city\": \"\", \"full\": \"\", \"postal_code\": \"\", \"country_code\": \"\" },\n    \"top_skills\": [\"TypeScript\"],\n    \"email\": null\n  },\n  \"experience\": [],\n  \"education\": [],\n  \"certifications\": [],\n  \"languages\": [],\n  \"status\": \"partial\",\n  \"error\": null,\n  \"scraped_at\": \"2026-09-12T00:00:00.000Z\"\n}\n```\n\nOther normalized fields include first/last name, about, photo/background URLs, follower and connection counts, company links, education summary, and public profile flags. Missing strings are `\"\"`, unknown numbers/flags are `null`, and unavailable lists are `[]`. Fields being present in the schema does not mean LinkedIn will expose them.\n\n`success` means a structured profile was extracted; it does not certify every field is complete. `partial` indicates limited metadata. Diagnostics use `blocked`, `not_found`, or `error`. If every attempted profile fails, the run fails with an explanatory message and retains diagnostics. When the result budget is exhausted, processing stops; already-started requests may finish without being saved.\n\n## LinkedIn profile API examples\n\nFor short runs, return dataset rows directly:\n\n```bash\ncurl --request POST \\\n  'https://api.apify.com/v2/acts/whoareyouanas~linkedin-profile-actor/run-sync-get-dataset-items' \\\n  --header \"Authorization: Bearer $APIFY_TOKEN\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"profiles\":[\"whoareyouanas\"],\"useUpstreamFallback\":false}'\n```\n\nFor bulk runs, use an asynchronous actor run and read its dataset after completion. Python with `apify-client`:\n\n```python\nimport os\nfrom apify_client import ApifyClient\n\nclient = ApifyClient(os.environ[\"APIFY_TOKEN\"])\nrun = client.actor(\"whoareyouanas/linkedin-profile-actor\").call(run_input={\n    \"profiles\": [\"whoareyouanas\", \"neal-mohan\"],\n    \"maxProfiles\": 100,\n    \"includeEmail\": False,\n    \"useUpstreamFallback\": False,\n})\nfor item in client.dataset(run[\"defaultDatasetId\"]).iterate_items():\n    print(item[\"basic_info\"][\"fullname\"], item[\"status\"])\n```\n\nJavaScript with `apify-client`:\n\n```javascript\nimport { ApifyClient } from 'apify-client';\nconst client = new ApifyClient({ token: process.env.APIFY_TOKEN });\nconst run = await client.actor('whoareyouanas/linkedin-profile-actor').call({\n  profiles: ['whoareyouanas'], useUpstreamFallback: false,\n});\nconst { items } = await client.dataset(run.defaultDatasetId).listItems();\nconst summary = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('RUN_SUMMARY');\nconsole.log(items, summary?.value);\n```\n\nIn n8n, Make, or Zapier, start the actor using an Apify integration or HTTP step, wait for completion, fetch its dataset, and map `basic_info.profile_url` to your CRM's LinkedIn field. Use the canonical URL as your deduplication key. Inspect diagnostics separately; a completed run does not guarantee every input returned data.\n\n## Frequently asked questions\n\n**Do I need LinkedIn cookies or a login?** No account cookies are required. Direct HTTP requests may use anonymous guest cookies issued by LinkedIn.\n\n**Does this find or verify work emails?** No. It does not guess addresses, run SMTP checks, or request paid provider email search. Email is usually null and is not a reason to choose this actor over a dedicated email finder.\n\n**Does it find people by name or search LinkedIn?** No. Supply known profile URLs or usernames. This is a profile extraction API for recruiting research, CRM enrichment, and professional data workflows.\n\n**Why are profiles missing or partial?** LinkedIn can restrict public fields or return login/rate-limit pages. Inspect diagnostics, lower concurrency, or test proxy settings. The optional provider may also fail. No success-rate or throughput guarantee is made.\n\n**How do I report a problem?** Open the actor's [Issues tab](https://apify.com/whoareyouanas/linkedin-profile-actor/issues) with the run ID, expected fields, and observed status. Do not include tokens or cookies.\n\n## Version 0.2 migration\n\nFailed rows now live in `DIAGNOSTICS` rather than the default dataset, so they no longer incur a result fee. Update workflows that previously looked for failures in dataset rows. Existing successful row fields remain compatible. New limits default to 1,000 unique profiles and 10 paid fallback attempts. Provider email search is disabled. Local source changes must be deployed before these behaviors are available in the live actor.\n\nThis independent actor is not affiliated with LinkedIn. Only submit profiles you are entitled to process.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "linkedin-profile-actor",
      "title": "LinkedIn Profile Scraper - No Login, JSON & CSV",
      "description": "Scrape public LinkedIn profiles from URLs or usernames. Extract names, headlines, company, experience, education and skills to JSON or CSV. No account cookies required.",
      "version": "0.2",
      "buildTag": "latest",
      "meta": {
        "templateId": "ts-start"
      },
      "input": {
        "title": "LinkedIn Profile Scraper Input",
        "description": "Paste LinkedIn profile URLs or usernames. No LinkedIn login or account cookies required. Duplicate profiles are removed.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "profiles": {
            "title": "LinkedIn profiles",
            "type": "array",
            "description": "LinkedIn profile URLs or public identifiers. Example: https://www.linkedin.com/in/whoareyouanas/ or whoareyouanas.",
            "editor": "stringList",
            "prefill": [
              "https://www.linkedin.com/in/whoareyouanas/"
            ]
          },
          "username": {
            "title": "Single profile URL or username",
            "type": "string",
            "description": "Legacy single-profile input. Used when profiles is empty.",
            "editor": "textfield"
          },
          "includeEmail": {
            "title": "Include public email",
            "type": "boolean",
            "description": "Include email when it is returned from visible LinkedIn contact/profile data. No independent email discovery is performed.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "type": "integer",
            "description": "Maximum number of profiles processed in parallel.",
            "default": 5,
            "minimum": 1,
            "maximum": 25
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "type": "integer",
            "description": "Timeout for each profile HTTP request.",
            "default": 20,
            "minimum": 5,
            "maximum": 120
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy settings. Residential proxies can improve public LinkedIn profile access.",
            "editor": "proxy"
          },
          "profileUrls": {
            "title": "Profile URLs (API alias)",
            "type": "array",
            "editor": "stringList",
            "description": "Compatibility alias. Used only when profiles and username are empty."
          },
          "maxProfiles": {
            "title": "Maximum profiles",
            "type": "integer",
            "default": 1000,
            "minimum": 1,
            "maximum": 5000,
            "description": "Process the first N unique profiles. Start with 5 to evaluate coverage."
          },
          "maxRequestRetries": {
            "title": "Retries per profile",
            "type": "integer",
            "default": 1,
            "minimum": 0,
            "maximum": 3,
            "description": "Retry temporary network, rate-limit and server failures with backoff."
          },
          "useUpstreamFallback": {
            "title": "Enable paid provider fallback",
            "type": "boolean",
            "default": true,
            "description": "Try a third-party Apify actor when direct access fails. Requires APIFY_TOKEN. Child runs have their own charges, separate from this actor result fee. No email search is requested."
          },
          "maxFallbackProfiles": {
            "title": "Maximum paid fallback attempts",
            "type": "integer",
            "default": 10,
            "minimum": 0,
            "maximum": 1000,
            "description": "Per-run cap on provider calls, each capped at $0.01. Default worst-case child-run charge cap: $0.10. Set 0 to disable."
          }
        }
      },
      "readme": "# LinkedIn Profile Scraper - No Login, JSON & CSV\n\nTurn LinkedIn profile URLs or usernames into structured profile data for CRM enrichment, recruiting research, and spreadsheets. Extract names, headlines, current company, work experience, education, and skills when available. No LinkedIn account or account cookies are required.\n\nStart with a few profiles, inspect the results, then scale your input. Public profile coverage varies; limited records are explicitly marked `partial`.\n\n## Quick start\n\n1. Paste profile URLs or usernames into **LinkedIn profiles**.\n2. Set **Maximum profiles** to 5 for an initial coverage check.\n3. Run the actor and open **Profiles** or **CRM CSV export** in the Output tab.\n4. Check **Run summary** and **Failed profiles** before running a larger list.\n\n```json\n{\n  \"profiles\": [\"https://www.linkedin.com/in/whoareyouanas/\", \"neal-mohan\"],\n  \"maxProfiles\": 5,\n  \"includeEmail\": false,\n  \"useUpstreamFallback\": false\n}\n```\n\nThis example disables the paid provider fallback so you can evaluate direct public-page coverage. Enable it in the input if you accept the separate child-run costs described below.\n\n## Pricing and cost controls\n\nThe result fee is **$0.004 per usable profile ($4 per 1,000)**. Both `success` and `partial` profiles are billable; a partial profile may contain only a name and headline. Duplicate URLs/usernames are processed once. Failed profiles are stored in `DIAGNOSTICS`, outside the billed dataset.\n\n| Usable profiles | Result fee |\n| --- | --- |\n| 10 | $0.04 |\n| 100 | $0.40 |\n| 1,000 | $4.00 |\n\nThe live listing currently also has an actor-start event of $0.00005 per GB, with a minimum of one event. Check the [Pricing tab](https://apify.com/whoareyouanas/linkedin-profile-actor/pricing) for the effective rates and platform charges for your run.\n\n**Paid fallback costs are separate.** When enabled, this actor can call `apimaestro/linkedin-profile-detail` using the run's Apify token. Each child run is capped at $0.01; the default limit of 10 attempts bounds those requested child-run charge caps to $0.10 per parent run. This is a spending limit, not an estimate or a guarantee of a successful result. The parent run's result-fee limit does not replace these child-run limits. Set `useUpstreamFallback: false` or `maxFallbackProfiles: 0` to avoid child runs. No provider email search is requested.\n\n## Input reference\n\n| Field | Default | Behavior |\n| --- | --- | --- |\n| `profiles` | Required unless an alternative is supplied | Array of profile URLs or usernames; API input also accepts `{ \"url\": \"...\" }` entries. |\n| `username` | None | Single-profile compatibility input, used when `profiles` is empty. |\n| `profileUrls` | None | API alias, used when both inputs above are empty. |\n| `maxProfiles` | `1000` | Process the first N unique profiles, 1–5,000. Excess profiles are not processed. |\n| `includeEmail` | `true` | Include public email from directly parsed data when available; `false` guarantees `basic_info.email` is null. |\n| `maxConcurrency` | `5` | Parallel profiles, 1–25. Output order may differ from input order. |\n| `requestTimeoutSecs` | `20` | Timeout per HTTP request, 5–120 seconds. Guest bootstrap, retries, and fallback add time. |\n| `maxRequestRetries` | `1` | Retries for temporary network, blocked, or server responses, 0–3. |\n| `proxyConfiguration` | None | Optional Apify proxy settings. Coverage depends on IP and public availability. |\n| `useUpstreamFallback` | `true` | Enable paid third-party recovery; requires an Apify token. |\n| `maxFallbackProfiles` | `10` | Maximum child-run attempts across all workers, 0–1,000. |\n\nTracking parameters are removed for requests. `linkedin.com`, `www.linkedin.com`, and two-letter country subdomains are supported. Company, search, and Sales Navigator URLs are not profile inputs. Invalid profile strings fail validation before scraping, instead of being silently discarded.\n\n## Output schema and exports\n\nThe actor registers an Apify output schema and a separate dataset field schema. The Output tab links to:\n\n| Output | Contents |\n| --- | --- |\n| Profiles | One row per usable unique profile, including `partial` results. |\n| CRM CSV export | Name, headline, LinkedIn URL, company, location, public email, status, input, and timestamp. |\n| Run summary | Requested/processed/saved counts, status counts, retries, fallback attempts, and budget-stop flag. |\n| Failed profiles | `DIAGNOSTICS` key-value record containing unsuccessful profile rows, with no result fee. |\n\nThe default overview preserves nested fields for existing integrations. The `profiles` dataset view selects columns for CRM/spreadsheet exports. JSON preserves experience and education arrays.\n\nIllustrative abbreviated result; values are examples, not a coverage guarantee:\n\n```json\n{\n  \"input\": \"example-person\",\n  \"basic_info\": {\n    \"fullname\": \"Example Person\",\n    \"headline\": \"Software Engineer\",\n    \"profile_url\": \"https://linkedin.com/in/example-person\",\n    \"public_identifier\": \"example-person\",\n    \"current_company\": \"Example Company\",\n    \"location\": { \"country\": \"\", \"city\": \"\", \"full\": \"\", \"postal_code\": \"\", \"country_code\": \"\" },\n    \"top_skills\": [\"TypeScript\"],\n    \"email\": null\n  },\n  \"experience\": [],\n  \"education\": [],\n  \"certifications\": [],\n  \"languages\": [],\n  \"status\": \"partial\",\n  \"error\": null,\n  \"scraped_at\": \"2026-09-12T00:00:00.000Z\"\n}\n```\n\nOther normalized fields include first/last name, about, photo/background URLs, follower and connection counts, company links, education summary, and public profile flags. Missing strings are `\"\"`, unknown numbers/flags are `null`, and unavailable lists are `[]`. Fields being present in the schema does not mean LinkedIn will expose them.\n\n`success` means a structured profile was extracted; it does not certify every field is complete. `partial` indicates limited metadata. Diagnostics use `blocked`, `not_found`, or `error`. If every attempted profile fails, the run fails with an explanatory message and retains diagnostics. When the result budget is exhausted, processing stops; already-started requests may finish without being saved.\n\n## LinkedIn profile API examples\n\nFor short runs, return dataset rows directly:\n\n```bash\ncurl --request POST \\\n  'https://api.apify.com/v2/acts/whoareyouanas~linkedin-profile-actor/run-sync-get-dataset-items' \\\n  --header \"Authorization: Bearer $APIFY_TOKEN\" \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"profiles\":[\"whoareyouanas\"],\"useUpstreamFallback\":false}'\n```\n\nFor bulk runs, use an asynchronous actor run and read its dataset after completion. Python with `apify-client`:\n\n```python\nimport os\nfrom apify_client import ApifyClient\n\nclient = ApifyClient(os.environ[\"APIFY_TOKEN\"])\nrun = client.actor(\"whoareyouanas/linkedin-profile-actor\").call(run_input={\n    \"profiles\": [\"whoareyouanas\", \"neal-mohan\"],\n    \"maxProfiles\": 100,\n    \"includeEmail\": False,\n    \"useUpstreamFallback\": False,\n})\nfor item in client.dataset(run[\"defaultDatasetId\"]).iterate_items():\n    print(item[\"basic_info\"][\"fullname\"], item[\"status\"])\n```\n\nJavaScript with `apify-client`:\n\n```javascript\nimport { ApifyClient } from 'apify-client';\nconst client = new ApifyClient({ token: process.env.APIFY_TOKEN });\nconst run = await client.actor('whoareyouanas/linkedin-profile-actor').call({\n  profiles: ['whoareyouanas'], useUpstreamFallback: false,\n});\nconst { items } = await client.dataset(run.defaultDatasetId).listItems();\nconst summary = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('RUN_SUMMARY');\nconsole.log(items, summary?.value);\n```\n\nIn n8n, Make, or Zapier, start the actor using an Apify integration or HTTP step, wait for completion, fetch its dataset, and map `basic_info.profile_url` to your CRM's LinkedIn field. Use the canonical URL as your deduplication key. Inspect diagnostics separately; a completed run does not guarantee every input returned data.\n\n## Frequently asked questions\n\n**Do I need LinkedIn cookies or a login?** No account cookies are required. Direct HTTP requests may use anonymous guest cookies issued by LinkedIn.\n\n**Does this find or verify work emails?** No. It does not guess addresses, run SMTP checks, or request paid provider email search. Email is usually null and is not a reason to choose this actor over a dedicated email finder.\n\n**Does it find people by name or search LinkedIn?** No. Supply known profile URLs or usernames. This is a profile extraction API for recruiting research, CRM enrichment, and professional data workflows.\n\n**Why are profiles missing or partial?** LinkedIn can restrict public fields or return login/rate-limit pages. Inspect diagnostics, lower concurrency, or test proxy settings. The optional provider may also fail. No success-rate or throughput guarantee is made.\n\n**How do I report a problem?** Open the actor's [Issues tab](https://apify.com/whoareyouanas/linkedin-profile-actor/issues) with the run ID, expected fields, and observed status. Do not include tokens or cookies.\n\n## Version 0.2 migration\n\nFailed rows now live in `DIAGNOSTICS` rather than the default dataset, so they no longer incur a result fee. Update workflows that previously looked for failures in dataset rows. Existing successful row fields remain compatible. New limits default to 1,000 unique profiles and 10 paid fallback attempts. Provider email search is disabled. Local source changes must be deployed before these behaviors are available in the live actor.\n\nThis independent actor is not affiliated with LinkedIn. Only submit profiles you are entitled to process.\n",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "LinkedIn Public Profile Results",
          "description": "Dataset containing extracted public LinkedIn profile details.",
          "views": {
            "overview": {
              "title": "Overview",
              "transformation": {
                "fields": [
                  "input",
                  "basic_info",
                  "experience",
                  "education",
                  "certifications",
                  "languages",
                  "status",
                  "error",
                  "scraped_at"
                ]
              },
              "display": {
                "component": "table"
              }
            },
            "profiles": {
              "title": "Profiles / CRM export",
              "transformation": {
                "fields": [
                  "input",
                  "basic_info.fullname",
                  "basic_info.headline",
                  "basic_info.profile_url",
                  "basic_info.current_company",
                  "basic_info.location.full",
                  "basic_info.email",
                  "status",
                  "scraped_at"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "basic_info.profile_url": {
                    "label": "LinkedIn profile",
                    "format": "link"
                  },
                  "basic_info.fullname": {
                    "label": "Name",
                    "format": "text"
                  },
                  "status": {
                    "label": "Status",
                    "format": "text"
                  }
                }
              }
            }
          },
          "fields": {
            "type": "object",
            "properties": {
              "input": {
                "title": "Input",
                "type": "string"
              },
              "basic_info": {
                "title": "Basic Info",
                "type": "object",
                "properties": {
                  "fullname": {
                    "title": "Fullname",
                    "type": "string"
                  },
                  "first_name": {
                    "title": "First Name",
                    "type": "string"
                  },
                  "last_name": {
                    "title": "Last Name",
                    "type": "string"
                  },
                  "headline": {
                    "title": "Headline",
                    "type": "string"
                  },
                  "public_identifier": {
                    "title": "Public Identifier",
                    "type": "string"
                  },
                  "profile_url": {
                    "title": "Profile Url",
                    "type": "string"
                  },
                  "profile_picture_url": {
                    "title": "Profile Picture Url",
                    "type": "string"
                  },
                  "about": {
                    "title": "About",
                    "type": "string"
                  },
                  "location": {
                    "title": "Location",
                    "type": "object",
                    "properties": {
                      "country": {
                        "title": "Country",
                        "type": "string"
                      },
                      "city": {
                        "title": "City",
                        "type": "string"
                      },
                      "full": {
                        "title": "Full",
                        "type": "string"
                      },
                      "postal_code": {
                        "title": "Postal Code",
                        "type": "string"
                      },
                      "country_code": {
                        "title": "Country Code",
                        "type": "string"
                      }
                    },
                    "required": [
                      "country",
                      "city",
                      "full",
                      "postal_code",
                      "country_code"
                    ],
                    "additionalProperties": false
                  },
                  "creator_hashtags": {
                    "title": "Creator Hashtags",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "is_creator": {
                    "title": "Is Creator",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "is_influencer": {
                    "title": "Is Influencer",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "is_premium": {
                    "title": "Is Premium",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "open_to_work": {
                    "title": "Open To Work",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "created_timestamp": {
                    "title": "Created Timestamp",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "show_follower_count": {
                    "title": "Show Follower Count",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "background_picture_url": {
                    "title": "Background Picture Url",
                    "type": "string"
                  },
                  "memorialized": {
                    "title": "Memorialized",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "is_top_voice": {
                    "title": "Is Top Voice",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "primary_locale": {
                    "title": "Primary Locale",
                    "type": "string"
                  },
                  "urn": {
                    "title": "Urn",
                    "type": "string"
                  },
                  "follower_count": {
                    "title": "Follower Count",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "connection_count": {
                    "title": "Connection Count",
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "current_company": {
                    "title": "Current Company",
                    "type": "string"
                  },
                  "current_company_urn": {
                    "title": "Current Company Urn",
                    "type": "string"
                  },
                  "current_company_url": {
                    "title": "Current Company Url",
                    "type": "string"
                  },
                  "current_company_logo_url": {
                    "title": "Current Company Logo Url",
                    "type": "string"
                  },
                  "top_education_school": {
                    "title": "Top Education School",
                    "type": "object",
                    "properties": {
                      "name": {
                        "title": "Name",
                        "type": "string"
                      },
                      "urn": {
                        "title": "Urn",
                        "type": "string"
                      },
                      "url": {
                        "title": "Url",
                        "type": "string"
                      },
                      "logo_url": {
                        "title": "Logo Url",
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "urn",
                      "url",
                      "logo_url"
                    ],
                    "additionalProperties": false
                  },
                  "is_verified": {
                    "title": "Is Verified",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "top_skills": {
                    "title": "Top Skills",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "email": {
                    "title": "Email",
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Public email when available and enabled; null otherwise. No email search or verification."
                  }
                },
                "required": [
                  "fullname",
                  "first_name",
                  "last_name",
                  "headline",
                  "public_identifier",
                  "profile_url",
                  "profile_picture_url",
                  "about",
                  "location",
                  "creator_hashtags",
                  "is_creator",
                  "is_influencer",
                  "is_premium",
                  "open_to_work",
                  "created_timestamp",
                  "show_follower_count",
                  "background_picture_url",
                  "memorialized",
                  "is_top_voice",
                  "primary_locale",
                  "urn",
                  "follower_count",
                  "connection_count",
                  "current_company",
                  "current_company_urn",
                  "current_company_url",
                  "current_company_logo_url",
                  "top_education_school",
                  "is_verified",
                  "top_skills",
                  "email"
                ],
                "additionalProperties": false,
                "description": "Normalized public profile fields. Missing text is empty, missing counts and flags are null, and missing lists are empty."
              },
              "experience": {
                "title": "Experience",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "title": "Title",
                      "type": "string"
                    },
                    "company": {
                      "title": "Company",
                      "type": "string"
                    },
                    "location": {
                      "title": "Location",
                      "type": "string"
                    },
                    "description": {
                      "title": "Description",
                      "type": "string"
                    },
                    "duration": {
                      "title": "Duration",
                      "type": "string"
                    },
                    "start_date": {
                      "title": "Start Date",
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "year": {
                              "title": "Year",
                              "type": "number"
                            },
                            "month": {
                              "title": "Month",
                              "type": "string"
                            },
                            "text": {
                              "title": "Text",
                              "type": "string"
                            }
                          },
                          "required": [],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "end_date": {
                      "title": "End Date",
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "year": {
                              "title": "Year",
                              "type": "number"
                            },
                            "month": {
                              "title": "Month",
                              "type": "string"
                            },
                            "text": {
                              "title": "Text",
                              "type": "string"
                            }
                          },
                          "required": [],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "is_current": {
                      "title": "Is Current",
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "company_linkedin_url": {
                      "title": "Company Linkedin Url",
                      "type": "string"
                    },
                    "company_logo_url": {
                      "title": "Company Logo Url",
                      "type": "string"
                    },
                    "employment_type": {
                      "title": "Employment Type",
                      "type": "string"
                    },
                    "location_type": {
                      "title": "Location Type",
                      "type": "string"
                    },
                    "skills": {
                      "title": "Skills",
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "company_id": {
                      "title": "Company Id",
                      "type": "string"
                    },
                    "skills_url": {
                      "title": "Skills Url",
                      "type": "string"
                    }
                  },
                  "required": [
                    "title",
                    "company",
                    "location",
                    "description",
                    "duration",
                    "start_date",
                    "end_date",
                    "is_current",
                    "company_linkedin_url",
                    "company_logo_url",
                    "employment_type",
                    "location_type",
                    "skills",
                    "company_id",
                    "skills_url"
                  ],
                  "additionalProperties": false
                },
                "description": "Available experience entries; an empty array means no entries were returned."
              },
              "education": {
                "title": "Education",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "school": {
                      "title": "School",
                      "type": "string"
                    },
                    "degree": {
                      "title": "Degree",
                      "type": "string"
                    },
                    "field_of_study": {
                      "title": "Field Of Study",
                      "type": "string"
                    },
                    "duration": {
                      "title": "Duration",
                      "type": "string"
                    },
                    "start_date": {
                      "title": "Start Date",
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "year": {
                              "title": "Year",
                              "type": "number"
                            },
                            "month": {
                              "title": "Month",
                              "type": "string"
                            },
                            "text": {
                              "title": "Text",
                              "type": "string"
                            }
                          },
                          "required": [],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "end_date": {
                      "title": "End Date",
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "year": {
                              "title": "Year",
                              "type": "number"
                            },
                            "month": {
                              "title": "Month",
                              "type": "string"
                            },
                            "text": {
                              "title": "Text",
                              "type": "string"
                            }
                          },
                          "required": [],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "school_linkedin_url": {
                      "title": "School Linkedin Url",
                      "type": "string"
                    },
                    "school_logo_url": {
                      "title": "School Logo Url",
                      "type": "string"
                    },
                    "description": {
                      "title": "Description",
                      "type": "string"
                    }
                  },
                  "required": [
                    "school",
                    "degree",
                    "field_of_study",
                    "duration",
                    "start_date",
                    "end_date",
                    "school_linkedin_url",
                    "school_logo_url",
                    "description"
                  ],
                  "additionalProperties": false
                },
                "description": "Available education entries; an empty array means no entries were returned."
              },
              "certifications": {
                "title": "Certifications",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "title": "Name",
                      "type": "string"
                    },
                    "authority": {
                      "title": "Authority",
                      "type": "string"
                    },
                    "license_number": {
                      "title": "License Number",
                      "type": "string"
                    },
                    "issued_at": {
                      "title": "Issued At",
                      "type": "string"
                    },
                    "expires_at": {
                      "title": "Expires At",
                      "type": "string"
                    },
                    "url": {
                      "title": "Url",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "authority",
                    "license_number",
                    "issued_at",
                    "expires_at",
                    "url"
                  ],
                  "additionalProperties": false
                },
                "description": "Available certifications entries; an empty array means no entries were returned."
              },
              "languages": {
                "title": "Languages",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "language": {
                      "title": "Language",
                      "type": "string"
                    },
                    "proficiency": {
                      "title": "Proficiency",
                      "type": "string"
                    }
                  },
                  "required": [
                    "language",
                    "proficiency"
                  ],
                  "additionalProperties": false
                },
                "description": "Available languages entries; an empty array means no entries were returned."
              },
              "status": {
                "title": "Status",
                "type": "string",
                "enum": [
                  "success",
                  "partial",
                  "blocked",
                  "not_found",
                  "error"
                ],
                "description": "success: structured profile; partial: limited public metadata; blocked, not_found and error rows are written to DIAGNOSTICS, not the billed dataset."
              },
              "error": {
                "title": "Error",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "scraped_at": {
                "title": "Scraped At",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "input",
              "basic_info",
              "experience",
              "education",
              "certifications",
              "languages",
              "status",
              "error",
              "scraped_at"
            ],
            "additionalProperties": false
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "categories": [
        "SOCIAL_MEDIA",
        "LEAD_GENERATION",
        "AUTOMATION"
      ],
      "keywords": [
        "linkedin-scraper",
        "linkedin-profile-scraper",
        "linkedin-profile-extractor",
        "linkedin-public-profile",
        "linkedin-no-login",
        "linkedin-no-cookies",
        "linkedin-data-extractor",
        "linkedin-profile-api",
        "lead-generation",
        "recruiting",
        "candidate-research"
      ],
      "pricingInfos": [
        {
          "pricingModel": "PAY_PER_EVENT",
          "pricingPerEvent": {
            "actorChargeEvents": {
              "apify-default-dataset-item": {
                "eventTitle": "Profile extracted",
                "eventDescription": "One usable public profile (success or partial) saved to the default dataset. Failed profiles are stored separately without a result fee.",
                "eventPriceUsd": 0.004,
                "isPrimaryEvent": true
              }
            }
          }
        }
      ],
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "LinkedIn profile results",
        "properties": {
          "results": {
            "type": "string",
            "title": "Profiles",
            "description": "Usable profile rows in JSON. Partial profiles are included and billed.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "csv": {
            "type": "string",
            "title": "CRM CSV export",
            "template": "{{links.apiDefaultDatasetUrl}}/items?format=csv&view=profiles"
          },
          "summary": {
            "type": "string",
            "title": "Run summary",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/RUN_SUMMARY"
          },
          "diagnostics": {
            "type": "string",
            "title": "Failed profiles (no result fee)",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/DIAGNOSTICS"
          }
        }
      }
    },
    "buildNumber": "0.2.1",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "0.2"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.025656666666666668
    }
  }
}