Kompass Scraper - B2B Companies & Contacts
Pricing
from $2.49 / 1,000 companies
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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 here | Europages Scraper | WLW Scraper |
| Global B2B companies, phone, email, VAT | Multi-locale EU directory, VAT, certificates | DE / 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+ markets —
de,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 catalogues —
fetchCataloguesattaches PDF / video links from/c/cv/… - Streaming results — dataset rows appear while the run is in progress (per keyword)
- Deduped push — unique by
companyIdwithin a run - DataDome bypass — Camoufox stealth Firefox + residential session rotation
Use cases
| Use case | What you get |
|---|---|
| Find global suppliers | Keyword search with company id, city, country, products |
| B2B contact lists | Phone, email, and website from company profiles |
| Firmographics & compliance | VAT ID, registration number, legal form, founding year, employees |
| Geo & territory mapping | Street address plus latitude / longitude |
| Catalogue collection | Optional PDF / video links from the media page |
| Country-focused runs | Market host + ISO country post-filter for clean lists |
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchKeywords | Array | ["pumpen"] | Keywords → Kompass search URLs. |
startUrls | Array | [] | Search and/or company profile URLs. |
market | String | "de" | Country subdomain / host (e.g. de, fr, gb). |
countryFilter | String | — | Optional ISO-2 post-filter (e.g. DE). |
fetchDetails | Boolean | true | Open profiles for full fields (see smartEnrich). |
smartEnrich | Boolean | true | Skip profile when listing already has email+phone+website. |
fetchCatalogues | Boolean | false | Also fetch /c/cv/ media links (forces detail). |
maxItems | Integer | 50 | Max dataset rows (0 = unlimited within maxPages). |
maxPages | Integer | 3 | Max search pages per keyword / listing URL. |
concurrency | Integer | 1 | Parallel Camoufox workers (1–4; keep low behind DataDome). |
proxyConfiguration | Object | DE residential | Apify 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
| Field | Description |
|---|---|
companyId | Stable Kompass ID |
name | Company display name |
url | Kompass profile URL |
websiteUrl | External website |
email / phoneNumber / faxNumber | Contacts when published |
address | Street, zip, city, country, lat/lng |
vatNumber / registrationNumber / legalForm | Firmographics |
employeeCount / foundingYear | Size & age |
categories / products / businessTypes | Activities & roles |
certifications / executives / catalogues | Enrichment extras |
enriched / scrapedAt | Provenance |
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 ApifyClientclient = 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).
Related Actors
| Actor | Role |
|---|---|
| Europages Scraper | Europe-wide B2B directory, multi-locale, VAT & contacts |
| WLW Scraper | DACH B2B directory (Wer liefert was) |