{
  "data": {
    "id": "IWuxmDqHzUUDN6NYV",
    "actId": "F4w3KW2yV5WyhaDe9",
    "userId": "13v7ggto3oxeCyuMb",
    "startedAt": "2026-09-24T13:29:05.639Z",
    "finishedAt": "2026-09-24T13:29:19.025Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 13309,
      "runTimeSecs": 13.309,
      "computeUnits": 0.014787777777777778,
      "imageSizeBytes": 279811072
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"LinkedIn Profile Scraper | No Login or Cookies\",\n  \"description\": \"Scrape one public LinkedIn person profile per run without a LinkedIn login or cookies. Free-plan users get 3 free profile lookups within 24 hours.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"profile\": {\n      \"title\": \"LinkedIn profile URL or slug\",\n      \"description\": \"Paste one public LinkedIn person slug or linkedin.com/in profile URL. Free-plan users get 3 free profile lookups within 24 hours. Inaccessible profiles do not create a billable profile result.\",\n      \"type\": \"string\",\n      \"editor\": \"textfield\",\n      \"sectionCaption\": \"Choose a profile\",\n      \"sectionDescription\": \"Enter one profile per run.\",\n      \"minLength\": 1,\n      \"maxLength\": 500,\n      \"prefill\": \"https://www.linkedin.com/in/example-founder/\"\n    }\n  },\n  \"required\": [\n    \"profile\"\n  ]\n}",
    "readme": "# LinkedIn Profile Scraper (No Cookies or Login Required)\n\nScrape **one public LinkedIn person profile per run** and export structured profile data for research, enrichment, monitoring, and automated workflows. Free-plan users get 3 free profile lookups within 24 hours.\n\nNo LinkedIn cookies, account, login, browser extension, or proxy setup is required. Enter public `/in/` profile URLs or slugs and receive the fields LinkedIn makes available without an authenticated session.\n\n## Why use this LinkedIn profile scraper?\n\n- **No cookies or login:** collect public profile data without connecting a LinkedIn account or providing session cookies.\n- **No proxy setup:** the required network configuration is included with the Actor.\n- **Single profile per run:** submit one public person profile URL or slug.\n- **Structured profile data:** receive consistent fields for identity, headline, location, company, experience, education, and public network counts.\n- **Ready for automation:** run from Apify Console, schedules, webhooks, integrations, or the Apify API.\n- **Flexible exports:** download datasets as JSON, CSV, Excel, XML, RSS, or another format supported by Apify.\n\n## Quick start\n\n1. Paste one public LinkedIn person profile URL or slug.\n2. Add one profile.\n3. Select **Start**.\n4. Open the dataset to review or download the collected profile records.\n\n### Input\n\n```json\n{\n  \"profile\": \"https://www.linkedin.com/in/example-founder/\"\n}\n```\n\nAccepted inputs include:\n\n- A complete public `linkedin.com/in/...` person profile URL\n- A localized LinkedIn person URL such as `de.linkedin.com/in/...`\n- The profile slug shown after `/in/`\n\nCompany pages, post URLs, search pages, arbitrary names, and non-LinkedIn URLs are not accepted because this Actor is specifically for known LinkedIn person profiles.\n\n## What LinkedIn profile data can you extract?\n\nEach successful profile produces one dataset item that can include:\n\n- **Identity:** profile ID, first name, last name, full name, headline, about text, and canonical LinkedIn URL\n- **Location:** the public location displayed on the profile\n- **Current company:** company name, company ID, company URL, company location, and logo when available\n- **Experience:** job title, employer, company identifiers, location, role description, dates, and company logo for each public role\n- **Education:** school, degree, field of study, attendance years, school URL, and school logo when available\n- **Audience:** public follower and connection counts\n- **Media:** avatar and banner image\n- **Links:** public personal websites listed on the profile\n- **Additional public sections:** languages, skills with endorsement counts, certifications, and volunteering when displayed publicly\n- **Request provenance:** the canonical profile ID and URL plus the original submitted URL\n\nThe exact fields vary by profile and request. Masked, unavailable, or non-public values remain `null`, empty, or absent instead of being guessed.\n\n## Example output\n\nThe values below are representative. Long text and LinkedIn-hosted media URLs are abbreviated, but every top-level output field is included so you can plan your dataset or integration before running the Actor.\n\n```json\n{\n  \"id\": \"alex-example\",\n  \"name\": \"Alex Example\",\n  \"first_name\": \"Alex\",\n  \"last_name\": \"Example\",\n  \"url\": \"https://www.linkedin.com/in/alex-example\",\n  \"input_url\": \"https://www.linkedin.com/in/alex-example/\",\n  \"location\": \"Berlin, Germany\",\n  \"position\": \"Senior Software Engineer at Example Labs\",\n  \"about\": \"Builds reliable software systems and mentors engineering teams.\",\n  \"avatar\": \"https://media.licdn.com/example-avatar\",\n  \"banner_image\": \"https://media.licdn.com/example-banner\",\n  \"followers\": 1250,\n  \"connections\": 500,\n  \"open_to_work\": false,\n  \"hiring\": false,\n  \"premium\": true,\n  \"influencer\": false,\n  \"creator\": true,\n  \"open_profile\": true,\n  \"primary_locale\": {\n    \"country\": \"DE\",\n    \"language\": \"en\"\n  },\n  \"current_company\": {\n    \"company_id\": \"12345678\",\n    \"link\": \"https://www.linkedin.com/company/example-labs/\",\n    \"location\": \"Berlin, Germany\",\n    \"name\": \"Example Labs\",\n    \"logo\": \"https://media.licdn.com/example-company-logo\"\n  },\n  \"experience\": [\n    {\n      \"company\": \"Example Labs\",\n      \"company_id\": \"12345678\",\n      \"company_url\": \"https://www.linkedin.com/company/example-labs/\",\n      \"company_logo_url\": \"https://media.licdn.com/example-company-logo\",\n      \"location\": \"Berlin, Germany\",\n      \"title\": \"Senior Software Engineer\",\n      \"description\": \"Leads a synthetic platform team building distributed services.\",\n      \"employment_type\": \"FULL_TIME\",\n      \"is_current\": true,\n      \"skills\": [\n        \"TypeScript\",\n        \"Distributed Systems\"\n      ],\n      \"start_date\": \"2022-05\",\n      \"end_date\": null\n    }\n  ],\n  \"educations_details\": [\n    {\n      \"school\": \"Example Technical University\",\n      \"school_url\": \"https://www.linkedin.com/school/example-technical-university/\",\n      \"school_logo_url\": \"https://media.licdn.com/example-school-logo\",\n      \"degree\": \"Bachelor of Science\",\n      \"field_of_study\": \"Computer Science\",\n      \"start_year\": 2014,\n      \"end_year\": 2018\n    }\n  ],\n  \"languages\": [\n    {\n      \"name\": \"English\",\n      \"proficiency\": \"Professional working proficiency\"\n    }\n  ],\n  \"websites\": [\n    \"https://alex-example.example.com\",\n    \"https://github.com/alex-example\"\n  ],\n  \"skills\": [\n    {\n      \"name\": \"TypeScript\",\n      \"endorsement_count\": 42\n    }\n  ],\n  \"certifications\": [\n    {\n      \"name\": \"Example Cloud Architect\",\n      \"organization\": \"Example Cloud Foundation\",\n      \"url\": \"https://certifications.example.com/alex-example/cloud-architect\"\n    }\n  ],\n  \"volunteering\": [\n    {\n      \"organization\": \"Code for Example\",\n      \"role\": \"Volunteer Mentor\",\n      \"cause\": \"Education\",\n      \"description\": \"Mentors early-career developers in a synthetic community program.\",\n      \"start_date\": \"2020-01\",\n      \"end_date\": null\n    }\n  ]\n}\n```\n\nLinkedIn exposes different public details for different profiles. Missing optional data remains `null` rather than being inferred. Permanently inaccessible placeholder fields are not part of the output contract. Profile flags such as `open_to_work`, `premium`, or `creator` are `true`/`false` only when LinkedIn exposes them publicly, otherwise `null`. Company and school links are `null` when the profile provides no public company or school page link.\n\n## Automate profile collection with Apify\n\nThe same `profile` input works in Apify Console, REST requests, API clients, schedules, webhooks, and integrations.\n\n```bash\ncurl -X POST \\\n  \"https://api.apify.com/v2/acts/curly~linkedin-profile-scraper/run-sync-get-dataset-items?format=json\" \\\n  -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  --data '{\n    \"profile\": \"https://www.linkedin.com/in/example-founder/\"\n  }'\n```\n\nFor asynchronous workflows, start an Actor run and read its default dataset after completion. You can also save the input as an Apify task, attach a schedule, or send completed runs to a webhook or integration such as Make, Zapier, n8n, Clay, or Google Sheets.\n\n## Common use cases\n\n- Enrich known public profile URLs in CRM and lead-research workflows\n- Monitor public role, company, location, or profile-description changes\n- Normalize profile records before sending them to a database or spreadsheet\n- Prepare public experience and education data for analysis\n- Add public person-profile data to Make, Zapier, n8n, Clay, or your own application\n\nThis Actor does not discover people by name, search LinkedIn, find email addresses, or scrape company pages. Start with known public person profile URLs or slugs.\n\n## Price and unsuccessful profiles\n\n- **Actor start:** $0.00005 per run, using Apify's recommended synthetic start event\n- **Successful profile result on a paid Apify plan:** $0.0025 per stored profile, equivalent to $2.50 per 1,000 successful results\n- **Apify Free plan:** 3 free profile lookups every 24 hours; further stored results are $0.0035 per profile, equivalent to $3.50 per 1,000\n\nOnly a successfully stored person-profile result emits the billable `person-result` event. Free-allowance results and invalid, inaccessible, unavailable, or capacity-limited profiles do not emit that event and are not charged as profile results. The small Actor-start charge is automatic and still applies whenever a run starts, including an empty, unsuccessful, or exhausted run.\n\nExpected profile-access failures do not fail the Actor run: the run completes with an empty dataset. Details remain available through **Run summary** and **Unavailable or invalid inputs** on the run's Output tab.\n\n## Limits and responsible use\n\n- One submitted LinkedIn person profile URL or slug per run\n- Public, unauthenticated fields only\n- No LinkedIn cookies, passwords, access tokens, or account sessions\n- No email or phone-number discovery\n- No CAPTCHA solving or verification bypass\n- Results depend on what LinkedIn makes public for the requested profile\n\nLinkedIn's terms restrict certain automated collection, and privacy and data-protection requirements vary by location and use case. Use the Actor only where collection and processing are lawful, respect applicable platform and contractual rules, obtain any required permission, and apply appropriate retention and access controls to personal data.\n\n## FAQ\n\n### Do I need a LinkedIn account, login, or cookies?\n\nNo. The Actor collects public person-profile data without asking for LinkedIn credentials, cookies, access tokens, or session details.\n\n### How do I scrape a LinkedIn profile from its URL?\n\nPaste the public person profile URL into the `profile` input and select **Start**. The Actor returns the available public fields as one structured dataset item. You can submit one URL per run.\n\n### Can I scrape multiple LinkedIn profiles?\n\nNo. This Actor accepts one profile per run for reliability. Each run stores the collected profile as a single dataset item.\n\n### What happens when a Free-plan limit is reached?\n\nFree-plan users get 3 free profile lookups within 24 hours. Once the allowance is exhausted the Actor exits normally with a clear `FREE_TIER_EXHAUSTED` run summary and a \"free tier exhausted\" status message, without calling the lookup provider, storing a result, or charging. Apify's automatic $0.00005 Actor-start event still applies because the run has already started.\n\n### Can I scrape a LinkedIn company profile?\n\nNo. This Actor accepts person profiles under `/in/`. Use Curly's [LinkedIn Company Profile Scraper](https://apify.com/curly/linkedin-company-profile-scraper) for company pages.\n\n### Why are some profile fields empty?\n\nLinkedIn exposes different public fields for different profiles and requests. The Actor does not infer unavailable values or use an authenticated session to reveal additional fields.\n\n### What happens when the submitted profile is unavailable?\n\nThe run completes normally with an empty dataset. An unavailable or invalid profile does not create a billable result event.\n\n### What happens when no submitted profile is accessible?\n\nThe run completes normally with an empty dataset instead of reporting an Actor error. Open **Run summary** and **Unavailable or invalid inputs** on the Output tab for the outcome. Because no person-profile dataset item is stored, no pay-per-result event is emitted.\n\n### Does LinkedIn allow profile scraping?\n\nLinkedIn's terms restrict certain automated collection. Laws and permitted uses also vary by jurisdiction and context. Review the applicable terms and privacy requirements, obtain any required permission, and seek legal advice before production or recurring collection.\n\n### Can I schedule recurring runs?\n\nYes. Save the input as an Apify task, attach a schedule, and send completed datasets to a webhook or integration.\n\n## Support\n\nFor questions, missing fields, or unexpected results, contact [hello@trycurly.xyz](mailto:hello@trycurly.xyz).\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "linkedin-profile-scraper",
      "title": "LinkedIn Profile Scraper | No Login or Cookies",
      "version": "0.4",
      "buildTag": "latest",
      "environmentVariables": {
        "BILLING_ENABLED": "1",
        "FREE_TIER_LIMITS_ENABLED": "1",
        "PROFILE_LOOKUP_CREDENTIAL": "@profileLookupMachineCredential",
        "APIFY_LOG_LEVEL": "INFO",
        "SCRAPE_TARGET_HOST": "linkedin.com",
        "SCRAPE_PROFILE_SEGMENT": "in",
        "SCRAPE_TARGET_LABEL": "LinkedIn"
      },
      "dockerfile": "../Dockerfile.gateway",
      "readme": "# LinkedIn Profile Scraper (No Cookies or Login Required)\n\nScrape **one public LinkedIn person profile per run** and export structured profile data for research, enrichment, monitoring, and automated workflows. Free-plan users get 3 free profile lookups within 24 hours.\n\nNo LinkedIn cookies, account, login, browser extension, or proxy setup is required. Enter public `/in/` profile URLs or slugs and receive the fields LinkedIn makes available without an authenticated session.\n\n## Why use this LinkedIn profile scraper?\n\n- **No cookies or login:** collect public profile data without connecting a LinkedIn account or providing session cookies.\n- **No proxy setup:** the required network configuration is included with the Actor.\n- **Single profile per run:** submit one public person profile URL or slug.\n- **Structured profile data:** receive consistent fields for identity, headline, location, company, experience, education, and public network counts.\n- **Ready for automation:** run from Apify Console, schedules, webhooks, integrations, or the Apify API.\n- **Flexible exports:** download datasets as JSON, CSV, Excel, XML, RSS, or another format supported by Apify.\n\n## Quick start\n\n1. Paste one public LinkedIn person profile URL or slug.\n2. Add one profile.\n3. Select **Start**.\n4. Open the dataset to review or download the collected profile records.\n\n### Input\n\n```json\n{\n  \"profile\": \"https://www.linkedin.com/in/example-founder/\"\n}\n```\n\nAccepted inputs include:\n\n- A complete public `linkedin.com/in/...` person profile URL\n- A localized LinkedIn person URL such as `de.linkedin.com/in/...`\n- The profile slug shown after `/in/`\n\nCompany pages, post URLs, search pages, arbitrary names, and non-LinkedIn URLs are not accepted because this Actor is specifically for known LinkedIn person profiles.\n\n## What LinkedIn profile data can you extract?\n\nEach successful profile produces one dataset item that can include:\n\n- **Identity:** profile ID, first name, last name, full name, headline, about text, and canonical LinkedIn URL\n- **Location:** the public location displayed on the profile\n- **Current company:** company name, company ID, company URL, company location, and logo when available\n- **Experience:** job title, employer, company identifiers, location, role description, dates, and company logo for each public role\n- **Education:** school, degree, field of study, attendance years, school URL, and school logo when available\n- **Audience:** public follower and connection counts\n- **Media:** avatar and banner image\n- **Links:** public personal websites listed on the profile\n- **Additional public sections:** languages, skills with endorsement counts, certifications, and volunteering when displayed publicly\n- **Request provenance:** the canonical profile ID and URL plus the original submitted URL\n\nThe exact fields vary by profile and request. Masked, unavailable, or non-public values remain `null`, empty, or absent instead of being guessed.\n\n## Example output\n\nThe values below are representative. Long text and LinkedIn-hosted media URLs are abbreviated, but every top-level output field is included so you can plan your dataset or integration before running the Actor.\n\n```json\n{\n  \"id\": \"alex-example\",\n  \"name\": \"Alex Example\",\n  \"first_name\": \"Alex\",\n  \"last_name\": \"Example\",\n  \"url\": \"https://www.linkedin.com/in/alex-example\",\n  \"input_url\": \"https://www.linkedin.com/in/alex-example/\",\n  \"location\": \"Berlin, Germany\",\n  \"position\": \"Senior Software Engineer at Example Labs\",\n  \"about\": \"Builds reliable software systems and mentors engineering teams.\",\n  \"avatar\": \"https://media.licdn.com/example-avatar\",\n  \"banner_image\": \"https://media.licdn.com/example-banner\",\n  \"followers\": 1250,\n  \"connections\": 500,\n  \"open_to_work\": false,\n  \"hiring\": false,\n  \"premium\": true,\n  \"influencer\": false,\n  \"creator\": true,\n  \"open_profile\": true,\n  \"primary_locale\": {\n    \"country\": \"DE\",\n    \"language\": \"en\"\n  },\n  \"current_company\": {\n    \"company_id\": \"12345678\",\n    \"link\": \"https://www.linkedin.com/company/example-labs/\",\n    \"location\": \"Berlin, Germany\",\n    \"name\": \"Example Labs\",\n    \"logo\": \"https://media.licdn.com/example-company-logo\"\n  },\n  \"experience\": [\n    {\n      \"company\": \"Example Labs\",\n      \"company_id\": \"12345678\",\n      \"company_url\": \"https://www.linkedin.com/company/example-labs/\",\n      \"company_logo_url\": \"https://media.licdn.com/example-company-logo\",\n      \"location\": \"Berlin, Germany\",\n      \"title\": \"Senior Software Engineer\",\n      \"description\": \"Leads a synthetic platform team building distributed services.\",\n      \"employment_type\": \"FULL_TIME\",\n      \"is_current\": true,\n      \"skills\": [\n        \"TypeScript\",\n        \"Distributed Systems\"\n      ],\n      \"start_date\": \"2022-05\",\n      \"end_date\": null\n    }\n  ],\n  \"educations_details\": [\n    {\n      \"school\": \"Example Technical University\",\n      \"school_url\": \"https://www.linkedin.com/school/example-technical-university/\",\n      \"school_logo_url\": \"https://media.licdn.com/example-school-logo\",\n      \"degree\": \"Bachelor of Science\",\n      \"field_of_study\": \"Computer Science\",\n      \"start_year\": 2014,\n      \"end_year\": 2018\n    }\n  ],\n  \"languages\": [\n    {\n      \"name\": \"English\",\n      \"proficiency\": \"Professional working proficiency\"\n    }\n  ],\n  \"websites\": [\n    \"https://alex-example.example.com\",\n    \"https://github.com/alex-example\"\n  ],\n  \"skills\": [\n    {\n      \"name\": \"TypeScript\",\n      \"endorsement_count\": 42\n    }\n  ],\n  \"certifications\": [\n    {\n      \"name\": \"Example Cloud Architect\",\n      \"organization\": \"Example Cloud Foundation\",\n      \"url\": \"https://certifications.example.com/alex-example/cloud-architect\"\n    }\n  ],\n  \"volunteering\": [\n    {\n      \"organization\": \"Code for Example\",\n      \"role\": \"Volunteer Mentor\",\n      \"cause\": \"Education\",\n      \"description\": \"Mentors early-career developers in a synthetic community program.\",\n      \"start_date\": \"2020-01\",\n      \"end_date\": null\n    }\n  ]\n}\n```\n\nLinkedIn exposes different public details for different profiles. Missing optional data remains `null` rather than being inferred. Permanently inaccessible placeholder fields are not part of the output contract. Profile flags such as `open_to_work`, `premium`, or `creator` are `true`/`false` only when LinkedIn exposes them publicly, otherwise `null`. Company and school links are `null` when the profile provides no public company or school page link.\n\n## Automate profile collection with Apify\n\nThe same `profile` input works in Apify Console, REST requests, API clients, schedules, webhooks, and integrations.\n\n```bash\ncurl -X POST \\\n  \"https://api.apify.com/v2/acts/curly~linkedin-profile-scraper/run-sync-get-dataset-items?format=json\" \\\n  -H \"Authorization: Bearer $APIFY_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  --data '{\n    \"profile\": \"https://www.linkedin.com/in/example-founder/\"\n  }'\n```\n\nFor asynchronous workflows, start an Actor run and read its default dataset after completion. You can also save the input as an Apify task, attach a schedule, or send completed runs to a webhook or integration such as Make, Zapier, n8n, Clay, or Google Sheets.\n\n## Common use cases\n\n- Enrich known public profile URLs in CRM and lead-research workflows\n- Monitor public role, company, location, or profile-description changes\n- Normalize profile records before sending them to a database or spreadsheet\n- Prepare public experience and education data for analysis\n- Add public person-profile data to Make, Zapier, n8n, Clay, or your own application\n\nThis Actor does not discover people by name, search LinkedIn, find email addresses, or scrape company pages. Start with known public person profile URLs or slugs.\n\n## Price and unsuccessful profiles\n\n- **Actor start:** $0.00005 per run, using Apify's recommended synthetic start event\n- **Successful profile result on a paid Apify plan:** $0.0025 per stored profile, equivalent to $2.50 per 1,000 successful results\n- **Apify Free plan:** 3 free profile lookups every 24 hours; further stored results are $0.0035 per profile, equivalent to $3.50 per 1,000\n\nOnly a successfully stored person-profile result emits the billable `person-result` event. Free-allowance results and invalid, inaccessible, unavailable, or capacity-limited profiles do not emit that event and are not charged as profile results. The small Actor-start charge is automatic and still applies whenever a run starts, including an empty, unsuccessful, or exhausted run.\n\nExpected profile-access failures do not fail the Actor run: the run completes with an empty dataset. Details remain available through **Run summary** and **Unavailable or invalid inputs** on the run's Output tab.\n\n## Limits and responsible use\n\n- One submitted LinkedIn person profile URL or slug per run\n- Public, unauthenticated fields only\n- No LinkedIn cookies, passwords, access tokens, or account sessions\n- No email or phone-number discovery\n- No CAPTCHA solving or verification bypass\n- Results depend on what LinkedIn makes public for the requested profile\n\nLinkedIn's terms restrict certain automated collection, and privacy and data-protection requirements vary by location and use case. Use the Actor only where collection and processing are lawful, respect applicable platform and contractual rules, obtain any required permission, and apply appropriate retention and access controls to personal data.\n\n## FAQ\n\n### Do I need a LinkedIn account, login, or cookies?\n\nNo. The Actor collects public person-profile data without asking for LinkedIn credentials, cookies, access tokens, or session details.\n\n### How do I scrape a LinkedIn profile from its URL?\n\nPaste the public person profile URL into the `profile` input and select **Start**. The Actor returns the available public fields as one structured dataset item. You can submit one URL per run.\n\n### Can I scrape multiple LinkedIn profiles?\n\nNo. This Actor accepts one profile per run for reliability. Each run stores the collected profile as a single dataset item.\n\n### What happens when a Free-plan limit is reached?\n\nFree-plan users get 3 free profile lookups within 24 hours. Once the allowance is exhausted the Actor exits normally with a clear `FREE_TIER_EXHAUSTED` run summary and a \"free tier exhausted\" status message, without calling the lookup provider, storing a result, or charging. Apify's automatic $0.00005 Actor-start event still applies because the run has already started.\n\n### Can I scrape a LinkedIn company profile?\n\nNo. This Actor accepts person profiles under `/in/`. Use Curly's [LinkedIn Company Profile Scraper](https://apify.com/curly/linkedin-company-profile-scraper) for company pages.\n\n### Why are some profile fields empty?\n\nLinkedIn exposes different public fields for different profiles and requests. The Actor does not infer unavailable values or use an authenticated session to reveal additional fields.\n\n### What happens when the submitted profile is unavailable?\n\nThe run completes normally with an empty dataset. An unavailable or invalid profile does not create a billable result event.\n\n### What happens when no submitted profile is accessible?\n\nThe run completes normally with an empty dataset instead of reporting an Actor error. Open **Run summary** and **Unavailable or invalid inputs** on the Output tab for the outcome. Because no person-profile dataset item is stored, no pay-per-result event is emitted.\n\n### Does LinkedIn allow profile scraping?\n\nLinkedIn's terms restrict certain automated collection. Laws and permitted uses also vary by jurisdiction and context. Review the applicable terms and privacy requirements, obtain any required permission, and seek legal advice before production or recurring collection.\n\n### Can I schedule recurring runs?\n\nYes. Save the input as an Apify task, attach a schedule, and send completed datasets to a webhook or integration.\n\n## Support\n\nFor questions, missing fields, or unexpected results, contact [hello@trycurly.xyz](mailto:hello@trycurly.xyz).\n",
      "input": {
        "title": "LinkedIn Profile Scraper | No Login or Cookies",
        "description": "Scrape one public LinkedIn person profile per run without a LinkedIn login or cookies. Free-plan users get 3 free profile lookups within 24 hours.",
        "type": "object",
        "schemaVersion": 1,
        "additionalProperties": false,
        "properties": {
          "profile": {
            "title": "LinkedIn profile URL or slug",
            "description": "Paste one public LinkedIn person slug or linkedin.com/in profile URL. Free-plan users get 3 free profile lookups within 24 hours. Inaccessible profiles do not create a billable profile result.",
            "type": "string",
            "editor": "textfield",
            "sectionCaption": "Choose a profile",
            "sectionDescription": "Enter one profile per run.",
            "minLength": 1,
            "maxLength": 500,
            "prefill": "https://www.linkedin.com/in/example-founder/"
          }
        },
        "required": [
          "profile"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "LinkedIn profile scraper output",
        "description": "Structured public person profile records are stored in the default dataset. A run summary and unavailable inputs are stored separately. An expected zero-result run completes with an empty dataset instead of an Actor error.",
        "properties": {
          "results": {
            "type": "string",
            "title": "Person profile results",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "runSummary": {
            "type": "string",
            "title": "Run summary",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/RUN_SUMMARY"
          },
          "failedInputs": {
            "type": "string",
            "title": "Unavailable or invalid inputs",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/FAILED_INPUTS"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "fields": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "first_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "input_url": {
                "type": "string"
              },
              "location": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "position": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "about": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "avatar": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "banner_image": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "followers": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "connections": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "open_to_work": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "hiring": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "premium": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "influencer": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "creator": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "open_profile": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "primary_locale": {
                "type": [
                  "object",
                  "null"
                ]
              },
              "current_company": {
                "type": [
                  "object",
                  "null"
                ]
              },
              "experience": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object"
                }
              },
              "educations_details": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object"
                }
              },
              "languages": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object"
                }
              },
              "websites": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string"
                }
              },
              "skills": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object"
                }
              },
              "certifications": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object"
                }
              },
              "volunteering": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "object"
                }
              }
            },
            "required": [
              "id",
              "name",
              "first_name",
              "last_name",
              "url",
              "input_url",
              "location",
              "position",
              "about",
              "avatar",
              "banner_image",
              "followers",
              "connections",
              "open_to_work",
              "hiring",
              "premium",
              "influencer",
              "creator",
              "open_profile",
              "primary_locale",
              "current_company",
              "experience",
              "educations_details",
              "languages",
              "websites",
              "skills",
              "certifications",
              "volunteering"
            ]
          },
          "views": {
            "overview": {
              "title": "LinkedIn person profiles",
              "description": "Verified data from anonymous public LinkedIn person pages.",
              "transformation": {
                "fields": [
                  "name",
                  "url",
                  "position",
                  "about",
                  "current_company",
                  "location",
                  "followers",
                  "connections",
                  "open_to_work",
                  "hiring",
                  "premium",
                  "influencer",
                  "creator",
                  "open_profile",
                  "primary_locale",
                  "experience",
                  "educations_details",
                  "skills",
                  "certifications",
                  "volunteering",
                  "languages",
                  "websites",
                  "avatar",
                  "banner_image",
                  "first_name",
                  "last_name",
                  "id",
                  "input_url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "url": {
                    "format": "link"
                  },
                  "input_url": {
                    "format": "link"
                  },
                  "avatar": {
                    "format": "image"
                  },
                  "banner_image": {
                    "format": "image"
                  },
                  "experience": {
                    "format": "array"
                  },
                  "educations_details": {
                    "format": "array"
                  },
                  "skills": {
                    "format": "array"
                  },
                  "certifications": {
                    "format": "array"
                  },
                  "volunteering": {
                    "format": "array"
                  },
                  "languages": {
                    "format": "array"
                  },
                  "websites": {
                    "format": "array"
                  }
                }
              }
            }
          }
        }
      },
      "minMemoryMbytes": 128,
      "maxMemoryMbytes": 512,
      "defaultMemoryMbytes": 128
    },
    "buildNumber": "0.4.12",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "0.4"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.014787777777777778
    }
  }
}