API reference · LinkedIn

linkedin/bulk/company-employees

Integrate this model through SandBase's unified API, with production-ready schemas and examples.

Production endpoint

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

POSThttps://api.sandbase.ai/v1/run
Model IDlinkedin/bulk/company-employees
01

Input Schema

26 parameters · 0 required · 26 optional

ParameterTypeRequiredDescription
maxItemsintegerOptionalMaximum number of profiles to scrape. The actor will stop scraping when this limit is reached. · Min: -9007199254740991 · Max: 9007199254740991
companiesarrayOptionalSearch employees of these companies. Provide full LinkedIn URLs. Example: `https://www.linkedin.com/company/google`
jobTitlesarrayOptionalFilter Profiles by these LinkedIn job titles. Example: `Software Engineer`.
locationsarrayOptionalFilter employees by these LinkedIn locations. Example: `San Francisco`. LinkedIn does not always understand your text queries. For example for "UK" query it will apply "Ukraine" location, so you should use "United Kingdom" in this case. Try this out first in the location filter input of LinkedIn search at `https://www.linkedin.com/search/results/people/?geoUrn=%5B%22103644278%22%5D` - we will use the first suggestion from the autocomplete popup when you type your location
startPageintegerOptionalThe page number to start scraping from. Starts from 1. · Min: 0 · Max: 100
takePagesintegerOptionalThe number of search pages to scrape. Each page contains 25 profiles. · Min: 0 · Max: 100
functionIdsstring[]OptionalFilter Profiles by these LinkedIn function IDs. Example: `8` for 'Engineering'. Full list: { "1": "Accounting", "2": "Administrative", "3": "Arts and Design", "4": "Business Development", "5": "Community and Social Services", "6": "Consulting", "7": "Education", "8": "Engineering", "9": "Entrepreneurship", "10": "Finance", "11": "Healthcare Services", "12": "Human Resources", "13": "Information Technology", "14": "Legal", "15": "Marketing", "16": "Media and Communication", "17": "Military and Protective Services", "18": "Operations", "19": "Product Management", "20": "Program and Project Management", "21": "Purchasing", "22": "Quality Assurance", "23": "Real Estate", "24": "Research", "25": "Sales", "26": "Customer Success and Support" }
industryIdsarrayOptionalFilter Profiles by these LinkedIn industry IDs. Example: `4` for 'Software Development'. Full list: `https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng_with_header.csv`
searchQuerystringOptionalQuery to search LinkedIn profiles. · Max length: 300
pastJobTitlesarrayOptionalFilter Profiles by these LinkedIn past job titles. Example: `Software Engineer`.
excludeSchoolsarrayOptionalExclude Profiles by these LinkedIn schools. Example: `Stanford University`.
companyBatchModestringOptionalChoose how to process the companies. 'All at once' will search employees from all companies in one query, while 'One by one' will process each make a query for each company separately. The start fee will apply for each query. · Options: all_at_once, one_by_one · Default: "all_at_once"
all_at_onceone_by_one
companyHeadcountstring[]OptionalFilter Profiles by their current company's headcount.
excludeLocationsarrayOptionalExclude Profiles by these LinkedIn locations. Example: `San Francisco`. LinkedIn does not always understand your text queries. For example for "UK" query it will apply "Ukraine" location, so you should use "United Kingdom" in this case. Try this out first in the location filter input of LinkedIn search at `https://www.linkedin.com/search/results/people/?geoUrn=%5B%22103644278%22%5D` - we will use the first suggestion from the autocomplete popup when you type your location
seniorityLevelIdsstring[]OptionalFilter Profiles by these LinkedIn seniority level IDs. Example: `120` for 'Senior'. Full list: { "100": "In Training", "110": "Entry Level", "120": "Senior", "130": "Strategic", "200": "Entry Level Manager", "210": "Experienced Manager", "220": "Director", "300": "Vice President", "310": "CXO", "320": "Owner / Partner" }
excludeFunctionIdsstring[]OptionalFilter Profiles by these LinkedIn function IDs. Example: `8` for 'Engineering'.
excludeIndustryIdsarrayOptionalExclude Profiles by these LinkedIn industry IDs. Example: `4` for 'Software Development'. Full list: `https://github.com/HarvestAPI/linkedin-industry-codes-v2/blob/main/linkedin_industry_code_v2_all_eng_with_header.csv`
maxItemsPerCompanyintegerOptionalMaximum number of profiles to scrape. The actor will stop scraping when this limit is reached. · Min: -9007199254740991 · Max: 9007199254740991
profileScraperModestringOptionalChoose the mode for scraping LinkedIn profiles. The Short mode provides basic information, while the Full mode includes full detailed profile data. · Options: Short ($4 per 1k), Full ($8 per 1k), Full + email search ($12 per 1k) · Default: "Full ($8 per 1k)"
Short ($4 per 1k)Full ($8 per 1k)Full + email search ($12 per 1k)
recentlyChangedJobsbooleanOptionalIf enabled, only Profiles of people who have recently changed jobs will be returned.
excludePastCompaniesarrayOptionalExclude Profiles by these LinkedIn past companies. Provide full LinkedIn URLs
excludePastJobTitlesarrayOptionalExclude Profiles by these LinkedIn past job titles. Example: `Software Engineer`.
yearsOfExperienceIdsstring[]OptionalFilter Profiles by these LinkedIn years of experience IDs. Example: `3` for '3 to 5 years'. Full list: { "1": "Less than 1 year", "2": "1 to 2 years", "3": "3 to 5 years", "4": "6 to 10 years", "5": "More than 10 years" }
excludeCurrentJobTitlesarrayOptionalExclude Profiles by these LinkedIn current job titles. Example: `Software Engineer`.
excludeSeniorityLevelIdsstring[]OptionalFilter Profiles by these LinkedIn seniority level IDs. Example: `120` for 'Senior'.
yearsAtCurrentCompanyIdsstring[]OptionalFilter Profiles by these LinkedIn years at current company IDs. Example: `3` for '3 to 5 years'. Full list: { "1": "Less than 1 year", "2": "1 to 2 years", "3": "3 to 5 years", "4": "6 to 10 years", "5": "More than 10 years" }
02

Output Schema

FieldTypeDescription
idstringUnique identifier for the generation task
statusstringTask status: pending, running, completed, failed, timeout
modelstringModel used for the generation
outputsarrayArray of output items
outputs[].urlstringURL of the generated artifact
outputs[].content_typestringMIME type (e.g. image/png, video/mp4)
errorobject | nullError details if failed, null on success
error.typestringMachine-readable error type code
error.messagestringHuman-readable error description

Async Workflow

This model uses asynchronous execution. Submit a request and poll for the result.

  1. Submit — POST to /v1/run, receive an id
  2. Poll — GET /v1/run/{id} until status is completed, failed, or timeout
  3. Retrieve — Read outputs from the completed response
03

Code Examples

Ready-to-run snippets

# Step 1: Submit
curl -X POST https://api.sandbase.ai/v1/run \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "model": "linkedin/bulk/company-employees",
  "companyBatchMode": "all_at_once",
  "profileScraperMode": "Full ($8 per 1k)",
  "prompt": "a beautiful sunset over mountains"
}'

# Step 2: Poll result (replace <id>)
curl https://api.sandbase.ai/v1/run/<id> \
  -H "Authorization: Bearer YOUR_API_KEY"