{
  "data": {
    "id": "1balJ72pCNZm5S0mI",
    "actId": "K3tm04uYvHLtYYFSR",
    "userId": "umqHl4LhqmPHcBh0L",
    "startedAt": "2026-09-27T15:34:08.907Z",
    "finishedAt": "2026-09-27T15:34:12.436Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 3439,
      "runTimeSecs": 3.439,
      "computeUnits": 0.003821111111111111,
      "imageSizeBytes": 595122176
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"LinkedIn Profile Data Extractor (No Cookies Required)\",\n  \"description\": \"Extract public LinkedIn profiles using ScrapeCreators. No LinkedIn login or cookies. Verified free-plan runs are capped at five profiles. Company pages and profile search are unsupported.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"additionalProperties\": false,\n  \"properties\": {\n    \"profiles\": {\n      \"title\": \"Profile URLs or handles\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\",\n      \"description\": \"Provide public person profile URLs or handles, for example https://www.linkedin.com/in/parrsam/ or parrsam. Up to 100 unique profiles; duplicates are removed. Company URLs are unsupported.\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"minItems\": 1,\n      \"maxItems\": 100,\n      \"prefill\": [\n        \"https://www.linkedin.com/in/parrsam/\"\n      ],\n      \"default\": [\n        \"https://www.linkedin.com/in/parrsam/\"\n      ]\n    },\n    \"maxResults\": {\n      \"title\": \"Maximum profiles\",\n      \"type\": \"integer\",\n      \"editor\": \"number\",\n      \"description\": \"Maximum unique profiles delivered. Default 10, range 1–100. Verified free-plan users receive at most five.\",\n      \"default\": 10,\n      \"minimum\": 1,\n      \"maximum\": 100\n    }\n  },\n  \"required\": [\n    \"profiles\"\n  ]\n}",
    "readme": "# LinkedIn Profile Data Extractor (No Cookies Required)\n\nExtract public LinkedIn person profiles from URLs or handles through ScrapeCreators. Use the output for recruiting research, CRM enrichment, and professional profile analysis. No LinkedIn login, session cookies, or user proxy configuration is required. The operator supplies a private ScrapeCreators API key.\n\n## What it extracts\n\nEach dataset item represents one unique public profile. It contains `profileUrl`, `profileId`, `name`, `image`, `location`, `followers`, `connections`, `about`, `experience`, `education`, `recentPosts`, `articles`, `activity`, `publications`, `projects`, `recommendations`, `similarProfiles`, `scrapedAt`, and `source`.\n\nUnavailable scalar fields are null; unavailable collections are empty arrays. Nested collections retain the provider's public structure, including organization roles and dates. Public LinkedIn pages can omit or mask descriptions. This Actor preserves that information as returned and does not infer missing employment, education, email addresses, phone numbers, or private details.\n\n## Input\n\n```json\n{\n  \"profiles\": [\"https://www.linkedin.com/in/parrsam/\", \"parrsam\"],\n  \"maxResults\": 10\n}\n```\n\n`profiles` accepts 1–100 person URLs or handles. Regional LinkedIn domains, HTTP URLs, trailing slashes, and tracking parameters normalize to canonical HTTPS URLs. Duplicate handles are processed once. Every entry is validated before provider work; one invalid entry rejects the input with an actionable summary.\n\n`maxResults` is an integer from 1 to 100, default 10. Verified Apify free-plan runs are limited to five delivered profiles. Paid runs retain the requested cap; an absent local plan indicator does not imply a free plan.\n\nThe default/prefill extracts Sam Parr's public profile. Company pages, search, email discovery, follower lists, arbitrary web URLs, and pagination are unsupported. Supply the profiles you already want to inspect.\n\n## Output and diagnostics\n\nDownload the default dataset as JSON, CSV, or Excel through Apify. The overview view shows names, source links, locations, follower counts, bios, experience, and education. `SUMMARY` in the default key-value store reports the outcome, delivered count, request attempts, observed provider credits, cap, warnings, and stop reason. Diagnostics never appear as fake profiles in the dataset.\n\nA minimal illustrative record:\n\n```json\n{\n  \"profileUrl\": \"https://www.linkedin.com/in/parrsam/\",\n  \"profileId\": \"parrsam\",\n  \"name\": \"Sam Parr\",\n  \"source\": \"scrapecreators\"\n}\n```\n\nActual records include all schema fields. Counts and profile contents can change.\n\n## Reliability and limits\n\nRequests run sequentially with a 45-second timeout. Explicit transient HTTP failures retry at most twice with backoff and jitter; ambiguous network failures are not retried because a provider may already have spent credits. The run stops after three consecutive failures, on provider authentication/credit/access failures, on the charge limit, or near its four-minute runtime ceiling. Completed records survive subsequent failures. Partial results include warnings; an all-error run fails honestly. A genuine HTTP 404 produces a no-match warning with no result record. Malformed provider responses do not count as empty profiles.\n\nThe private `STATE` record supports resuming completed work within the same run. Migration and abort stop new requests and preserve counters. A hard crash between a dataset write and checkpoint can still require owner inspection before resurrection.\n\n## Pay per event\n\nVerified live all-in PPE prices:\n\n| Event | FREE | BRONZE (2.5% off) | SILVER (5% off) | GOLD (20% off) |\n|---|---:|---:|---:|---:|\n| Run start | $0.00625 | $0.006094 | $0.005938 | $0.005 |\n| Delivered public profile | $0.025 | $0.024375 | $0.023750 | $0.020000 |\n\nThe start event is automatic. Each valid dataset record triggers one automatic dataset-item event; the code never manually charges either event. Failed, missing, and duplicate profiles do not generate result events. At FREE-tier list prices, one delivered profile costs $0.03125 and ten cost $0.25625 including the start fee. Platform usage is included; users do not pay separate platform usage costs. A PPE charge cap bounds customer events; request count, timeout, retries, and profile caps independently bound provider/platform work.\n\nAt the official $47 / 25,000-credit package, one credit costs $0.00188. A three-attempt profile budget is $0.00564 before platform usage. The GOLD profile price yields $0.016 creator proceeds after the 20% platform share, leaving $0.01036 before platform cost at that retry allowance. This is a conservative pricing assumption, not evidence that every error consumes one credit. The owner pays ScrapeCreators credits and platform costs. The observed probe used one credit; cached or retried requests can differ. Provider credit totals in SUMMARY are marked unknown when error responses do not disclose credit consumption. The cloud matrix delivered 16 profiles using 16 reported provider credits with matching result events. Provider invoice cost is estimated from the published credit package; it is separate from measured Apify usage.\n\n## Private configuration and local development\n\nSet `SCRAPECREATORS_API_KEY` in the operator environment or use the configured Apify secret of that name. It is absent from the public input schema, dataset, and logs. Never paste a key into source or input.\n\n```sh\nnpm ci\nnpm test\nnpm run check\napify run\n```\n\nFor API or Apify MCP use, invoke this Actor with the same JSON input and read its default dataset and SUMMARY. No Standby server is provided. The Actor and example Tasks remain private until owner publication.\n\n## Data use\n\nOnly request public profiles for a legitimate purpose and handle personal information according to applicable requirements. Public visibility does not guarantee that every field is present or current. This tool does not access private accounts, bypass login, or promise contact information. Include the run ID and redacted SUMMARY when reporting a problem.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "linkedin-profile-data-extractor",
      "title": "LinkedIn Profile Data Extractor (No Cookies Required)",
      "version": "1.0",
      "buildTag": "latest",
      "input": {
        "title": "LinkedIn Profile Data Extractor (No Cookies Required)",
        "description": "Extract public LinkedIn profiles using ScrapeCreators. No LinkedIn login or cookies. Verified free-plan runs are capped at five profiles. Company pages and profile search are unsupported.",
        "type": "object",
        "schemaVersion": 1,
        "additionalProperties": false,
        "properties": {
          "profiles": {
            "title": "Profile URLs or handles",
            "type": "array",
            "editor": "stringList",
            "description": "Provide public person profile URLs or handles, for example https://www.linkedin.com/in/parrsam/ or parrsam. Up to 100 unique profiles; duplicates are removed. Company URLs are unsupported.",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 100,
            "prefill": [
              "https://www.linkedin.com/in/parrsam/"
            ],
            "default": [
              "https://www.linkedin.com/in/parrsam/"
            ]
          },
          "maxResults": {
            "title": "Maximum profiles",
            "type": "integer",
            "editor": "number",
            "description": "Maximum unique profiles delivered. Default 10, range 1–100. Verified free-plan users receive at most five.",
            "default": 10,
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [
          "profiles"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Public LinkedIn profile output",
        "properties": {
          "profiles": {
            "type": "string",
            "title": "Profiles",
            "description": "Public profile records in the default dataset.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "summary": {
            "type": "string",
            "title": "Run diagnostics",
            "description": "Outcome, limits, counts and warnings.",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/SUMMARY"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "fields": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "profileUrl": {
                "type": "string",
                "title": "profileUrl",
                "description": "Public profile profileUrl; unavailable optional values are null.",
                "example": "https://www.linkedin.com/in/parrsam/"
              },
              "profileId": {
                "type": "string",
                "title": "profileId",
                "description": "Public profile profileId; unavailable optional values are null.",
                "example": "parrsam"
              },
              "name": {
                "type": "string",
                "title": "name",
                "description": "Public profile name; unavailable optional values are null.",
                "example": "Sam Parr"
              },
              "image": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "image",
                "description": "Public profile image; unavailable optional values are null.",
                "example": null
              },
              "location": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "location",
                "description": "Public profile location; unavailable optional values are null.",
                "example": null
              },
              "about": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "about",
                "description": "Public profile about; unavailable optional values are null.",
                "example": null
              },
              "connections": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "connections",
                "description": "Public profile connections; unavailable optional values are null.",
                "example": null
              },
              "scrapedAt": {
                "type": "string",
                "title": "scrapedAt",
                "description": "Public profile scrapedAt; unavailable optional values are null.",
                "example": null
              },
              "source": {
                "type": "string",
                "title": "source",
                "description": "Public profile source; unavailable optional values are null.",
                "example": "scrapecreators"
              },
              "followers": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Followers",
                "description": "Public follower count; null when unavailable.",
                "example": 64803
              },
              "experience": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "experience",
                "description": "Public experience entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "education": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "education",
                "description": "Public education entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "recentPosts": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "recentPosts",
                "description": "Public recentPosts entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "articles": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "articles",
                "description": "Public articles entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "activity": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "activity",
                "description": "Public activity entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "publications": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "publications",
                "description": "Public publications entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "projects": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "projects",
                "description": "Public projects entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "recommendations": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "recommendations",
                "description": "Public recommendations entries preserved in provider structure; empty when unavailable.",
                "example": []
              },
              "similarProfiles": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "title": "similarProfiles",
                "description": "Public similarProfiles entries preserved in provider structure; empty when unavailable.",
                "example": []
              }
            },
            "required": [
              "profileUrl",
              "profileId",
              "name",
              "image",
              "location",
              "about",
              "connections",
              "scrapedAt",
              "source",
              "followers",
              "experience",
              "education",
              "recentPosts",
              "articles",
              "activity",
              "publications",
              "projects",
              "recommendations",
              "similarProfiles"
            ]
          },
          "views": {
            "overview": {
              "title": "Profile overview",
              "transformation": {
                "fields": [
                  "name",
                  "profileUrl",
                  "location",
                  "followers",
                  "about",
                  "experience",
                  "education"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "name": {
                    "label": "Name",
                    "format": "text"
                  },
                  "profileUrl": {
                    "label": "LinkedIn profile",
                    "format": "link"
                  },
                  "location": {
                    "label": "Location",
                    "format": "text"
                  },
                  "followers": {
                    "label": "Followers",
                    "format": "number"
                  },
                  "about": {
                    "label": "About",
                    "format": "text"
                  },
                  "experience": {
                    "label": "Experience",
                    "format": "object"
                  },
                  "education": {
                    "label": "Education",
                    "format": "object"
                  }
                }
              }
            }
          }
        },
        "keyValueStore": {
          "actorKeyValueStoreSchemaVersion": 1,
          "title": "Run records",
          "collections": {
            "summary": {
              "key": "SUMMARY",
              "title": "Run summary",
              "description": "Outcome, delivered count, provider credit usage, warnings and stop reason.",
              "contentTypes": [
                "application/json"
              ]
            },
            "state": {
              "key": "STATE",
              "title": "Resume state",
              "description": "Completed profile IDs and aggregate delivery counters; no credentials.",
              "contentTypes": [
                "application/json"
              ]
            }
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# LinkedIn Profile Data Extractor (No Cookies Required)\n\nExtract public LinkedIn person profiles from URLs or handles through ScrapeCreators. Use the output for recruiting research, CRM enrichment, and professional profile analysis. No LinkedIn login, session cookies, or user proxy configuration is required. The operator supplies a private ScrapeCreators API key.\n\n## What it extracts\n\nEach dataset item represents one unique public profile. It contains `profileUrl`, `profileId`, `name`, `image`, `location`, `followers`, `connections`, `about`, `experience`, `education`, `recentPosts`, `articles`, `activity`, `publications`, `projects`, `recommendations`, `similarProfiles`, `scrapedAt`, and `source`.\n\nUnavailable scalar fields are null; unavailable collections are empty arrays. Nested collections retain the provider's public structure, including organization roles and dates. Public LinkedIn pages can omit or mask descriptions. This Actor preserves that information as returned and does not infer missing employment, education, email addresses, phone numbers, or private details.\n\n## Input\n\n```json\n{\n  \"profiles\": [\"https://www.linkedin.com/in/parrsam/\", \"parrsam\"],\n  \"maxResults\": 10\n}\n```\n\n`profiles` accepts 1–100 person URLs or handles. Regional LinkedIn domains, HTTP URLs, trailing slashes, and tracking parameters normalize to canonical HTTPS URLs. Duplicate handles are processed once. Every entry is validated before provider work; one invalid entry rejects the input with an actionable summary.\n\n`maxResults` is an integer from 1 to 100, default 10. Verified Apify free-plan runs are limited to five delivered profiles. Paid runs retain the requested cap; an absent local plan indicator does not imply a free plan.\n\nThe default/prefill extracts Sam Parr's public profile. Company pages, search, email discovery, follower lists, arbitrary web URLs, and pagination are unsupported. Supply the profiles you already want to inspect.\n\n## Output and diagnostics\n\nDownload the default dataset as JSON, CSV, or Excel through Apify. The overview view shows names, source links, locations, follower counts, bios, experience, and education. `SUMMARY` in the default key-value store reports the outcome, delivered count, request attempts, observed provider credits, cap, warnings, and stop reason. Diagnostics never appear as fake profiles in the dataset.\n\nA minimal illustrative record:\n\n```json\n{\n  \"profileUrl\": \"https://www.linkedin.com/in/parrsam/\",\n  \"profileId\": \"parrsam\",\n  \"name\": \"Sam Parr\",\n  \"source\": \"scrapecreators\"\n}\n```\n\nActual records include all schema fields. Counts and profile contents can change.\n\n## Reliability and limits\n\nRequests run sequentially with a 45-second timeout. Explicit transient HTTP failures retry at most twice with backoff and jitter; ambiguous network failures are not retried because a provider may already have spent credits. The run stops after three consecutive failures, on provider authentication/credit/access failures, on the charge limit, or near its four-minute runtime ceiling. Completed records survive subsequent failures. Partial results include warnings; an all-error run fails honestly. A genuine HTTP 404 produces a no-match warning with no result record. Malformed provider responses do not count as empty profiles.\n\nThe private `STATE` record supports resuming completed work within the same run. Migration and abort stop new requests and preserve counters. A hard crash between a dataset write and checkpoint can still require owner inspection before resurrection.\n\n## Pay per event\n\nVerified live all-in PPE prices:\n\n| Event | FREE | BRONZE (2.5% off) | SILVER (5% off) | GOLD (20% off) |\n|---|---:|---:|---:|---:|\n| Run start | $0.00625 | $0.006094 | $0.005938 | $0.005 |\n| Delivered public profile | $0.025 | $0.024375 | $0.023750 | $0.020000 |\n\nThe start event is automatic. Each valid dataset record triggers one automatic dataset-item event; the code never manually charges either event. Failed, missing, and duplicate profiles do not generate result events. At FREE-tier list prices, one delivered profile costs $0.03125 and ten cost $0.25625 including the start fee. Platform usage is included; users do not pay separate platform usage costs. A PPE charge cap bounds customer events; request count, timeout, retries, and profile caps independently bound provider/platform work.\n\nAt the official $47 / 25,000-credit package, one credit costs $0.00188. A three-attempt profile budget is $0.00564 before platform usage. The GOLD profile price yields $0.016 creator proceeds after the 20% platform share, leaving $0.01036 before platform cost at that retry allowance. This is a conservative pricing assumption, not evidence that every error consumes one credit. The owner pays ScrapeCreators credits and platform costs. The observed probe used one credit; cached or retried requests can differ. Provider credit totals in SUMMARY are marked unknown when error responses do not disclose credit consumption. The cloud matrix delivered 16 profiles using 16 reported provider credits with matching result events. Provider invoice cost is estimated from the published credit package; it is separate from measured Apify usage.\n\n## Private configuration and local development\n\nSet `SCRAPECREATORS_API_KEY` in the operator environment or use the configured Apify secret of that name. It is absent from the public input schema, dataset, and logs. Never paste a key into source or input.\n\n```sh\nnpm ci\nnpm test\nnpm run check\napify run\n```\n\nFor API or Apify MCP use, invoke this Actor with the same JSON input and read its default dataset and SUMMARY. No Standby server is provided. The Actor and example Tasks remain private until owner publication.\n\n## Data use\n\nOnly request public profiles for a legitimate purpose and handle personal information according to applicable requirements. Public visibility does not guarantee that every field is present or current. This tool does not access private accounts, bypass login, or promise contact information. Include the run ID and redacted SUMMARY when reporting a problem.\n",
      "defaultMemoryMbytes": 256,
      "minMemoryMbytes": 256,
      "maxMemoryMbytes": 512,
      "environmentVariables": {
        "SCRAPECREATORS_API_KEY": "@SCRAPECREATORS_API_KEY"
      }
    },
    "buildNumber": "1.0.4",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.003821111111111111
    }
  }
}