{
  "data": {
    "id": "b61weyZ75wkR7XJRk",
    "actId": "WBqEQJHcVpHl0aJEt",
    "userId": "8T8coffdHrph4OMpn",
    "startedAt": "2026-09-17T08:16:10.446Z",
    "finishedAt": "2026-09-17T08:16:12.034Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 1429,
      "runTimeSecs": 1.429,
      "computeUnits": 0.0015877777777777778,
      "imageSizeBytes": 525544960
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"LinkedIn Scraper\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"urls\": {\n      \"title\": \"LinkedIn URLs\",\n      \"type\": \"array\",\n      \"description\": \"The pages to scrape. Mix people, companies and posts freely — each URL is routed to the right lookup automatically. People look like linkedin.com/in/name, companies like linkedin.com/company/name, posts like linkedin.com/posts/… or linkedin.com/feed/update/urn:li:activity:… Anything that is not one of those is skipped and costs you nothing. Up to 500 URLs per run.\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"https://www.linkedin.com/in/williamhgates\",\n        \"https://www.linkedin.com/company/microsoft\"\n      ],\n      \"uniqueItems\": true,\n      \"minItems\": 1,\n      \"maxItems\": 500\n    },\n    \"includePostComments\": {\n      \"title\": \"Include comments on posts\",\n      \"type\": \"boolean\",\n      \"description\": \"Applies to post URLs. LinkedIn shows about ten comments on a public post page whatever the real total, so this returns those and reports whether more exist. Included in the post price — there is no separate comment charge.\",\n      \"editor\": \"checkbox\",\n      \"default\": true\n    },\n    \"includeRelatedProfiles\": {\n      \"title\": \"Include related profiles\",\n      \"type\": \"boolean\",\n      \"description\": \"Applies to person URLs. Adds the 'people also viewed' list — roughly 20 similar profiles with names and links, which is useful for building a prospect list from one starting point. Included in the profile price.\",\n      \"editor\": \"checkbox\",\n      \"default\": false\n    }\n  },\n  \"required\": [\n    \"urls\"\n  ]\n}",
    "readme": "# LinkedIn Scraper: People, Companies & Posts\n\nGive it a list of LinkedIn URLs. Get back people with their work history and recent posts, company pages with follower and employee counts, and individual posts with full engagement — in one run, with no LinkedIn login and no cookies.\n\nMix people, companies and posts in the same list. Each URL is routed to the right lookup automatically.\n\nBuilt for lead research, competitor monitoring, recruitment sourcing and content analysis.\n\n---\n\n## What it does\n\n- **People** — full work history, education, follower count, and their **recent posts and reposts with the complete text**, so you can see what someone actually talks about\n- **Companies** — description, industry, size, **follower and employee counts**, every office location, and the companies LinkedIn lists as similar\n- **Posts** — full text, reactions, reaction types, comments, and video with per-quality URLs and transcripts\n- **Comments included free** — post comments are part of the post price, not a separate charge\n- **Related profiles** — around twenty \"people also viewed\" per person, which turns one name into a prospect list\n- **No login required** — no LinkedIn account, no cookies, no session token, ever\n- **Every URL accounted for** — each one you supply comes back with a record, so you always know what was found\n- **Honest about gating** — where LinkedIn hides a field from logged-out visitors, the record names it rather than leaving you guessing\n\n---\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `urls` | array | — | **Required.** Mix people, companies and posts freely. Anything that is not one of those is skipped and costs nothing. Max `500` per run |\n| `includePostComments` | boolean | `true` | Return comments on post URLs. Included in the post price |\n| `includeRelatedProfiles` | boolean | `false` | Add the \"people also viewed\" list to person records. Included in the profile price |\n\n**Accepted URL shapes**\n\n```\nPeople      linkedin.com/in/satyanadella\nCompanies   linkedin.com/company/microsoft\nSchools     linkedin.com/school/harvard-university\nPosts       linkedin.com/posts/…-activity-7298318111240257536-MZHu\n            linkedin.com/feed/update/urn:li:activity:7298318111240257536\n```\n\nA missing `https://`, a trailing slash, a query string, or a regional subdomain like `in.linkedin.com` all work.\n\n### Example input\n\n```json\n{\n  \"urls\": [\n    \"https://www.linkedin.com/in/satyanadella\",\n    \"https://www.linkedin.com/company/microsoft\",\n    \"https://www.linkedin.com/posts/satyanadella_activity-7298318111240257536-MZHu\"\n  ],\n  \"includePostComments\": true,\n  \"includeRelatedProfiles\": true\n}\n```\n\n---\n\n## Output\n\nOne record per URL. Every record carries `type` (`profile`, `company` or `post`), `url` (the page it is for) and `status`.\n\n### Person records\n\n| Field | Type | Description |\n|---|---|---|\n| `fullName`, `firstName`, `lastName` | string \\| null | Name |\n| `publicIdentifier` | string \\| null | The handle from the profile URL |\n| `headline` | string \\| null | Profile headline |\n| `location`, `country` | string \\| null | Stated location |\n| `about` | string \\| null | About text |\n| `followers`, `connections` | number \\| null | Audience size |\n| `profilePhotoUrl`, `coverImageUrl` | string \\| null | Profile picture and banner |\n| `currentCompany`, `currentSchool` | object \\| null | Present employer and school |\n| `totalExperiences` | number \\| null | How many positions were found |\n| `experience` | array | Work history with company, dates and duration |\n| `education` | array | Education history |\n| `activity` | array | **Recent posts and reposts with full text**, author and link. A repost is marked in `action` |\n| `activityCount` | number \\| null | How many activity items were returned |\n| `articles` | array | Long-form articles with title, link and cover image |\n| `awards`, `volunteerExperience`, `recommendations`, `publications`, `websites` | array | Where the profile shows them publicly |\n| `relatedProfiles` | array | \"People also viewed\". Empty unless requested |\n| `fieldsWithheldByLinkedIn` | array | Which fields LinkedIn does not render publicly |\n| `aboutTruncated` | boolean \\| null | Whether LinkedIn cut the About text |\n\n### Company records\n\n| Field | Type | Description |\n|---|---|---|\n| `companyName`, `tagline`, `description` | string \\| null | Identity |\n| `industry`, `specialties`, `companyType` | string \\| null | Classification |\n| `companySize` | string \\| null | Band, e.g. `10,001+ employees` |\n| `followersCount`, `employeesCount` | number \\| null | Audience and headcount |\n| `headquarters`, `website` | string \\| null | Where and what |\n| `logoUrl`, `coverImageUrl` | string \\| null | Company logo and banner |\n| `locations` | array | Every office with address |\n| `similarCompanies` | array | Ten companies LinkedIn lists as similar |\n| `sampleEmployees` | array | A handful of staff with name, title and profile link |\n| `recentPosts`, `companyUpdates` | array | A sample of the page's own content |\n\n### Post records\n\n| Field | Type | Description |\n|---|---|---|\n| `postId`, `postType`, `postedAt` | | `text`, `image`, `video`, `article` or `discussion` |\n| `caption`, `articleBody` | string \\| null | The post text |\n| `hashtags` | array | Hashtags used in the post |\n| `authorName`, `authorHandle`, `authorProfileUrl` | string \\| null | Who wrote it. Handle is `null` for company-page authors |\n| `authorFollowerCount` | number \\| null | The author's total followers |\n| `likeCount`, `commentCount`, `viewCount` | number \\| null | Engagement |\n| `reactionTypes` | array | Which reactions are present — like, praise, empathy and so on |\n| `comments` | array | Author, text, likes and timestamp per comment |\n| `commentsReturned` | number | How many this record contains |\n| `commentsRemaining` | boolean | Whether the post has more than LinkedIn shows publicly |\n| `videoUrl`, `videoUrlsByQuality`, `transcript`, `captionsVttUrl` | | Video, at each quality, with transcript |\n| `imageUrls`, `thumbnailUrl`, `durationSeconds` | | Media |\n\nEvery record also carries `status`: `ok`, `not_found` for a page that is not publicly visible, or `unavailable` if the source could not be reached.\n\n---\n\n## Pricing\n\nCharged per page looked up, plus a small fixed fee when a run starts. **Comments on posts and related profiles are included** — there is no separate charge for either.\n\nPrices fall on larger Apify plans.\n\n| Event | Free plan | Starter | Scale | Business and above |\n|---|---|---|---|---|\n| Person profile | $2.90 per 1,000 | $2.70 | $2.55 | **$2.40 per 1,000** |\n| Company page | $2.90 per 1,000 | $2.50 | $2.10 | **$1.80 per 1,000** |\n| Post | $2.90 per 1,000 | $2.50 | $2.10 | **$1.80 per 1,000** |\n| Run start | $0.005 per run | $0.005 | $0.005 | $0.005 |\n\nA URL that is not a LinkedIn profile, company or post is rejected before any lookup and costs nothing.\n\n### Worked examples, at Business-plan rates\n\nTotals are rounded to the nearest cent.\n\n**Lead research — 250 people**\n250 × $0.0024 + $0.005 = **≈$0.61**\n\n**Competitor watch — 50 companies and 200 of their posts**\n50 × $0.0018 + 200 × $0.0018 + $0.005 = **≈$0.46**\n\n**Sourcing sweep — 750 people with related profiles**\n750 × $0.0024 + $0.005 = **≈$1.81**\n\nSet **Maximum cost per run** in the run options to cap spend. The Actor stops cleanly at that ceiling and returns everything it charged for.\n\n---\n\n## Good to know\n\n**Comments on a post are capped at roughly ten.** That is LinkedIn's own limit — a public post page embeds about ten comments however many the post really has. `commentsRemaining` tells you when there are more. No tool reading public pages can return the rest.\n\n**LinkedIn hides some profile fields from logged-out visitors.** Skills, certifications and per-position job titles are not rendered publicly, and the About text is often cut short. Rather than silently returning blanks, every person record lists exactly what was withheld in `fieldsWithheldByLinkedIn`.\n\n**You supply the URLs.** There is no keyword or name search — this Actor reads pages you point it at.\n\n---\n\n## Tips\n\n- **Start with people, add companies later.** Person records carry the richest signal, particularly the activity feed.\n- **Turn on related profiles for sourcing.** One good profile yields around twenty adjacent ones, at no extra cost.\n- **Use the activity feed to qualify.** It tells you whether someone actually posts, and what about, which a static profile cannot.\n- **Keep lists tidy.** Every URL you supply is looked up, so a clean list keeps runs quick.\n\n---\n\n## Support\n\nReport a problem through the **Issues** tab on this Actor's page. Issues are reviewed regularly.\n\nWhen reporting, please include the run ID, the input you used, and what you expected.\n\nFor volume enquiries, custom requirements, or anything not specific to a single run, email **socialhtz@gmail.com**.\n",
    "changelog": "# Changelog\n\n## 1.0 — 2026-09-16\n\nInitial release.\n\n- People, companies and posts from one mixed list of URLs, each routed automatically\n- Person records carry work history, education, follower count, articles, and recent posts and reposts with full text\n- Company records carry follower and employee counts, every office location, similar companies and a sample of staff\n- Post records carry full text, reactions and reaction types, media at each video quality, and transcripts where available\n- Post comments and related profiles are included in the page price rather than metered separately\n- Fields LinkedIn withholds from logged-out visitors are named in each record instead of returning silent blanks\n- URLs that are not a LinkedIn profile, company or post are rejected before any billable lookup, as are duplicates\n- Requests time out at 15 seconds and retry up to 5 times with capped backoff, so a slow source costs a slower run rather than a dead one\n- A five-minute collection deadline delivers whatever has been gathered instead of returning nothing\n- Up to 500 URLs per run; a longer list is rejected by the input form\n",
    "actorDefinition": {
      "$schema": "https://apify.com/schemas/v1/actor.ide.json",
      "actorSpecification": 1,
      "name": "linkedin-profile-company-post-scraper",
      "title": "LinkedIn Scraper: People, Companies & Posts",
      "description": "Scrape LinkedIn people, companies and posts from a list of URLs. Work history, recent posts with full text, follower and employee counts. Post comments included, not metered separately. No login, no cookies. From $1.80/1K on Business plans. No search: you supply the URLs.",
      "version": "1.0",
      "buildTag": "latest",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "fields": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "profile, company or post"
              },
              "url": {
                "type": "string",
                "description": "The LinkedIn URL this record is for"
              },
              "status": {
                "type": "string",
                "description": "ok, not_found or unavailable"
              },
              "fullName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Person's full name"
              },
              "firstName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Person's first name"
              },
              "lastName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Person's last name"
              },
              "headline": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Profile headline; LinkedIn withholds this from logged-out visitors on some profiles"
              },
              "location": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Stated location"
              },
              "country": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Two-letter country code"
              },
              "about": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "About text; often truncated by LinkedIn, see aboutTruncated"
              },
              "publicIdentifier": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The handle from the profile URL"
              },
              "profilePhotoUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Profile picture"
              },
              "coverImageUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Cover image"
              },
              "followers": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Follower count"
              },
              "connections": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Connection count where shown"
              },
              "currentCompany": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Current employer name, URL and logo"
              },
              "currentSchool": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Most recent school"
              },
              "totalExperiences": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Number of positions found"
              },
              "experience": {
                "type": "array",
                "description": "Work history. Job titles are asterisk-masked by LinkedIn for logged-out visitors"
              },
              "education": {
                "type": "array",
                "description": "Education history"
              },
              "awards": {
                "type": "array",
                "description": "Awards, where the profile shows them publicly"
              },
              "volunteerExperience": {
                "type": "array",
                "description": "Volunteer history, where shown"
              },
              "recommendations": {
                "type": "array",
                "description": "Recommendations, where shown"
              },
              "publications": {
                "type": "array",
                "description": "Publications, where shown"
              },
              "websites": {
                "type": "array",
                "description": "Links listed on the profile"
              },
              "activity": {
                "type": "array",
                "description": "Recent posts and reposts with full text, author and link"
              },
              "activityCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "How many activity items were returned"
              },
              "articles": {
                "type": "array",
                "description": "Long-form articles with title, link and cover image"
              },
              "relatedProfiles": {
                "type": "array",
                "description": "People also viewed; empty unless requested"
              },
              "fieldsWithheldByLinkedIn": {
                "type": "array",
                "description": "Fields LinkedIn does not render to logged-out visitors, reported by the source"
              },
              "aboutTruncated": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Whether LinkedIn cut the About text"
              },
              "companyName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Company name"
              },
              "tagline": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Company tagline"
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Company description"
              },
              "website": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Company website"
              },
              "industry": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Industry"
              },
              "specialties": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Stated specialties"
              },
              "companyType": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Public company, privately held, and so on"
              },
              "companySize": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Size band, e.g. 10,001+ employees"
              },
              "headquarters": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Headquarters location"
              },
              "followersCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Company page followers"
              },
              "employeesCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Employees on LinkedIn"
              },
              "logoUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Company logo"
              },
              "locations": {
                "type": "array",
                "description": "Office locations with addresses"
              },
              "similarCompanies": {
                "type": "array",
                "description": "Companies LinkedIn lists as similar"
              },
              "sampleEmployees": {
                "type": "array",
                "description": "A small sample of employees, not a full roster"
              },
              "recentPosts": {
                "type": "array",
                "description": "A sample of recent company posts"
              },
              "companyUpdates": {
                "type": "array",
                "description": "A sample of company updates"
              },
              "postId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Post identifier"
              },
              "postType": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "text, image, video, article or discussion"
              },
              "postedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "ISO 8601 UTC"
              },
              "caption": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Post text"
              },
              "articleBody": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Full body for text posts"
              },
              "hashtags": {
                "type": "array",
                "description": "Hashtags in the post"
              },
              "authorName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Post author"
              },
              "authorHandle": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Author handle; null for company-page authors"
              },
              "authorProfileUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Author profile link"
              },
              "authorFollowerCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Author's total followers"
              },
              "likeCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Total reactions"
              },
              "commentCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "LinkedIn's own comment total"
              },
              "viewCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Views; only some native videos expose this publicly"
              },
              "reactionTypes": {
                "type": "array",
                "description": "Which reaction types are present; LinkedIn does not expose per-type counts"
              },
              "comments": {
                "type": "array",
                "description": "Embedded comments. LinkedIn shows about ten on a public post page"
              },
              "commentsReturned": {
                "type": "integer",
                "description": "How many comments this record contains"
              },
              "commentsRemaining": {
                "type": "boolean",
                "description": "True when the post has more comments than LinkedIn embeds publicly"
              },
              "thumbnailUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Cover frame"
              },
              "videoUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Highest-quality video"
              },
              "videoUrlsByQuality": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Video variants by quality"
              },
              "imageUrls": {
                "type": "array",
                "description": "Images on the post"
              },
              "durationSeconds": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Video length"
              },
              "transcript": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Flattened video transcript where available"
              },
              "captionsVttUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Subtitle file where available"
              }
            }
          },
          "views": {
            "overview": {
              "title": "Results",
              "transformation": {
                "fields": [
                  "type",
                  "status",
                  "fullName",
                  "companyName",
                  "authorName",
                  "headline",
                  "industry",
                  "followers",
                  "followersCount",
                  "likeCount",
                  "commentCount",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "type": {
                    "label": "Kind"
                  },
                  "status": {
                    "label": "Status"
                  },
                  "fullName": {
                    "label": "Person"
                  },
                  "companyName": {
                    "label": "Company"
                  },
                  "authorName": {
                    "label": "Post author"
                  },
                  "headline": {
                    "label": "Headline"
                  },
                  "industry": {
                    "label": "Industry"
                  },
                  "followers": {
                    "label": "Followers"
                  },
                  "followersCount": {
                    "label": "Company followers"
                  },
                  "likeCount": {
                    "label": "Reactions"
                  },
                  "commentCount": {
                    "label": "Comments"
                  },
                  "url": {
                    "label": "Link",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      },
      "dockerfile": "./Dockerfile",
      "changelog": "# Changelog\n\n## 1.0 — 2026-09-16\n\nInitial release.\n\n- People, companies and posts from one mixed list of URLs, each routed automatically\n- Person records carry work history, education, follower count, articles, and recent posts and reposts with full text\n- Company records carry follower and employee counts, every office location, similar companies and a sample of staff\n- Post records carry full text, reactions and reaction types, media at each video quality, and transcripts where available\n- Post comments and related profiles are included in the page price rather than metered separately\n- Fields LinkedIn withholds from logged-out visitors are named in each record instead of returning silent blanks\n- URLs that are not a LinkedIn profile, company or post are rejected before any billable lookup, as are duplicates\n- Requests time out at 15 seconds and retry up to 5 times with capped backoff, so a slow source costs a slower run rather than a dead one\n- A five-minute collection deadline delivers whatever has been gathered instead of returning nothing\n- Up to 500 URLs per run; a longer list is rejected by the input form\n",
      "readme": "# LinkedIn Scraper: People, Companies & Posts\n\nGive it a list of LinkedIn URLs. Get back people with their work history and recent posts, company pages with follower and employee counts, and individual posts with full engagement — in one run, with no LinkedIn login and no cookies.\n\nMix people, companies and posts in the same list. Each URL is routed to the right lookup automatically.\n\nBuilt for lead research, competitor monitoring, recruitment sourcing and content analysis.\n\n---\n\n## What it does\n\n- **People** — full work history, education, follower count, and their **recent posts and reposts with the complete text**, so you can see what someone actually talks about\n- **Companies** — description, industry, size, **follower and employee counts**, every office location, and the companies LinkedIn lists as similar\n- **Posts** — full text, reactions, reaction types, comments, and video with per-quality URLs and transcripts\n- **Comments included free** — post comments are part of the post price, not a separate charge\n- **Related profiles** — around twenty \"people also viewed\" per person, which turns one name into a prospect list\n- **No login required** — no LinkedIn account, no cookies, no session token, ever\n- **Every URL accounted for** — each one you supply comes back with a record, so you always know what was found\n- **Honest about gating** — where LinkedIn hides a field from logged-out visitors, the record names it rather than leaving you guessing\n\n---\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `urls` | array | — | **Required.** Mix people, companies and posts freely. Anything that is not one of those is skipped and costs nothing. Max `500` per run |\n| `includePostComments` | boolean | `true` | Return comments on post URLs. Included in the post price |\n| `includeRelatedProfiles` | boolean | `false` | Add the \"people also viewed\" list to person records. Included in the profile price |\n\n**Accepted URL shapes**\n\n```\nPeople      linkedin.com/in/satyanadella\nCompanies   linkedin.com/company/microsoft\nSchools     linkedin.com/school/harvard-university\nPosts       linkedin.com/posts/…-activity-7298318111240257536-MZHu\n            linkedin.com/feed/update/urn:li:activity:7298318111240257536\n```\n\nA missing `https://`, a trailing slash, a query string, or a regional subdomain like `in.linkedin.com` all work.\n\n### Example input\n\n```json\n{\n  \"urls\": [\n    \"https://www.linkedin.com/in/satyanadella\",\n    \"https://www.linkedin.com/company/microsoft\",\n    \"https://www.linkedin.com/posts/satyanadella_activity-7298318111240257536-MZHu\"\n  ],\n  \"includePostComments\": true,\n  \"includeRelatedProfiles\": true\n}\n```\n\n---\n\n## Output\n\nOne record per URL. Every record carries `type` (`profile`, `company` or `post`), `url` (the page it is for) and `status`.\n\n### Person records\n\n| Field | Type | Description |\n|---|---|---|\n| `fullName`, `firstName`, `lastName` | string \\| null | Name |\n| `publicIdentifier` | string \\| null | The handle from the profile URL |\n| `headline` | string \\| null | Profile headline |\n| `location`, `country` | string \\| null | Stated location |\n| `about` | string \\| null | About text |\n| `followers`, `connections` | number \\| null | Audience size |\n| `profilePhotoUrl`, `coverImageUrl` | string \\| null | Profile picture and banner |\n| `currentCompany`, `currentSchool` | object \\| null | Present employer and school |\n| `totalExperiences` | number \\| null | How many positions were found |\n| `experience` | array | Work history with company, dates and duration |\n| `education` | array | Education history |\n| `activity` | array | **Recent posts and reposts with full text**, author and link. A repost is marked in `action` |\n| `activityCount` | number \\| null | How many activity items were returned |\n| `articles` | array | Long-form articles with title, link and cover image |\n| `awards`, `volunteerExperience`, `recommendations`, `publications`, `websites` | array | Where the profile shows them publicly |\n| `relatedProfiles` | array | \"People also viewed\". Empty unless requested |\n| `fieldsWithheldByLinkedIn` | array | Which fields LinkedIn does not render publicly |\n| `aboutTruncated` | boolean \\| null | Whether LinkedIn cut the About text |\n\n### Company records\n\n| Field | Type | Description |\n|---|---|---|\n| `companyName`, `tagline`, `description` | string \\| null | Identity |\n| `industry`, `specialties`, `companyType` | string \\| null | Classification |\n| `companySize` | string \\| null | Band, e.g. `10,001+ employees` |\n| `followersCount`, `employeesCount` | number \\| null | Audience and headcount |\n| `headquarters`, `website` | string \\| null | Where and what |\n| `logoUrl`, `coverImageUrl` | string \\| null | Company logo and banner |\n| `locations` | array | Every office with address |\n| `similarCompanies` | array | Ten companies LinkedIn lists as similar |\n| `sampleEmployees` | array | A handful of staff with name, title and profile link |\n| `recentPosts`, `companyUpdates` | array | A sample of the page's own content |\n\n### Post records\n\n| Field | Type | Description |\n|---|---|---|\n| `postId`, `postType`, `postedAt` | | `text`, `image`, `video`, `article` or `discussion` |\n| `caption`, `articleBody` | string \\| null | The post text |\n| `hashtags` | array | Hashtags used in the post |\n| `authorName`, `authorHandle`, `authorProfileUrl` | string \\| null | Who wrote it. Handle is `null` for company-page authors |\n| `authorFollowerCount` | number \\| null | The author's total followers |\n| `likeCount`, `commentCount`, `viewCount` | number \\| null | Engagement |\n| `reactionTypes` | array | Which reactions are present — like, praise, empathy and so on |\n| `comments` | array | Author, text, likes and timestamp per comment |\n| `commentsReturned` | number | How many this record contains |\n| `commentsRemaining` | boolean | Whether the post has more than LinkedIn shows publicly |\n| `videoUrl`, `videoUrlsByQuality`, `transcript`, `captionsVttUrl` | | Video, at each quality, with transcript |\n| `imageUrls`, `thumbnailUrl`, `durationSeconds` | | Media |\n\nEvery record also carries `status`: `ok`, `not_found` for a page that is not publicly visible, or `unavailable` if the source could not be reached.\n\n---\n\n## Pricing\n\nCharged per page looked up, plus a small fixed fee when a run starts. **Comments on posts and related profiles are included** — there is no separate charge for either.\n\nPrices fall on larger Apify plans.\n\n| Event | Free plan | Starter | Scale | Business and above |\n|---|---|---|---|---|\n| Person profile | $2.90 per 1,000 | $2.70 | $2.55 | **$2.40 per 1,000** |\n| Company page | $2.90 per 1,000 | $2.50 | $2.10 | **$1.80 per 1,000** |\n| Post | $2.90 per 1,000 | $2.50 | $2.10 | **$1.80 per 1,000** |\n| Run start | $0.005 per run | $0.005 | $0.005 | $0.005 |\n\nA URL that is not a LinkedIn profile, company or post is rejected before any lookup and costs nothing.\n\n### Worked examples, at Business-plan rates\n\nTotals are rounded to the nearest cent.\n\n**Lead research — 250 people**\n250 × $0.0024 + $0.005 = **≈$0.61**\n\n**Competitor watch — 50 companies and 200 of their posts**\n50 × $0.0018 + 200 × $0.0018 + $0.005 = **≈$0.46**\n\n**Sourcing sweep — 750 people with related profiles**\n750 × $0.0024 + $0.005 = **≈$1.81**\n\nSet **Maximum cost per run** in the run options to cap spend. The Actor stops cleanly at that ceiling and returns everything it charged for.\n\n---\n\n## Good to know\n\n**Comments on a post are capped at roughly ten.** That is LinkedIn's own limit — a public post page embeds about ten comments however many the post really has. `commentsRemaining` tells you when there are more. No tool reading public pages can return the rest.\n\n**LinkedIn hides some profile fields from logged-out visitors.** Skills, certifications and per-position job titles are not rendered publicly, and the About text is often cut short. Rather than silently returning blanks, every person record lists exactly what was withheld in `fieldsWithheldByLinkedIn`.\n\n**You supply the URLs.** There is no keyword or name search — this Actor reads pages you point it at.\n\n---\n\n## Tips\n\n- **Start with people, add companies later.** Person records carry the richest signal, particularly the activity feed.\n- **Turn on related profiles for sourcing.** One good profile yields around twenty adjacent ones, at no extra cost.\n- **Use the activity feed to qualify.** It tells you whether someone actually posts, and what about, which a static profile cannot.\n- **Keep lists tidy.** Every URL you supply is looked up, so a clean list keeps runs quick.\n\n---\n\n## Support\n\nReport a problem through the **Issues** tab on this Actor's page. Issues are reviewed regularly.\n\nWhen reporting, please include the run ID, the input you used, and what you expected.\n\nFor volume enquiries, custom requirements, or anything not specific to a single run, email **socialhtz@gmail.com**.\n",
      "defaultMemoryMbytes": 1024,
      "maxMemoryMbytes": 2048,
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 900,
        "memoryMbytes": 1024
      },
      "environmentVariables": {
        "PROFILE_ENDPOINT": "@LI_PROFILE_ENDPOINT",
        "COMPANY_ENDPOINT": "@LI_COMPANY_ENDPOINT",
        "POST_ENDPOINT": "@LI_POST_ENDPOINT",
        "API_KEY": "@LI_API_KEY"
      },
      "input": {
        "title": "LinkedIn Scraper",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "urls": {
            "title": "LinkedIn URLs",
            "type": "array",
            "description": "The pages to scrape. Mix people, companies and posts freely — each URL is routed to the right lookup automatically. People look like linkedin.com/in/name, companies like linkedin.com/company/name, posts like linkedin.com/posts/… or linkedin.com/feed/update/urn:li:activity:… Anything that is not one of those is skipped and costs you nothing. Up to 500 URLs per run.",
            "editor": "stringList",
            "prefill": [
              "https://www.linkedin.com/in/williamhgates",
              "https://www.linkedin.com/company/microsoft"
            ],
            "uniqueItems": true,
            "minItems": 1,
            "maxItems": 500
          },
          "includePostComments": {
            "title": "Include comments on posts",
            "type": "boolean",
            "description": "Applies to post URLs. LinkedIn shows about ten comments on a public post page whatever the real total, so this returns those and reports whether more exist. Included in the post price — there is no separate comment charge.",
            "editor": "checkbox",
            "default": true
          },
          "includeRelatedProfiles": {
            "title": "Include related profiles",
            "type": "boolean",
            "description": "Applies to person URLs. Adds the 'people also viewed' list — roughly 20 similar profiles with names and links, which is useful for building a prospect list from one starting point. Included in the profile price.",
            "editor": "checkbox",
            "default": false
          }
        },
        "required": [
          "urls"
        ]
      },
      "output": {
        "$schema": "https://apify.com/schemas/v1/output.ide.json",
        "actorOutputSchemaVersion": 1,
        "title": "LinkedIn people, companies and posts",
        "properties": {
          "results": {
            "type": "string",
            "title": "Scraped records",
            "description": "One record per URL looked up — a person, a company, or a post.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      }
    },
    "buildNumber": "1.0.2",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.0015877777777777778
    }
  }
}