# Kompass Scraper \[$2/1K💰] | Bypass 20 Limit | Phones & Emails (`ahmed_jasarevic/kompass-scraper`) Actor

Scrape B2B company data from Kompass via the B2B Stars partner directory: phones, emails, websites, addresses, employee counts & NACE industry codes across 70+ countries. Go beyond Kompass's free 20-company contact limit.

- **URL**: https://apify.com/ahmed\_jasarevic/kompass-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Kompass Scraper — B2B Company Data, Phones & Emails

Extract B2B company data from Kompass across 70+ countries — phone numbers, emails, websites, addresses, employee counts and NACE industry codes — from **$2 per 1,000 companies**. This Kompass scraper reads company profiles through the B2B Stars partner directory, going beyond Kompass's free 20-company contact limit.

### Main Use Cases

- **B2B lead generation** — build prospect lists with verified phone numbers and email addresses
- **Supplier sourcing & procurement** — find manufacturers, distributors and service providers by keyword and country
- **Market & competitor research** — map industries using NACE codes, employee ranges and business categories
- **CRM & database enrichment** — add VAT numbers, firmographics, social links and company descriptions to existing records
- **Sales territory planning** — filter company data by country, region, state or city

### How It Works

Kompass does not offer a free public API for bulk company exports. This actor uses the **B2B Stars partner directory** (a Kompass data partner) as its data source. It loads company list and profile pages, then parses the **React Server Components (RSC) payloads** embedded in the Next.js HTML — no browser rendering, no login, no manual export.

In **list mode** (default), basic company data is extracted directly from category or search result pages. With **profile details mode** (`includeDetails: true`), the actor visits each company profile page and returns the full record: description, contacts, NACE activities, tax identifiers, social profiles and more.

### Extract B2B Lead Lists With Phones & Emails

Every result can include `phone`, `email`, `website`, `fax` and location fields — the data sales teams need for outbound prospecting. With `includeDetails: true` the actor collects the full contact channels from each company profile instead of only list-page summaries.

### Find Suppliers & Manufacturers Across 70+ Countries

Kompass data covers more than 70 countries. Use the `country` filter (ISO code, e.g. `DE`, `FR`, `IN`, `US`) or browse a category URL to narrow results. `searchQuery` applies a keyword filter (e.g. `packaging machinery`, `cnc machining`) for supplier discovery.

### Build Business Databases Without an Official Kompass API

Kompass's own free account limits how many company contacts you can view without a paid subscription. Because this actor reads the partner directory instead, it can return structured, paginated company data to a single Apify dataset — ready for export as JSON, CSV or Excel, or for direct API consumption.

### Get NACE Industry Codes & Firmographics for Market Research

Each profile includes up to four `naceCode` / `naceDescription` pairs (European industry classification), `employeeRange`, `businessCategory` fields and `fieldOfActivity`. That makes this actor a practical source for industry-level market research and firmographic segmentation.

### Input

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `startUrls` | array of URLs | no | — | Kompass or B2B Stars URLs: company profile URLs, category browse URLs (e.g. `https://www.b2bstars.com/en-us/kompass/company?category=10000`) or any B2B Stars Kompass page |
| `searchQuery` | string | no | — | Keyword applied as `?q=` on B2B Stars, e.g. `packaging machinery` |
| `country` | string | no | — | ISO country code filter (e.g. `DE`, `FR`, `US`, `GB`). Empty = all countries |
| `maxResults` | integer | no | `100` | Maximum number of companies to scrape (1–10,000) |
| `maxPagesPerUrl` | integer | no | `5` | Maximum pagination pages to follow per start URL (1–100) |
| `includeDetails` | boolean | no | `false` | ON: visit each profile page for full details (extra per-profile charge). OFF: fast list-page data (name, location, category) |
| `maxConcurrency` | integer | no | `20` | Parallel requests (1–50). Recommended 10–30 |
| `proxyConfiguration` | object | no | Apify proxy ON | Proxy settings for the crawler |

### Output

Each dataset row represents one company. With `includeDetails: true` the record includes the full profile (all fields below); in list mode the available fields depend on the page content.

| Group | Fields |
| --- | --- |
| Identification | `companyId`, `companyName`, `slug`, `tradingName`, `logoUrl`, `description`, `kompassDescription`, `fieldOfActivity`, `kompassActivities` |
| Location | `country`, `city`, `state`, `region`, `street`, `postalCode` |
| Contact | `website`, `phone`, `email`, `fax` |
| Firmographics | `employeeRange`, `businessCategory1`–`3`, `naceCode1`–`4`, `naceDescription1`–`4` |
| Commercial signals | `vatNumber`, `purchaseSignals`, `verified`, `claimed`, `rating`, `reviewCount` |
| Social profiles | `linkedin`, `facebook`, `twitter`, `instagram` |
| Source & meta | `kompassCompanyUrl`, `sourceUrl`, `dataSourceUrl`, `scrapedAt` |

### Example Input

```json
{
  "searchQuery": "packaging machinery",
  "country": "DE",
  "maxResults": 100,
  "includeDetails": true,
  "maxPagesPerUrl": 5
}
```

### Example Output

```json
{
  "companyName": "Example Packaging GmbH",
  "companyId": "0010800003abcDEFGH",
  "country": "DE",
  "city": "Hamburg",
  "street": "Industriestrasse 12",
  "postalCode": "20095",
  "website": "https://example-packaging.com",
  "phone": "+49 40 12345678",
  "email": "contact@example-packaging.com",
  "employeeRange": "51-100",
  "businessCategory1": "Packaging Machinery",
  "naceCode1": "28.93",
  "naceDescription1": "Manufacture of machinery for food, beverage and tobacco processing",
  "vatNumber": "DE123456789",
  "verified": true,
  "kompassCompanyUrl": "https://www.kompass.com/...",
  "sourceUrl": "https://www.b2bstars.com/en-us/kompass/company/example-packaging-gmbh",
  "scrapedAt": "2026-09-10T10:00:00.000Z"
}
```

### Integrations & Automation

- **Apify API** — fetch datasets via REST or the JavaScript/Python SDK
- **Webhooks** — push new companies to your CRM or Slack on every run
- **Zapier / Make** — connect results to Google Sheets, HubSpot, Pipedrive, Airtable and 5,000+ apps
- **Scheduling** — run weekly or monthly to keep supplier and prospect databases fresh (recurring runs also improve the actor's Apify Store recommendation signals)

Typical setup: a weekly run per target country or keyword with `includeDetails: true` into Google Sheets via Zapier.

### Related Actors

- [B2B Supplier Directory Scraper — Kompass & Europages](https://apify.com/du7chmaniac/b2b-supplier-directory-scraper) — multi-directory B2B company data (same topic cluster, macro alternative)
- [Kompass Scraper by santamaria-automations](https://apify.com/santamaria-automations/kompass-scraper) — the most-used Kompass actor on Apify; useful for comparing positioning
- [Europages Scraper](https://apify.com/rastriq/europages-scraper) — European B2B company directory data
- [Europages Company Scraper](https://apify.com/plowdata/europages-company-scraper) — European supplier and manufacturer leads for agencies and sales teams

### FAQ

#### Why use this actor instead of the official Kompass API?

Kompass does not provide free public API access to bulk company data. A free Kompass account limits how many company contacts you can view (around 20 companies without a paid subscription is the known restriction this actor is built to bypass), and paid plans gate API/export access. This actor reads the same company data through the B2B Stars partner directory and delivers it as a structured, paginated dataset you own.

#### What are alternatives to this Kompass scraper?

- **B2B supplier directory scrapers** covering both Kompass and Europages (e.g. the related actor above)
- **Europages scrapers** for European supplier and manufacturer data
- **Other Kompass scrapers on Apify** — most are more expensive or return fewer fields; see the comparison table below

#### How do I get phone numbers and emails from Kompass?

Set `includeDetails: true` and optionally a `country` filter and `searchQuery`. The actor then visits each company profile and extracts `phone`, `email`, `fax` and `website` into the dataset. Keep in mind that each profile visit carries the detail price; if you only need names and locations, leave `includeDetails` off.

#### Kompass vs Europages for B2B lead generation — which is better?

Both are major European B2B directories. Kompass has stronger global coverage (70+ countries) and richer firmographics (NACE codes, VAT numbers). Europages is more focused on European suppliers and manufacturers. Many teams scrape both — the related B2B supplier directory actor covers both sources in one run.

### SEO Keywords

kompass scraper, kompass company scraper, kompass api alternative, kompass email scraper, kompass phone numbers, b2b company data, b2b lead generation, b2b supplier directory, supplier sourcing, manufacturer database, kompass germany, kompass india, kompass united states, kompass spain, kompass italy, kompass france, kompass uk, nace code data, industry classification data, vat number lookup, crm enrichment, company contact list, b2b database, sales prospecting data, kompass alternatives

### For AI Agents & LLM Apps

- **Purpose** — returns a dataset of Kompass B2B companies: `companyName`, `country`, `city`, `website`, `phone`, `email`, `employeeRange`, `businessCategory1`, plus full profile fields when `includeDetails: true`.
- **Minimal working input**:

```json
{ "searchQuery": "packaging machinery", "country": "DE", "maxResults": 50 }
```

- **Variant — full profile mode** (adds per-profile cost):

```json
{ "searchQuery": "cnc machining", "country": "ES", "maxResults": 50, "includeDetails": true }
```

- **Variant — category browse** (macro owner recommended for agent use-cases like market mapping):

```json
{ "startUrls": [{ "url": "https://www.b2bstars.com/en-us/kompass/company?category=10000" }], "maxResults": 100, "includeDetails": true }
```

- **Output field list** — `companyName, companyId, slug, country, city, state, region, street, postalCode, website, phone, email, fax, employeeRange, businessCategory1-3, naceCode1-4, naceDescription1-4, fieldOfActivity, description, logoUrl, tradingName, vatNumber, purchaseSignals, verified, claimed, rating, reviewCount, linkedin, facebook, twitter, instagram, kompassActivities, kompassDescription, kompassCompanyUrl, sourceUrl, dataSourceUrl, scrapedAt`.
- **Behaviors an agent should know**:
  - `includeDetails` is the cost lever: OFF = list-page data at $0.002/company; ON = full profiles at $0.003/company. If `includeDetails` is left unset it defaults to `false`.
  - When `searchQuery` and `startUrls` are both set, `startUrls` take priority as entry points; `searchQuery` is only applied as `?q=` on B2B Stars.
  - `country` filters results; empty means all countries.
  - Billing is pay-per-event: $0.0005 actor start + $0.002 per company (list) or $0.003 per company (with details) — approximately **$2–3 per 1,000 companies**.
  - `maxResults` caps output at the dataset level (1–10,000); budgeting agents should set it explicitly.

### Legal & Compliance Disclaimer

This actor is independent and is not affiliated with, endorsed by, or sponsored by Kompass S.A. or B2B Stars. It accesses publicly available company information through the B2B Stars partner directory (a Kompass data partner); it does not bypass logins or paid subscriptions on the Kompass website itself. Users are responsible for complying with Kompass's and B2B Stars's Terms of Service and with applicable data-protection law (e.g. GDPR/CCPA) when using the extracted data. Phone numbers and email addresses returned by the actor should not be used for unsolicited commercial outreach in violation of applicable law (e.g. CAN-SPAM, GDPR, TCPA).

# Actor input Schema

## `startUrls` (type: `array`):

Kompass or B2B Stars URLs to start scraping from. Supports: company profile URLs (e.g. https://www.b2bstars.com/en-us/kompass/company/siemens-ag), category browse URLs (e.g. https://www.b2bstars.com/en-us/kompass/company?category=10000), or any B2B Stars Kompass page.

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

Optional keyword to filter companies. Applied as ?q= parameter on B2B Stars.

## `country` (type: `string`):

ISO country code to filter results (e.g. DE, FR, US, GB). Leave empty for all countries.

## `maxResults` (type: `integer`):

Maximum number of companies to scrape.

## `maxPagesPerUrl` (type: `integer`):

Maximum number of pagination pages to follow per start URL.

## `includeDetails` (type: `boolean`):

Toggle ON to visit each company profile page for full details (richer data: description, contact, socials, NACE codes, etc. - additional per-profile charge applies). Toggle OFF for fast basic data directly from list pages (name, location, category only).

## `maxConcurrency` (type: `integer`):

Number of profile/list pages fetched simultaneously. Higher = faster scraping, but uses more resources/proxy bandwidth. Recommended 10-30.

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

Proxy settings for the crawler.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.b2bstars.com/en-us/kompass/company?category=10000"
    },
    {
      "url": "https://www.b2bstars.com/en-us/kompass/company?category=11700"
    }
  ],
  "maxResults": 100,
  "maxPagesPerUrl": 5,
  "includeDetails": false,
  "maxConcurrency": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing all scraped companies

# 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 = {
    "startUrls": [
        {
            "url": "https://www.b2bstars.com/en-us/kompass/company?category=10000"
        },
        {
            "url": "https://www.b2bstars.com/en-us/kompass/company?category=11700"
        }
    ],
    "searchQuery": "",
    "country": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/kompass-scraper").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 = {
    "startUrls": [
        { "url": "https://www.b2bstars.com/en-us/kompass/company?category=10000" },
        { "url": "https://www.b2bstars.com/en-us/kompass/company?category=11700" },
    ],
    "searchQuery": "",
    "country": "",
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/kompass-scraper").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 '{
  "startUrls": [
    {
      "url": "https://www.b2bstars.com/en-us/kompass/company?category=10000"
    },
    {
      "url": "https://www.b2bstars.com/en-us/kompass/company?category=11700"
    }
  ],
  "searchQuery": "",
  "country": ""
}' |
apify call ahmed_jasarevic/kompass-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/kompass-scraper"
        }
    }
}

```

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/urqGGfmwW4Bjcmfn3/builds/E1EhGL1OEjEDHq1Gm/openapi.json
