# LinkedIn Company Search Scraper (No Cookies) (`crawl_craft/linkedin-company-search-scraper-no-cookies`) Actor

Building B2B lead lists from LinkedIn by hand takes days. Search companies by keyword, location, industry and size, or paste company pages, and get website, size, employees, followers, offices, specialities and similar companies in bulk. No cookies.

- **URL**: https://apify.com/crawl_craft/linkedin-company-search-scraper-no-cookies.md
- **Developed by:** [Crawl Craft](https://apify.com/crawl_craft) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🚀 What is LinkedIn Company Search Scraper?

LinkedIn Company Search Scraper is an Apify Actor that finds LinkedIn companies by keywords, location, industry and company size, or reads company pages you already have. Each company comes back with its website, logo, size, employees, followers, offices, specialities and similar companies. You need no LinkedIn account and no cookies.

- 🔎 **Search or paste:** add many company search links, company pages or keyword lines in one run.
- 🎯 **Filters:** narrow results by location, industry and company size before anything is saved.
- ⚡ **Two modes:** Short gives a fast company list, Full gives the complete company profile.
- 📥 **Live results:** each company is saved as soon as it is ready, so a stopped run keeps what it found.
- 📚 **Extra tables:** one row per office and one row per similar company, with no extra charge.

Click **Try for free**, add a search link or some keywords, and press **Start**. The LinkedIn company search tool shows its first companies in the Output tab while the run is still going.

Teams use this LinkedIn company scraper for lead lists and market research.

### 📊 What data can you extract from LinkedIn?

The LinkedIn company data scraper returns one row per company in the main dataset, plus an offices table and a similar companies table. You can download the results as JSON, CSV or Excel. A field that has no data for a company may be missing from its row.

| Field | Description | Example |
|---|---|---|
| `id` | LinkedIn's numeric company id | `908898` |
| `universalName` | The company's LinkedIn handle (the part after /company/) | `wearemanifold` |
| `linkedinUrl` | Link to the company page | `https://www.linkedin.com/company/wearemanifold` |
| `name` | Company name | `Manifold` |
| `tagline` | Short slogan shown under the name | `Creative experiential marketing agency` |
| `website` | Company website | `http://www.wearemanifold.com` |
| `phone` | Phone number from the About tab, when shown | `+1 415 555 0100` |
| `logo` | Company logo image | `https://media.licdn.com/dms/image/v2/.../company-logo_200_200/...` |
| `foundedOn` | Founding year as `{year}` | `{"year": 2010}` |
| `employeeCount` | Number of LinkedIn members who list this company | `54` |
| `employeeCountRange` | Declared company size as `{start, end}`; `end` is missing for 10001+ | `{"start": 11, "end": 50}` |
| `followerCount` | LinkedIn followers | `5290` |
| `description` | The About text | `Manifold is a creative agency...` |
| `companyType` | Privately Held, Public Company, Self-Employed and so on | `Privately Held` |
| `locations` | Office locations with address parts, headquarter flag and a parsed block | `[{"country": "US", "city": "San Francisco", "headquarter": true}]` |
| `specialities` | Specialities listed by the company | `["Experiential marketing", "Digital"]` |
| `industries` | Industries as `{id, name, urn}`; `id` and `urn` are left out when unknown | `[{"id": "80", "name": "Advertising Services", "urn": "urn:li:industry:80"}]` |
| `backgroundCover` | Cover image of the company page | `https://media.licdn.com/dms/image/v2/.../company-background_10000/...` |
| `jobSearchUrl` | Link to the company's open jobs on LinkedIn | `https://www.linkedin.com/jobs/search?f_C=908898` |
| `pageType` | Always COMPANY for company pages | `COMPANY` |
| `similarOrganizations` | Similar pages LinkedIn shows next to this company | `[{"universalName": "momentum-worldwide", "name": "Momentum Worldwide"}]` |
| `location` | Headquarters or place text (Short mode) | `San Francisco, California` |
| `descriptionExcerpt` | Short description text (Short mode, when the company page was not opened) | `Manifold is a creative experiential marketing agency...` |
| `incomplete` | Set when the company page could not be opened and the row holds search data only | `company page unavailable` |

Choose Full mode when you need a LinkedIn company profile scraper that returns every section. Choose Short mode for a fast LinkedIn company information scraper run with the basic columns.

Two free tables sit next to the main one. The `offices` table has one row per office (`companyName`, `companyUniversalName`, `companyLinkedinUrl`, `position`, `headquarter`, `description`, `line1`, `line2`, `city`, `geographicArea`, `postalCode`, `country`, `countryName`, `address`). The `similar` table has one row per similar company (the same company columns plus `similarName`, `similarUniversalName`, `similarLinkedinUrl`, `similarTagline`, `similarLocation`, `similarLogo`).

### 💡 Use cases for LinkedIn company data

- **Lead lists:** start B2B lead generation from LinkedIn companies by combining keywords with `industryIds`, `locations` and `companySize`. Build a LinkedIn company lead list from the results. The LinkedIn company website in the `website` field is the natural next step for research.
- **CRM preparation:** prepare LinkedIn company data for CRM imports with the website, size range, followers and offices of each company.
- **Competitor mapping:** run LinkedIn competitor analysis with the `similar` table and the follower counts of each rival.
- **Regional research:** list LinkedIn companies by location to see which cities or countries hold the most companies for a keyword.
- **Industry research:** browse LinkedIn companies by industry using LinkedIn's own industry names or ids.
- **Size segments:** split LinkedIn companies by company size, from 1-10 up to 10001+ employees.
- **Office footprint:** check LinkedIn company offices and the headquarters flag in the `offices` table.
- **Account discovery:** use it as a LinkedIn company finder when you know the niche but not the names. It can also find similar companies on LinkedIn from the `similarOrganizations` field of a company you already know.
- **Company directory:** use the Actor as a LinkedIn company directory scraper to build your own searchable list of companies.
- **Repeatable exports:** a LinkedIn company list scraper run can be scheduled to refresh the same list.
- **Positioning research:** read LinkedIn company specialities and taglines to compare how competitors describe themselves.
- **Audience size checks:** compare the LinkedIn company followers of several brands. Set the LinkedIn company employee count next to the declared size range of each.

### 🛠️ How to scrape LinkedIn companies

1. Create a free Apify account and open LinkedIn Company Search Scraper.
2. Add search links, company pages or keywords to **Search links, company pages or keywords**, one per line.
3. Set **Locations**, **Industries** and **Company size** if you want filters, then choose the **Company scraper mode** and the **Maximum companies per search**.
4. Click **Start** and watch the log, where saved companies appear with their industry, place, followers and size.
5. Open the **Output** tab, switch between the views and tables, and download the dataset.

#### How to export LinkedIn companies

Open the **Storage** tab after the run, pick the dataset and choose a download format. Export LinkedIn companies to CSV, Excel or JSON, or use the same data from the Apify API. As a LinkedIn company export tool it supports the dataset formats Apify offers.

#### How to scrape LinkedIn without login

Paste public search links, company page links or plain keywords. You can scrape LinkedIn without login because the Actor works from public company information and never asks for your LinkedIn account or cookies. Treat it as a LinkedIn company scraping tool for public pages only.

#### How to run a bulk LinkedIn company lookup

Put one company page link per line in **Search links, company pages or keywords**. This LinkedIn company lookup tool reads each page directly. A bulk LinkedIn company lookup ignores the filters, because every page you list is read as it is.

#### How to find a LinkedIn company with the page scraper

Add a link such as `https://www.linkedin.com/company/stripe`. This LinkedIn company page scraper mode returns the page's data in Full or Short mode.

### 💰 How much does it cost to scrape LinkedIn companies?

This LinkedIn company data tool uses pay-per-event pricing. You pay for each company saved to the main results table (the Results event), from $2 per 1,000 results on the Free tier down to $1.5 on the highest tiers. The offices, similar companies and inputs tables carry no extra charge.

| Apify plan tier | Price per 1,000 results |
|---|---|
| Free | $2 |
| Bronze | $1.8 |
| Silver | $1.6 |
| Gold / Platinum / Diamond | $1.5 |

A tiny Actor Start charge of $0.00005 also applies to each run start. For example, 1,000 companies cost $2 on the Free tier and $1.5 on the Gold, Platinum and Diamond tiers, plus the start charge. See the Pricing tab for current rates.

### ⬇️ Input

Only `urls` is required: one search link, company page link or keyword line per entry. Each line becomes one search or one page read in the LinkedIn company search extractor. Keyword lines support quotes, OR and -word, for example `"growth marketing" OR "performance marketing" -freelance`.

![LinkedIn company search scraper input form with search links, locations and company size](IMAGE_URL_PLACEHOLDER "linkedin-company-search-scraper-input-form.png")

See the Input tab for every option. This example input uses the pre-filled and default values of the form (example, not a captured run):

```json
{
  "urls": [
    "https://www.linkedin.com/search/results/companies/?keywords=marketing%20agency"
  ],
  "scraperMode": "full",
  "maxItems": 10,
  "startPage": 1,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

| Field | Meaning |
|---|---|
| `urls` | Required. One item per line: a LinkedIn company search link (its keywords, industry and company size are used), a LinkedIn company page (read directly) or plain keywords. |
| `searchQuery` | Optional. One more keyword search to run. |
| `scraperMode` | `short` for basic company data, `full` for the complete profile. The form default is `full`. |
| `maxItems` | Companies to return for each search line. The form is pre-filled with 10. Leave it empty or set 0 for all that can be found. |
| `locations` | Cities, regions or countries where the company has an office, for example `San Francisco` or `Germany`. A company matches when any of its places matches. Add the country to a city name to be exact. |
| `industryIds` | LinkedIn industry names or ids, for example `Software Development` or `4`. Names must be LinkedIn's own industry names to match exactly; other text is matched loosely. |
| `companySize` | Keep companies whose declared size is one of `1-10`, `11-50`, `51-200`, `201-500`, `501-1000`, `1001-5000`, `5001-10000` or `10001+`. |
| `startPage` | Skip the first matches of each search. Page 2 starts at company 51 (50 companies per page). Default 1, up to 2000. |
| `takePages` | Number of pages of 50 companies per search. Used only when `maxItems` is empty. Up to 2000. |
| `proxyConfiguration` | Optional connection settings. Leave the default for automatic handling. |

💡 Keep `maxItems` low for a first test run.

⚠️ The location filter inside a LinkedIn search link cannot be read without a LinkedIn login, so add the place names to `locations` instead.

### ⬆️ Output

The scraped results are shown as a dataset in the **Storage** tab. The table view is for convenience and doesn't show **all the fields**. The main dataset has the views overview, contact, size, about, locations, similar, media and short. Use the LinkedIn company search export in JSON, CSV, Excel or any other format the Apify dataset supports.

![LinkedIn company data scraper output table with company names, followers and industries](IMAGE_URL_PLACEHOLDER "linkedin-company-data-scraper-output-table.png")

#### Full mode output

This example output is built from the example values in the dataset schema (not a captured run):

```json
{
  "id": "908898",
  "universalName": "wearemanifold",
  "linkedinUrl": "https://www.linkedin.com/company/wearemanifold",
  "name": "Manifold",
  "tagline": "Creative experiential marketing agency",
  "website": "http://www.wearemanifold.com",
  "phone": "+1 415 555 0100",
  "logo": "https://media.licdn.com/dms/image/v2/.../company-logo_200_200/...",
  "foundedOn": { "year": 2010 },
  "employeeCount": 54,
  "employeeCountRange": { "start": 11, "end": 50 },
  "followerCount": 5290,
  "description": "Manifold is a creative agency...",
  "companyType": "Privately Held",
  "locations": [
    { "country": "US", "city": "San Francisco", "headquarter": true }
  ],
  "specialities": ["Experiential marketing", "Digital"],
  "industries": [
    { "id": "80", "name": "Advertising Services", "urn": "urn:li:industry:80" }
  ],
  "backgroundCover": "https://media.licdn.com/dms/image/v2/.../company-background_10000/...",
  "jobSearchUrl": "https://www.linkedin.com/jobs/search?f_C=908898",
  "pageType": "COMPANY",
  "similarOrganizations": [
    { "universalName": "momentum-worldwide", "name": "Momentum Worldwide" }
  ]
}
```

#### Short mode output

Short mode fills the basic columns. This example is built from the dataset schema examples (not a captured run):

```json
{
  "universalName": "wearemanifold",
  "linkedinUrl": "https://www.linkedin.com/company/wearemanifold",
  "name": "Manifold",
  "tagline": "Creative experiential marketing agency",
  "industries": [
    { "id": "80", "name": "Advertising Services", "urn": "urn:li:industry:80" }
  ],
  "location": "San Francisco, California",
  "followerCount": 5290,
  "employeeCountRange": { "start": 11, "end": 50 },
  "descriptionExcerpt": "Manifold is a creative experiential marketing agency..."
}
```

#### Inputs table output

The `searches` table has one row per input line, including lines that failed. This example comes from the dataset schema:

```json
{
  "input": "marketing agency",
  "type": "search",
  "status": "ok",
  "companies": 20,
  "checked": 27,
  "notMatching": 5,
  "notes": "not kept: 5 outside the requested location",
  "error": null
}
```

A `SUMMARY` record in the key-value store holds the run totals.

### ⚠️ Limitations and error handling

- As a LinkedIn company data extractor it reads public company information only. Private data is not available.
- Each search returns the companies that match every filter you set. Very narrow combinations of keywords, place, industry and size can return few companies, so run a small test first.
- Location and industry filters are combined into separate searches, and very large combinations are capped at 60. A warning in the log says when this happens.
- A company reached more than once in a run is saved once.
- If LinkedIn limits requests, the run may slow down or stop early, and the companies already saved are kept.
- A link that is not a LinkedIn company search link or company page is reported as a failed input.

The `status` field of each `searches` row uses these values:

| Status | Meaning | What to do |
|---|---|---|
| `ok` | The input was processed and companies were saved | Nothing |
| `empty` | The input was processed but no company matched | Broaden the keywords or location, or try Short mode |
| `failed` | The input had a problem, described in the `error` field | Check the link or keywords and try again |
| `skipped` | The input was not run because a limit was reached or the connection was lost | Run it again in a new run |

### 🔌 Integrating LinkedIn Company Search Scraper with other apps

LinkedIn Company Search Scraper runs on Apify, so you can start it through the [Apify API](https://docs.apify.com/api/v2). That makes it a LinkedIn company search API for your own apps. Developers can also treat it as a LinkedIn company data API that returns structured JSON. You can run it on a [schedule](https://docs.apify.com/platform/schedules) and connect it with other tools through [Apify integrations](https://docs.apify.com/platform/integrations). See the API tab of the Actor for ready-made JavaScript, Python and CLI snippets. AI agents can also call the Actor through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp).

### 🔗 More Apify Actors by crawl_craft

These are other public Actors from the same account. They cover different data sources, so choose the one that matches the data you need.

| Actor | What it extracts | When to use it |
|---|---|---|
| [Ats Jobs API](https://apify.com/crawl_craft/ats-jobs-api) | Open jobs from Greenhouse, Lever and Ashby boards | Use it when you need job listings from career pages |
| [Google Job Scraper](https://apify.com/crawl_craft/google-job-scraper) | Google Jobs listings with salary, location and apply links | Use it when you need job listings from Google Jobs |
| [Naukri Job Scraper - India & Gulf Jobs](https://apify.com/crawl_craft/naukri-job-scraper-india-gulf-jobs) | Naukri and NaukriGulf jobs with company ratings and recruiter contacts | Use it when you need job data for India and the Gulf |
| [Facebook Content Search Extractor](https://apify.com/crawl_craft/facebook-content-search-extractor) | Public Facebook videos, posts, pages, groups, people and events | Use it when you need public Facebook search results |

### ⚖️ Is it legal to scrape LinkedIn?

LinkedIn Company Search Scraper only extracts company information that is publicly visible on LinkedIn and does not extract private data. Results may still contain personal data, so only collect it with a legitimate reason and think about GDPR (Regulation (EU) 2016/679) and LinkedIn's terms. Consult a lawyer if you are unsure. Read Apify's post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) for background.

### ❓ FAQ

#### Do I need a LinkedIn account or cookies?

No. This LinkedIn company search without account or cookies reads public company information only.

#### How much does it cost?

Pricing is pay-per-event, from $2 per 1,000 results on the Free tier to $1.5 on the highest tiers, plus a tiny Actor Start charge of $0.00005. See the Pricing tab for current rates.

#### How many companies can I get?

With this LinkedIn company extractor, set `maxItems` to the number you want, or leave it empty to get all companies that can be found.

#### What is the difference between Short and Full mode?

Short returns the basic company data quickly. Full also returns the website, logo, founding year, employee numbers, every office, specialities and similar companies.

#### Why did I get fewer companies than my maximum?

Only companies that match every filter are kept. The `searches` table and the log say how many were checked and why some were left out.

#### Why does a company in another city appear?

A company matches when any of its offices is in the place you asked for, not only its headquarters. Add the country to a city name to be exact.

#### Why are employee count and company size different?

`employeeCount` is the number of LinkedIn members who list the company. `employeeCountRange` is the size the company declares.

#### Can I scrape private data?

No. Only public company information is read, and this LinkedIn organization scraper does not collect people profiles.

#### Do I need proxies?

No. By default you do not need to set anything in `proxyConfiguration`, and you can add your own connection settings if you prefer.

#### Can I use it with the API or an MCP server?

Yes. Start it through the Apify API, or let an AI agent call it through the Apify MCP server.

### 💬 Your feedback

Found a bug or need another field? Open an issue from the Issues tab of the Actor page. For a custom solution, write to hello.crawlcraft@gmail.com.

# Actor input Schema

## `urls` (type: `array`):

One item per line, as many as you like. Each line is one of: 1. a LinkedIn company search link (https://www.linkedin.com/search/results/companies/?keywords=marketing) – its keywords, industry and company size are used; 2. a LinkedIn company page (https://www.linkedin.com/company/stripe) – that company is read directly; 3. plain keywords (marketing agency). Quotes, OR and -word work in keywords. The filters below apply to every search line.

## `searchQuery` (type: `string`):

Optional. One more search to run, e.g. marketing. Quotes, OR and -word work: "growth marketing" OR "performance marketing" -freelance.

## `scraperMode` (type: `string`):

Short: basic company data (name, link, tagline, industry, location, followers, short description) – fastest. Full: the complete profile (id, website, logo, founded year, employee count and range, all office locations, specialities, industries, cover image, jobs link and similar companies).

## `maxItems` (type: `integer`):

How many companies to return for each search line. Leave empty (or 0) for all that can be found.

## `locations` (type: `array`):

Cities, regions or countries where the company has an office, e.g. San Francisco, Germany. A company matches when any of its places matches. Add the country to a city name to be exact (Manchester, United Kingdom).

## `industryIds` (type: `array`):

LinkedIn industry names or ids, e.g. Software Development or 4. Names must be LinkedIn's own industry names to match exactly; other text is matched loosely.

## `companySize` (type: `array`):

Keep only companies whose declared size (the About tab) is one of these ranges.

## `startPage` (type: `integer`):

Skip the first matches of each search: page 2 starts at company 51 (50 companies per page).

## `takePages` (type: `integer`):

Number of pages of 50 companies per search. Used only when Maximum companies per search is empty.

## `proxyConfiguration` (type: `object`):

Optional. Leave the default for automatic connection handling, or set your own proxy settings.

## Actor input object example

```json
{
  "urls": [
    "https://www.linkedin.com/search/results/companies/?keywords=marketing%20agency"
  ],
  "scraperMode": "full",
  "maxItems": 10,
  "startPage": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

The main facts of each company.

## `contact` (type: `string`):

Website, phone, LinkedIn and jobs links.

## `size` (type: `string`):

Company size, employees, followers and founding year.

## `about` (type: `string`):

Description, specialities and industries.

## `locations` (type: `string`):

Every office of each company (one row per office is in the Offices table).

## `similar` (type: `string`):

Similar pages LinkedIn shows next to each company.

## `media` (type: `string`):

Logo and cover images.

## `short` (type: `string`):

Columns filled by Short mode.

## `offices` (type: `string`):

One row per company office.

## `similarCompanies` (type: `string`):

One row per similar company.

## `searches` (type: `string`):

One row per input line with its status.

## `summary` (type: `string`):

Totals for the run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.linkedin.com/search/results/companies/?keywords=marketing%20agency"
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawl_craft/linkedin-company-search-scraper-no-cookies").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.linkedin.com/search/results/companies/?keywords=marketing%20agency"],
    "maxItems": 10,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("crawl_craft/linkedin-company-search-scraper-no-cookies").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.linkedin.com/search/results/companies/?keywords=marketing%20agency"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call crawl_craft/linkedin-company-search-scraper-no-cookies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,crawl_craft/linkedin-company-search-scraper-no-cookies"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gG7ggH1WXlMTuHtww/builds/wxTYPIbmNeJWizda2/openapi.json
