WLW Scraper - B2B Companies & Contacts (DACH) avatar

WLW Scraper - B2B Companies & Contacts (DACH)

Pricing

from $1.30 / 1,000 company profiles

Go to Apify Store
WLW Scraper - B2B Companies & Contacts (DACH)

WLW Scraper - B2B Companies & Contacts (DACH)

Scrape WLW (Wer liefert was) B2B company profiles in Germany, Austria and Switzerland. Get phone, email, VAT ID, address, GPS, certificates and contacts. Keyword, category or profile URL. Fast curl_cffi HTTP on Apify.

Pricing

from $1.30 / 1,000 company profiles

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

9 days ago

Last modified

Share

Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by WLW or its affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

Contact-data controls: Phone/WhatsApp/fax and email fields are omitted from the dataset by default. Enable includePhones and/or includeEmails only for contacts already published on public pages and only when you have a lawful basis. Any contact-field examples below assume that explicit opt-in; otherwise those fields are absent.

WLW (DACH)Europages (Europe)KvK Handelsregister (NL)
WLW Scraper ◄── you are hereEuropages ScraperKvK Handelsregister Scraper
DE / AT / CH suppliers, phone, email, VAT, contactsMulti-country EU directory, VAT, contacts, certificatesDutch Chamber of Commerce search + KvK lookup

WLW scraper for Apify — extract DACH B2B company profiles from Wer liefert was (Germany, Austria, Switzerland) into clean JSON. Collect manufacturers, distributors, wholesalers and service providers with phone, email, VAT ID, street address, GPS coordinates, certificates, named contact persons, and optional product catalog cards.

Ideal for supplier sourcing, sales prospecting, CRM enrichment, and firmographic research across the German-speaking market. Fast HTTP crawl: listing pages via Nuxt SSR, company details via lightweight _payload.json — no headless browser.

Use cases

Use caseWhat you get
Find DACH suppliersKeyword / category listings with company id, city, country, website
Lead & contact listsPhone, email, and named managers from company profiles
Firmographics & complianceVAT ID, founding year, employee range, certificates
Geo & territory mappingStreet address plus latitude / longitude
Product landscapeOptional product cards from each company catalog
Multi-market runsSwitch host between DE / AT / CH

When to use this Actor

  • You need WLW B2B company data as structured dataset rows
  • You want keyword search or paste category / profile URLs
  • You prefer a fast, browser-free crawl on Apify

When not to use this Actor

  • Guaranteed email on every profile — many free listings publish phone and website only
  • Authenticated / gated WLW fields — public SSR / payload only
  • Sending RFQs through the WLW contact form — this Actor is read-only extraction
  • Non-WLW directories — use a source-specific Actor instead

Key features

  • Keyword search — builds WLW SEO listing URLs (/de/suche/…)
  • Category & start URLs — paste listing pages or company profile links
  • DACH markets — de (wlw.de), at (wlw.at), ch (wlw.ch)
  • Detail enrichment — fetchDetails loads company _payload.json for VAT, contacts, certificates, geo
  • Optional products — includeProducts attaches catalog cards from the profile
  • Streaming results — dataset rows appear while the run is in progress
  • Pagination controls — maxPages + maxItems for predictable run size
  • Lightweight & resilient — curl_cffi Chrome TLS fingerprinting, proxy session rotation on challenges

Input parameters

ParameterTypeDefaultDescription
searchKeywordsArray["maschinenbau"]Keywords → WLW listing URLs.
categoryUrlsArray[]Direct listing / category URLs.
startUrlsArray[]Company profiles and/or extra listings.
marketString"de"DACH host: de, at, or ch.
languageString"de"URL language path (de or en).
fetchDetailsBooleantrueFetch profile payload for full fields.
includeProductsBooleanfalseAttach product cards from profiles.
maxItemsInteger50Max dataset rows (0 = unlimited within maxPages).
maxPagesInteger3Max listing pages per list URL.
concurrencyInteger6Parallel detail workers (1–15; lower if challenges).
proxyConfigurationObjectresidentialApify Proxy settings (residential recommended).

Example — German timber-machine suppliers

{
"searchKeywords": ["abbundmaschinen"],
"market": "de",
"language": "de",
"fetchDetails": true,
"includeProducts": false,
"maxItems": 100,
"maxPages": 5,
"concurrency": 6,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Example — Direct company profiles + category URL

{
"categoryUrls": [
{ "url": "https://www.wlw.de/de/suche/abbundmaschinen" }
],
"startUrls": [
{ "url": "https://www.wlw.de/de/firma/mustertechnik-gmbh-100001" }
],
"market": "de",
"fetchDetails": true,
"maxItems": 50,
"maxPages": 2,
"concurrency": 4
}

Output

Each dataset item is one WLW company. Example fields (fictional sample for illustration):

{
"recordType": "company",
"companyId": "100001",
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Mustertechnik GmbH",
"slug": "mustertechnik-gmbh-100001",
"market": "de",
"language": "de",
"url": "https://www.wlw.de/de/firma/mustertechnik-gmbh-100001",
"description": "Example industrial supplier description for documentation only.",
"websiteUrl": "https://www.mustertechnik.example/",
"email": "info@mustertechnik.example",
"phoneNumber": "+493012345678",
"businessTypes": ["distribution"],
"city": "Berlin",
"countryCode": "DE",
"address": {
"street": "Musterstrasse 1",
"zipcode": "10115",
"city": "Berlin",
"countryCode": "DE",
"latitude": 52.52,
"longitude": 13.405
},
"foundingYear": 1998,
"employeeCount": "20-49",
"vatId": "DE000000000",
"distributionArea": "national",
"contactPersons": [
{
"firstName": "Max",
"lastName": "Mustermann",
"email": "max.mustermann@mustertechnik.example",
"phoneNumber": "+493012345679",
"executiveType": "executive"
}
],
"logoUrl": "https://cdn.example.com/logos/mustertechnik.png"
}

Workflow

  1. Build listing URLs from searchKeywords, categoryUrls, and/or startUrls
  2. Paginate WLW search pages and parse Nuxt __NUXT_DATA__ company rows
  3. Deduplicate by companyId / uuid
  4. Optionally enrich each profile via /firma/{slug}/_payload.json
  5. Stream rows to the default dataset (PPE event scraped-company)

Tips for better results

  • Prefer residential proxy for larger crawls; lower concurrency (3–5) if you see challenges
  • Set fetchDetails: false for a fast listing-only pass, then re-run with profile URLs for enrichment
  • Use market to target Austria (at) or Switzerland (ch) hosts
  • Keep includeProducts off unless you need catalog cards (larger payloads)
  • Need pan-European supplier coverage beyond DACH? Use Europages Scraper
  • Need register identity (HRB, EUID, LEI, officers)? Use North Data Scraper

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/wlw-scraper').call({ searchKeywords: ['abbundmaschinen'], market: 'de', language: 'de', fetchDetails: true, maxItems: 50 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Python

from apify_client import ApifyClient
client = ApifyClient(token)
run = client.actor("crawloop/wlw-scraper").call(
run_input={"searchKeywords": ["abbundmaschinen"], "market": "de", "language": "de", "fetchDetails": True, "maxItems": 50}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("name"), item.get("email"), item.get("city"))

cURL

curl "https://api.apify.com/v2/acts/crawloop~wlw-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchKeywords":["abbundmaschinen"],"market":"de","language":"de","fetchDetails":true,"maxItems":50}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/wlw-scraper.

Example prompts:

  • "Run WLW Scraper for abbundmaschinen in DE, max 50, return name, email, phoneNumber, vatId"
  • "Find DACH suppliers with certificates and contact persons"
  • "Chain WLW then Europages Scraper for pan-European supplier coverage"
  • "Chain WLW then North Data Scraper to add HRB / EUID to DACH supplier leads"

Suite next step

For pan-European directory coverage, use Europages Scraper. For Dutch Chamber of Commerce identity (KvK number, legal form, address), use KvK Handelsregister Scraper. For EU commercial-register identity (court, number, officers), run North Data Scraper.

ActorUse for
WLW Scraper ◄── you are hereDACH (DE / AT / CH) B2B suppliers from Wer liefert was
Europages ScraperEurope-wide B2B directory, multi-locale, VAT & contacts
KvK Handelsregister ScraperDutch Chamber of Commerce public search + KvK lookup
North Data ScraperEU commercial-register identity, officers, published financials
1688 ScraperChina-domestic wholesale offers, MOQ, factory flags
Alibaba Product ScraperAlibaba.com FOB ladders, MOQ, Gold / Verified