{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Company Employees Scraper",
    "description": "Get employees of LinkedIn companies from a company URL or just the company name: profile URL, name, headline, title and location, each graded for current-employer confidence with the matched title/location filters. No cookies or login needed; works with Apify MCP and the API.",
    "version": "0.3",
    "x-build-id": "b7VX40dzmiVUD9ZjV"
  },
  "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 or names",
            "type": "array",
            "description": "LinkedIn company page URLs (for example https://www.linkedin.com/company/apify/) or plain company names such as 'Stripe'. Names are resolved to their public LinkedIn company page before employees are collected; names with no match are skipped and listed in RUN_SUMMARY warnings. For ambiguous names, pass the company URL. Company-name lookups are not charged.",
            "items": {
              "type": "string"
            },
            "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: it tries a managed company data provider first, a fallback provider second, the LinkedIn people tab through an owner-configured session when one is available, and public search last. Use publicSearch for public-search-only discovery. linkedinPeopleTab uses only the session-based people tab and switches to auto when no session is configured. You never need to supply cookies.",
            "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 on the session-based people-tab route to reduce rate-limit risk. 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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}