{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Company Employee Scraper",
    "description": "Scrape visible LinkedIn company employees from company URLs. Provider-first with ScrapeCreators and SociaVault, then optional cookie and public-search fallbacks. Returns profile URLs, names, titles, source, and confidence. $0.015 per row.",
    "version": "0.2",
    "x-build-id": "uIkzfA2q1kgCVc34W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~linkedin-company-employee-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-linkedin-company-employee-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/khadinakbar~linkedin-company-employee-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-linkedin-company-employee-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/khadinakbar~linkedin-company-employee-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-linkedin-company-employee-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "companyUrls"
        ],
        "properties": {
          "companyUrls": {
            "title": "LinkedIn company URLs",
            "type": "array",
            "description": "LinkedIn company page URLs to scrape. Pass canonical company pages or company subpages, for example https://www.linkedin.com/company/apify/ or https://www.linkedin.com/company/apify/posts/. The actor normalizes each target to /company/<slug>/ and deduplicates repeated companies. Use this field when an agent already knows the target accounts.",
            "items": {
              "type": "string",
              "pattern": "^https?://(www\\.)?linkedin\\.com/company/[^\\s/]+.*$"
            },
            "default": []
          },
          "maxEmployees": {
            "title": "Max employees",
            "minimum": 1,
            "maximum": 2500,
            "type": "integer",
            "description": "Global cap across all companies in the run. The actor stops after this many unique employee profile rows have been pushed to the dataset. This is a maximum, not a guarantee, because LinkedIn and provider sources may expose fewer visible employees. Use a lower value for fast agent calls and a higher value for bulk account mapping.",
            "default": 100
          },
          "maxEmployeesPerCompany": {
            "title": "Max employees per company",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Per-company cap for each LinkedIn company URL. This keeps multi-company runs balanced and prevents one large company from consuming the whole global cap. Use it when an agent is comparing several accounts in one run. The actor can still return fewer rows when visible data is limited.",
            "default": 100
          },
          "mode": {
            "title": "Scrape mode",
            "enum": [
              "auto",
              "publicSearch",
              "linkedinPeopleTab"
            ],
            "type": "string",
            "description": "Choose how the actor discovers employee profile URLs. Use auto for production workflows because it tries ScrapeCreators first, SociaVault second, authenticated LinkedIn people-tab scraping when LINKEDIN_COOKIES is set, and public search last. Use publicSearch only when provider and cookie-backed paths are unavailable. Use linkedinPeopleTab only when LINKEDIN_COOKIES is configured and you specifically want the company people-tab path.",
            "default": "auto"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Optional words to add to public-search fallback queries. Use this to guide discovery toward roles, teams, seniority, or functions such as founder, sales, security, recruiter, or engineering. This field mainly affects publicSearch mode and the final public-search fallback in auto mode. Leave it blank for broader provider-first company discovery."
          },
          "jobTitles": {
            "title": "Job title filters",
            "type": "array",
            "description": "Optional current-title keywords used to filter or boost visible matches. Examples include CTO, Account Executive, Recruiter, Engineer, Product Manager, or Founder. Rows that match these terms list them in matchedFilters. Use this when an agent needs a role-focused employee list instead of a broad company sample.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "locations": {
            "title": "Location filters",
            "type": "array",
            "description": "Optional location keywords used to filter or boost visible matches. Examples include San Francisco, London, Germany, Remote, or Prague. Location availability depends on the source and may be missing on provider rows. Use this for geo-focused research, but keep filters broad when recall matters.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "includeProfileDetails": {
            "title": "Visit profile detail pages",
            "type": "boolean",
            "description": "Authenticated LinkedIn fallback only. When enabled, the actor visits discovered profile pages to improve visible name, headline, and location extraction. This is slower, uses more compute, and is more likely to hit LinkedIn rate limits. Keep this off for fast MCP calls unless profile-detail quality matters more than speed.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many companies to process in parallel. Keep this low when using LinkedIn cookies to reduce rate-limit risk and account pressure. Provider-first runs can usually tolerate the default. For AI-agent calls, the default balances speed and reliability.",
            "default": 2
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings for LinkedIn fallback and public search paths. The default uses Apify Residential proxy, which is recommended for reliability. Provider API calls do not need browser proxying, but fallback scraping does. Keep residential proxies enabled for production runs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}