Kompass Scraper | B2B Companies, Contacts & Products
Pricing
from $2.20 / 1,000 results
Kompass Scraper | B2B Companies, Contacts & Products
Extract companies and products from Kompass country sites, with public phones, emails, addresses and executives when available. Search by keyword or browse company, product, region and sector pages. Billed per delivered row plus a start fee.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
7
Total users
3
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Kompass Scraper
Extract company and product directory rows from Kompass country sites, including public supplier contacts when available, for export and analysis.
- Company names, identifiers, descriptions and directory URLs.
- Public company phones, emails, addresses, websites and executives.
- Product titles, supplier links and catalog information.
- Keyword search, direct pages, region lists and sector lists.
- Pay for delivered rows: $3.00 per 1,000 rows on the Free plan, plus a start fee.
What does Kompass Scraper do?
Kompass Scraper collects public business directory information for supplier research, market mapping and catalog analysis. Select a country such as France, Germany, Australia or the United States. The input form accepts 70 country codes; page availability and field coverage vary by country.
- Company and product search:
company_searchandproduct_searchuse keywords. - Direct pages:
companyandproductread a supplied URL. - Company catalogs:
company_productsreturns separate product rows. - Directory browsing:
regionandsectorreturn company rows. - Contact enrichment:
enrichDetailsis on by default. It adds available company details to the same row, without a second row charge. - Sponsored rows:
includeSponsoredis off by default. If enabled, each sponsored row is billed like any other row.
What data can you extract from Kompass?
Company rows
Fields depend on what the public page contains. Listing cards are less detailed than company pages.
| Field | Description | Example |
|---|---|---|
type | Row kind. | company |
name | Company name. | Example Manufacturing |
kompassId | Company identifier; inspect the source URL. | FR8380178 |
url | Source company page. | https://fr.kompass.com/c/ipo-technologie/fr8380178/ |
country | Country code; meaning depends on the source. | fr |
description | Public company description. | Industrial equipment supplier |
companyTypes | Business categories when listed. | ["Producer"] |
employees | Published employee count or range. | 100-249 |
phones | Public phone entries. | [{"value":"+1 555 0100","type":"landline"}] |
emails | Public company mailboxes. | [{"value":"name@example.com","type":"work"}] |
address | Street, locality, postal code and country. | {"locality":"Paris","country":"FR"} |
geo | Coordinates when published. | {"lat":48.85,"lng":2.35} |
person | First listed executive. | {"name":"Jane Doe","role":"Director"} |
executives | Published executive names and roles. | [{"name":"Jane Doe","role":"Director"}] |
contacts | Named contacts when available. | [{"firstName":"Jane","lastName":"Doe","phone":null}] |
web | Company website and social links. | {"website":"https://example.com","socials":[]} |
leadSource | Source category for contact data. | detail |
leadAbsences | Reasons missing contact fields are empty. | {"emails":"本站无"} |
scrapedAt | Collection timestamp. | 2026-10-24T08:00:00+00:00 |
Product rows
Product rows describe products, not supplier contacts. Use companyUrl in a separate company run for contacts.
| Field | Description | Example |
|---|---|---|
type | Row kind. | product |
productId | Product identifier. | example-product-id |
title | Product name. | Hydraulic pump |
url | Product page. | A Kompass /p/ URL |
description | Published product description. | Industrial hydraulic pump |
category | Product category when listed. | Pumps |
brand | Brand on a product detail page. | Example Brand |
image | Product image URL. | https://example.com/product.jpg |
companyName | Supplier name. | Example Manufacturing |
companyUrl | Related company page. | A Kompass /c/ URL |
leadAbsences values include 本站无 (not published), 未验证 (not checked), 闸门锁 (restricted) and 部分 (partial). These are output values, not settings. Older fields such as phone, email and website remain available as single-value aliases.
How to scrape Kompass
- Open Kompass Scraper in Apify Console.
- Fill one target field and choose the country for searches.
- Set
maxResultsto 3 for a first run. - Click Start and wait for completion.
- Download the dataset or read it through the API.
Empty input {} starts an example company search for machinery in fr, limited to 3 rows from the input form's sample values. Normal start and row charges apply. With mode: "auto", filling one target field selects its mode.
Company search
Fill query, or searchQueries for several keywords. A keyword alone selects company_search.
Product search
Set mode: "product_search" and fill query or searchQueries.
Company detail
Fill companyUrl to read one company. For several companies, use detailUrls containing company links.
Company products
Set mode: "company_products" and fill companyUrl. Each catalog product is a separate row.
Product detail
Fill productUrl with a complete product-page link. For several products, use product links in detailUrls.
Region browse
Fill regionUrl, regionCode or a recognized region name, such as victoria with country: "au".
Sector browse
Fill sectorUrl, sectorId or a recognized sector name, such as agriculture. Use a full URL if the name is not recognized.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | auto or one of the seven modes above. | auto |
country | Country code, such as fr, de, au, gb or us. | fr |
query | One company or product keyword. | Empty; sample machinery |
searchQueries | Several keywords instead of query. | Empty |
companyUrl | Company page or company product-list URL. | Empty |
productUrl | Complete product detail URL. | Empty |
detailUrls | Several URLs of the same page kind. | Empty |
regionUrl | Region list URL containing /r/. | Empty |
regionCode | Region code, such as au_vic. | Empty |
region | Recognized region name. | Empty |
sectorUrl | Sector list URL containing /a/. | Empty |
sectorId | Numeric sector ID as a string. | Empty |
sector | Recognized sector name or ID. | Empty |
maxResults | Maximum rows per input, 1–1,000. | 70; sample 3 |
maxPages | Page setting, 1–50; limits region, sector and catalog pages. Search depth varies. | 1 |
page | Search start-page setting, 1–100. | 1 |
enrichDetails | Add available company contact details to listing rows. | true |
includeSponsored | Keep sponsored rows and charge for them. | false |
Company search:
{"mode": "company_search","country": "de","query": "armaturen","maxResults": 3}
Product search:
{"mode": "product_search","country": "de","query": "hydraulic pump","maxResults": 3}
Company detail:
{"mode": "company","companyUrl": "https://fr.kompass.com/c/ipo-technologie/fr8380178/","maxResults": 1}
Company products:
{"mode": "company_products","companyUrl": "https://fr.kompass.com/c/ipo-technologie/fr8380178/","maxResults": 3}
Product detail: replace this illustrative URL with a product link from your search results.
{"mode": "product","productUrl": "https://au.kompass.com/p/example-company/au000000/example-product/example-id/","maxResults": 1}
Region browse:
{"mode": "region","country": "au","region": "victoria","maxResults": 3}
Sector browse:
{"mode": "sector","country": "au","sector": "agriculture","maxResults": 3}
maxItems and limit are aliases for maxResults; keyword is an alias for query. Close field-name misspellings are corrected where recognized; other unknown fields are ignored with a note. Invalid target values stop the run with INVALID_INPUT: <field> — <how to fix> before any rows are charged; the start fee may still apply.
Every run writes INPUT_REPORT to the default key-value store, showing filled, corrected and ignored fields. A mode without its required target can be replaced by the mode matching a filled target. To avoid ambiguity, supply one target kind: URLs take priority over IDs, keywords and names. detailUrls takes priority over individual URL fields; its first URL selects the mode in automatic mode. Region and sector batches must contain matching list URLs.
Output example
Illustrative company row; contact values are placeholders, not a live result:
{"type": "company","country": "fr","name": "Example Manufacturing","kompassId": "FR0000000","url": "https://fr.kompass.com/c/example-manufacturing/fr0000000/","phones": [{"value": "+1 555 0100", "type": "landline"}],"emails": [{"value": "name@example.com", "type": "work"}],"address": {"street": "123 Example Street", "locality": "Paris", "country": "FR"},"person": {"name": "Jane Doe", "role": "Director"},"web": {"website": "https://example.com", "socials": []},"leadSource": "detail","leadReveal": "visible","leadAbsences": {},"source": "kompass","scrapedAt": "2026-10-24T08:00:00+00:00"}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. RUN_SUMMARY records row counts and warnings; ERROR_SUMMARY contains failure details when a run fails.
Why use this Kompass scraper?
- Pay per delivered row. Pages that produce no dataset row do not incur a row charge; the start fee is separate.
- Keep delivered data. Rows already written remain available after a stop or timeout. Undelivered results are not guaranteed after a manual stop.
- Understand gaps. Missing fields stay empty, with contact absence reasons where available.
- Batch inputs. Use several keywords or matching URLs without creating a run for each one.
- No proxy setup. You do not need to set up proxies.
How much does it cost to scrape Kompass?
The Actor charges for a start event and delivered rows. Platform usage is included in these prices.
| Apify plan | Start event | Price per row | Price per 1,000 rows |
|---|---|---|---|
| Free | $0.005 | $0.003 | $3.00 |
| Starter | $0.005 | $0.003 | $3.00 |
| Scale | $0.005 | $0.0026 | $2.60 |
| Business | $0.005 | $0.0022 | $2.20 |
| Platinum | $0.005 | $0.0020 | $2.00 |
| Diamond | $0.005 | $0.0016 | $1.60 |
Start billing is one event per GB of allocated memory, with a minimum of one event. At the default 512 MB, the start charge is $0.005.
maxResultsapplies to each keyword or URL. The default is 70; larger requests are collected in parts of 70.- Free Apify plan users have a developer-set allowance of 10 runs and at most 200 rows per run. These limits do not make the event charges free.
- The whole run stops at your Maximum cost per run (
maxTotalChargeUsdin the API).
Example: two keywords returning 5 rows each deliver 10 rows. On the Free plan at 512 MB, one start plus 10 rows costs $0.005 + 10 × $0.003 = $0.035. Fewer delivered rows mean fewer row charges.
What happens when the run timeout is too short
A search can take longer than the timeout you chose. The run can pause with the status message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It temporarily appears as ABORTED. When results are ready, the same run resumes, reports "Resumed: delivering N rows.", writes to the same dataset and finishes as SUCCEEDED if collection succeeds.
Previously delivered rows are skipped rather than delivered or charged twice. This can happen at most 3 times per run. Keep the default timeout of 3600 seconds to reduce pauses. Actual collection failures can still end the run with an error.
The synchronous endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and may return an empty dataset while the run is paused. For longer requests, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook.
Use with AI agents and the API
Apify MCP server
Add this remote MCP URL in Claude, ChatGPT, Cursor, VS Code or another compatible client:
https://mcp.apify.com?tools=lentic_clockss/kompass-scraper
Sign in with Apify through OAuth when prompted, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset IDs; the agent reads rows with get-dataset-items.
For clients without remote MCP support, run npx @apify/actors-mcp-server --tools lentic_clockss/kompass-scraper with APIFY_TOKEN set.
Example prompt: "Find three German companies matching armaturen, including public company contacts when available."
Apify API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/kompass-scraper").call(run_input={"country": "de", "query": "armaturen", "maxResults": 3})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/kompass-scraper').call({country: 'de', query: 'armaturen', maxResults: 3});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Over HTTP, send input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~kompass-scraper/runs with the bearer token header. Read completed results using GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json. The Actor uses limited permissions for its run data.
Integrations
Use the Actor's Integrations tab to connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Use Apify Schedules for recurring runs.
FAQ
Is it legal to scrape Kompass?
This Actor collects publicly accessible data. You are responsible for complying with the site's terms and applicable data protection laws. Processing personal data requires a lawful basis; public visibility alone does not establish one.
Why did my run end as ABORTED?
An automatic pause can temporarily show ABORTED before the same run resumes. Check its status message. A manual abort or another failure is not a promise of automatic recovery.
How many results can I get?
maxResults accepts up to 1,000 per input, subject to available pages, your spending limit and plan allowance. The default is 70; the example uses 3. A single detail URL usually produces one row.
Why are some fields empty?
Company listing cards lack many detail fields. Keep enrichDetails: true for richer company rows. Product rows do not copy supplier contacts. Read leadAbsences to distinguish missing, restricted and unchecked information.
Is this an official Kompass tool?
No. It is an independent Actor, not affiliated with Kompass. It does not sign in to paid products, purchase lead lists or submit contact forms.
Why choose a country rather than www.kompass.com?
www.kompass.com is a country-selection gateway. Choose a country subdomain for searches; direct URLs identify the page to read.
Are contact fields hidden on the Free plan?
No. Public contact fields are not removed because of your plan. Availability depends on the source page and whether details were read.
Can company search return another directory's rows?
Yes. Company search can include Europages companies marked leadSource: "ep_search". Check url and leadSource before treating every row as a Kompass listing. On these rows, country is the company's country when available.
Limitations
- Accepting 70 country codes does not guarantee complete coverage in every country.
- Company and product search pages have a five-page guest limit; this is not a fixed cap on every company-search result source.
maxPagesandpageare not uniform controls across all search sources. UsemaxResultsto limit rows.- Region-name lookup covers selected French, US and Australian regions. Other regions need a valid URL or code.
- Contact fields are not guaranteed. Product pages do not supply company phones or emails.
- Social links may include employee profiles, not only the company's profile.
- Inaccessible or changed pages may yield fewer rows or an error. No complete-directory or fixed-duration guarantee is offered.
Related scrapers
More B2B supplier and wholesale marketplace scrapers from the same publisher:
- GlobalSources Scraper
- Thomasnet Scraper
- iPROS Scraper
- Xometry Scraper
- Europages Scraper
- IndiaMART Scraper
- MonotaRO Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Report a problem or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.