> ## Documentation Index
> Fetch the complete documentation index at: https://lava.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# LinkedIn (public search)

> Public LinkedIn data via Apify scrapers — no LinkedIn account required.

Public LinkedIn data via Apify scrapers — no LinkedIn account required. Search people profiles by keyword, title, company, or location, and search job postings. Use this for cold/public people (anyone, not just your connections) and jobs; to operate your OWN signed-in inbox, network, and DMs in Lava Desktop, use the linkedin\_session provider instead.

2 endpoints available through Lava's AI Gateway. See the [LinkedIn (public search) API docs](https://docs.apify.com/api/v2) for full documentation.

<Info>Supports both **managed** (Lava's API keys) and **unmanaged** (bring your own credentials) mode.</Info>

## Endpoints

### Search LinkedIn for people profiles by keyword, job title, company, location, school, industry, seniority, or function. Returns a list of profiles with work experience, education, skills, certifications, and location. No LinkedIn cookies or account required. Pricing is pay-per-event: `profileScraperMode: "Short"` costs $0.10/page (snippet only); `"Full"` costs $0.10/page + $0.004/profile; `"Full + email search"` (default in example) costs $0.10/page + \$0.01/profile. A page returns up to 25 profiles. Keep `maxItems` or `takePages` small to stay inside the gateway sync timeout.

**POST** `https://api.apify.com/v2/acts/harvestapi~linkedin-profile-search/run-sync-get-dataset-items` — \$0.35 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.apify.com/v2/acts/harvestapi~linkedin-profile-search/run-sync-get-dataset-items', {
      body: {
    "searchQuery": "Software Engineer",
    "locations": [
      "San Francisco"
    ],
    "maxItems": 25,
    "profileScraperMode": "Full + email search"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.apify.com%2Fv2%2Facts%2Fharvestapi~linkedin-profile-search%2Frun-sync-get-dataset-items" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"searchQuery":"Software Engineer","locations":["San Francisco"],"maxItems":25,"profileScraperMode":"Full + email search"}'
    ```
  </Tab>
</Tabs>

### Search LinkedIn job postings by keyword, location, date posted, experience level, or company. Pass one or more LinkedIn jobs search URLs (copy from the address bar after filtering on linkedin.com/jobs); set `count` to cap results (min 10). By default Lava returns \~5KB/job with title, companyName, location, salaryInfo, postedAt, seniorityLevel, employmentType, jobFunction, industries, applicantsCount, jobPosterName/Title, descriptionText; `descriptionHtml` (a byte-for-byte duplicate of descriptionText with HTML markup) and `companyLogo` are stripped. Pass `filter.mode="full"` to receive the raw \~9KB/job payload. No LinkedIn cookies or account required. $1.00 per 1,000 results, flat $0.025/request through Lava. CRITICAL TIMEOUT NOTE: the actor takes \~2.5s per job and the Lava gateway has a 30s edge-function ceiling. Keep `count: 10` (the actor minimum) to stay inside the timeout; `count: 25` consistently 504s. `scrapeCompany: true` roughly triples per-job latency and pushes even a minimum-count call past the gateway timeout, leave it `false` on this sync endpoint (do not try to fetch companyDescription/Website/EmployeesCount through this path). For larger pulls split into multiple smaller calls or use `splitByLocation: true` + `splitCountry`.

**POST** `https://api.apify.com/v2/acts/curious_coder~linkedin-jobs-scraper/run-sync-get-dataset-items` — \$0.025 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.apify.com/v2/acts/curious_coder~linkedin-jobs-scraper/run-sync-get-dataset-items', {
      body: {
    "urls": [
      "https://www.linkedin.com/jobs/search/?keywords=software%20engineer&location=San%20Francisco"
    ],
    "count": 10,
    "scrapeCompany": false
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.apify.com%2Fv2%2Facts%2Fcurious_coder~linkedin-jobs-scraper%2Frun-sync-get-dataset-items" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"urls":["https://www.linkedin.com/jobs/search/?keywords=software%20engineer&location=San%20Francisco"],"count":10,"scrapeCompany":false}'
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
