Kompass Scraper - B2B Companies & Contacts avatar

Kompass Scraper - B2B Companies & Contacts

Pricing

from $2.49 / 1,000 companies

Go to Apify Store
Kompass Scraper - B2B Companies & Contacts

Kompass Scraper - B2B Companies & Contacts

Scrape Kompass B2B company profiles worldwide. Export phone, email, website, VAT, address, employees, products and certifications from keywords or profile URLs.

Pricing

from $2.49 / 1,000 companies

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Disclaimer: Unofficial integration for publicly accessible sources. Trademarks belong to their respective owners. Provided for informational use only; users must comply with applicable platform terms and laws.

Crawloop Global Sourcing Suite — B2B company directories for Europe and beyond.

Kompass (Global)Europages (Europe)WLW (DACH)
Kompass Scraper ◄── you are hereEuropages ScraperWLW Scraper
Global B2B companies, phone, email, VATMulti-locale EU directory, VAT, certificatesDE / AT / CH suppliers, phone, email, VAT

Kompass Scraper for Apify — a Kompass API alternative that turns the global B2B directory into clean JSON. Scrape company profiles across 70+ country domains and export phone, email, website, VAT, registration number, address, GPS, employees, products, certifications, and optional catalogue PDFs.

Built for supplier sourcing, lead generation, CRM enrichment, and market mapping. Run from the Console or with Python, Node.js, cURL, or MCP / AI assistants. Uses Camoufox plus residential proxy to clear Kompass DataDome.

When to use this Actor

  • You need a Kompass company scraper for structured dataset rows
  • You want keyword search or startUrls (search pages / profile links)
  • You need phone, email, VAT and firmographics for outbound or procurement
  • You want a global ↔ Europe chain with Europages / WLW

When not to use this Actor

  • Guaranteed email on every profile — many free listings publish phone and website only
  • Authenticated / gated Kompass fields — public profile + JSON-LD only
  • Sending RFQs through Kompass contact forms — read-only extraction
  • Datacenter-only runs — DataDome blocks most non-residential traffic; use Apify Residential matching the market country

Key features

  • Kompass API alternative — structured dataset instead of manual browsing
  • Keyword → searchCompanies — builds country-host search URLs automatically
  • Start URLs — paste search pages or /c/{slug}/{id}/ profile links
  • 15+ marketsde, fr, gb, us, es, it, nl, be, pl, in, …
  • Country post-filter — drop off-target SERP companies before detail fetch
  • Detail enrichment — JSON-LD Organization + firmographics (VAT, register, employees)
  • Smart enrich — skip profile fetch when listing already has email + phone + website
  • Optional cataloguesfetchCatalogues attaches PDF / video links from /c/cv/…
  • Streaming results — dataset rows appear while the run is in progress (per keyword)
  • Deduped push — unique by companyId within a run
  • DataDome bypass — Camoufox stealth Firefox + residential session rotation

Use cases

Use caseWhat you get
Find global suppliersKeyword search with company id, city, country, products
B2B contact listsPhone, email, and website from company profiles
Firmographics & complianceVAT ID, registration number, legal form, founding year, employees
Geo & territory mappingStreet address plus latitude / longitude
Catalogue collectionOptional PDF / video links from the media page
Country-focused runsMarket host + ISO country post-filter for clean lists

Input parameters

ParameterTypeDefaultDescription
searchKeywordsArray["pumpen"]Keywords → Kompass search URLs.
startUrlsArray[]Search and/or company profile URLs.
marketString"de"Country subdomain / host (e.g. de, fr, gb).
countryFilterStringOptional ISO-2 post-filter (e.g. DE).
fetchDetailsBooleantrueOpen profiles for full fields (see smartEnrich).
smartEnrichBooleantrueSkip profile when listing already has email+phone+website.
fetchCataloguesBooleanfalseAlso fetch /c/cv/ media links (forces detail).
maxItemsInteger50Max dataset rows (0 = unlimited within maxPages).
maxPagesInteger3Max search pages per keyword / listing URL.
concurrencyInteger1Parallel Camoufox workers (1–4; keep low behind DataDome).
proxyConfigurationObjectDE residentialApify Proxy — residential required.

Example — German pump manufacturers

{
"searchKeywords": ["pumpen"],
"market": "de",
"countryFilter": "DE",
"fetchDetails": true,
"smartEnrich": false,
"fetchCatalogues": false,
"maxItems": 100,
"maxPages": 5,
"concurrency": 1,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "DE"
}
}

Example — profile URLs only

{
"startUrls": [
{"url": "https://de.kompass.com/c/rls-wacon-analytics-gmbh/denkc00033877/"}
],
"fetchDetails": true,
"maxItems": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "DE"
}
}

Example — listing-only (fast volume)

{
"searchKeywords": ["ventile", "sensoren"],
"market": "de",
"fetchDetails": false,
"maxItems": 200,
"maxPages": 5,
"concurrency": 1,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "DE"
}
}

Output fields

FieldDescription
companyIdStable Kompass ID
nameCompany display name
urlKompass profile URL
websiteUrlExternal website
email / phoneNumber / faxNumberContacts when published
addressStreet, zip, city, country, lat/lng
vatNumber / registrationNumber / legalFormFirmographics
employeeCount / foundingYearSize & age
categories / products / businessTypesActivities & roles
certifications / executives / cataloguesEnrichment extras
enriched / scrapedAtProvenance

Example output

{
"recordType": "company",
"companyId": "DENKC00033877",
"name": "RLS Wacon analytics GmbH",
"url": "https://de.kompass.com/c/rls-wacon-analytics-gmbh/denkc00033877/",
"websiteUrl": "https://www.rls-wacon.de",
"email": "info@rls-wacon.de",
"phoneNumber": "+49 5121 28 126 0",
"city": "Hildesheim",
"countryCode": "DE",
"vatNumber": "DE240123142",
"employeeCount": "Von 20 bis 49 Mitarbeiter",
"foundingYear": 2005,
"enriched": true,
"sourcePlatform": "kompass.com"
}

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/kompass-scraper').call({
searchKeywords: ['pumpen'],
market: 'de',
countryFilter: 'DE',
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("crawloop/kompass-scraper").call(run_input={
"searchKeywords": ["pumpen"],
"market": "de",
"countryFilter": "DE",
"maxItems": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item.get("email"), item.get("phoneNumber"))

cURL

curl -X POST "https://api.apify.com/v2/acts/crawloop~kompass-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchKeywords":["pumpen"],"market":"de","countryFilter":"DE","maxItems":50}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID / name.

Example prompts:

  • "Run Kompass Scraper for pumpen in Germany with countryFilter DE and return the top 20 rows as JSON"
  • "Scrape Kompass company profiles for industrial valves in France and summarize VAT + phone coverage"
  • "Chain Kompass Scraper then Europages Scraper to compare EU supplier contacts for the same keyword"

Suite next step

After mapping global Kompass leads, enrich Europe-focused shortlists with Europages Scraper or DACH suppliers with WLW Scraper.

FAQ

Why do I need residential proxies?
Kompass uses DataDome. Datacenter IPs usually get an interstitial challenge; Apify Residential with a matching country code clears it reliably.

Why is detail mode slower than Europages?
Kompass requires a real browser (Camoufox) per page. For large volumes, start with fetchDetails: false, then enrich only new companyIds.

Why filter by country?
Long searches mix foreign companies on later pages. countryFilter drops non-matching rows before detail fetch.

Do listings include email?
Usually not. Keep fetchDetails on (and smartEnrich off when you need maximum VAT/contact coverage).

ActorRole
Europages ScraperEurope-wide B2B directory, multi-locale, VAT & contacts
WLW ScraperDACH B2B directory (Wer liefert was)