# Wer Liefert Was Email Scraper (`leads-scraper/wer-liefert-was-email-scraper`) Actor

Wer Liefert Was Email Scraper SD - Wer Liefert Was Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from wlw results by keyword, location and email domain - wlw email extractor.

- **URL**: https://apify.com/leads-scraper/wer-liefert-was-email-scraper.md
- **Developed by:** [Leads Scraper](https://apify.com/leads-scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Wer Liefert Was Email Scraper - public German supplier emails from wlw.de, wlw.at and wlw.ch

The Wer Liefert Was Email Scraper collects publicly indexed contact emails that appear in Google search results for `wlw.de`, `wlw.at` and `wlw.ch`. wlw, short for "wer liefert was", is the leading B2B marketplace in Germany, Austria and Switzerland, where buyers go to find Hersteller, Lieferanten, Händler and Dienstleister.

This is the most language-dependent Actor in the family, and that shapes everything. The Wer Liefert Was Email Scraper ships with German default keywords (`hersteller`, `lieferant`) and German query modifiers (`kontakt`, `vertrieb`, `grosshandel`, `anfrage`) because the index it reads is German.

It builds Google `site:wlw.de` queries across all three country domains, reads the result pages through the Apify GOOGLE_SERP proxy, and extracts every email matching your domain filter.

The audience is the DACH industrial market: MRO distributors, component and machinery buyers, automation integrators, and the industrial marketing agencies who sell into the Mittelstand.

#### German keywords and countryCode are first-class settings

Nothing else you change matters as much as language and country. Run the Wer Liefert Was Email Scraper with English keywords and a blank `countryCode` and you will underperform badly.

Set `countryCode` to `DE` for Germany, `AT` for Austria or `CH` for Switzerland. That runs the search proxy from the region and changes which wlw pages Google is willing to return for the same term.

Keep the German defaults `hersteller` and `lieferant`, then add trade nouns of your own: `Zerspanung`, `Blechbearbeitung`, `Kunststoffspritzguss`, `Fördertechnik`, `Verpackungsmaschinen`, `Schweißtechnik`.

Keep the German modifiers too. `kontakt`, `vertrieb`, `grosshandel` and `anfrage` are the exact words German company pages print beside a contact address, and they are why the Wer Liefert Was Email Scraper finds anything at all.

#### A measured live result, stated plainly

A live Google run of the Wer Liefert Was Email Scraper returned **10 result blocks, 8 rows with account identity, 2 resolvable profile URLs and 1 unique email**. Those are observed figures from a real run, and they need reading carefully.

Identity resolution is decent. Eight rows out of ten carried a company name in `accountName`, so you learn who the supplier is even when nothing else resolves.

URLs and emails are thin. Only 2 rows produced a `profileUrl`, and only 1 unique email cleared the default webmail filter, so the Wer Liefert Was Email Scraper is a low-yield Actor on default settings.

That last number is the one to act on. German firms almost never publish `@gmail.com` addresses, so replacing the defaults with `@web.de`, `@gmx.de`, `@t-online.de` and `@outlook.de` is not optional tuning here, it is the difference between one email and a usable list.

### Features of the Wer Liefert Was Email Scraper

Every feature listed below is genuinely implemented in the Wer Liefert Was Email Scraper. Nothing here is aspirational.

| Feature | What it means in practice |
|---|---|
| Google SERP parsing | Reads Google result pages through the Apify GOOGLE_SERP proxy. No browser, no JavaScript rendering |
| Multi-domain coverage | Queries `wlw.de`, `wlw.at` and `wlw.ch`, so the DACH region is covered in one run |
| Structural block detection | Locates the `<h3>` title, then the smallest surrounding block. Does not depend on Google's CSS class names |
| Domain filter | Only emails ending in one of your `customDomains` values are kept |
| Query expansion | Base, quoted, `intitle:` and one variant per German query modifier. Base queries run first |
| Global deduplication | An email seen once is never pushed twice, across every query and every page |
| Email normalisation | Understands `name [at] domain [dot] de`, `name (at) domain`, `name @ domain.de`, `domain .de`, zero-width characters and the full-width `＠` sign |
| Junk filter | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals |
| Boundary-correct matching | `@web.de` does not match inside `@web.design` or `@web.de.com` |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same block |
| Concurrency | An `asyncio` worker pool with a shared stop signal on `maxEmails` |
| Retries | Up to 3 attempts per page, exponential backoff, a fresh proxy session per request |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty |
| Re-queueing | Blocked or failed queries are retried once at the end of the run |
| Resumable run | State is stored in the key-value store, keyed by a hash of the input, and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Fallback parser | If Google's markup changes, the run degrades to "emails without account details" rather than "no emails" |
| Run summary | Logs pages fetched, blocked pages, retries and emails per page |
| Dataset output | Rows push immediately and export to CSV, JSON, Excel or XML from the Apify dataset |

Block detection deserves a note. German and Austrian Google properties serve consent interstitials aggressively, and the Wer Liefert Was Email Scraper treats those as blocked pages to retry rather than as empty results.

Email normalisation matters more here than on English sites. German company pages routinely write `info (at) firma-mueller.de` to deter harvesters, and this Actor reads that form correctly.

### How the Wer Liefert Was Email Scraper works

The pipeline is six steps and nothing is hidden inside it.

1. It reads your input: keywords, location, email domains and limits.
2. It builds Google search queries with the `site:` operator against the wlw domains, for example `site:wlw.de hersteller kontakt "@web.de" "Bayern"`.
3. It fetches Google result pages through the Apify GOOGLE_SERP proxy using `aiohttp`, asynchronously.
4. It parses each result block structurally, finding the `<h3>` title and the smallest block around it.
5. It extracts emails from that block's text with a domain-filtered regex.
6. It deduplicates globally and pushes each lead straight into the Apify dataset.

The Wer Liefert Was Email Scraper does **not** log into wlw, does not use any wlw API, and does not open the site in a browser. Every field comes from publicly indexed Google search results - titles, snippets and site labels, with no authentication and no cookies.

### Who the Wer Liefert Was Email Scraper is built for

This is a procurement and industrial sales tool for the German-speaking market, and it assumes you can read the results.

Einkauf and procurement teams use the Wer Liefert Was Email Scraper to build a Lieferanten shortlist before an RFQ round, particularly when nearshoring away from Asian supply. Component and machinery buyers use it the same way.

MRO distributors use it to find alternate sources for drives, fittings, fasteners and industrial consumables. Automation integrators use it to identify sensor, control and Fördertechnik vendors for a line design.

Industrial marketing agencies use it to assemble DACH account-based prospect lists, and trade-show organisers use it to recruit exhibitors. For non-German European coverage, [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) is the better fit.

### Input fields for the Wer Liefert Was Email Scraper

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["hersteller", "lieferant"]` | Search terms - niche, job title, industry |
| `location` | string | `""` | Optional location phrase added to every query |
| `customDomains` | array | `["@gmail.com", "@yahoo.com"]` | Only emails on these domains are kept; the `@` is optional |
| `maxEmails` | integer 1-10000 | `20` | Stop after this many unique emails |
| `countryCode` | string | `""` | Two-letter country for the search proxy (US, GB, DE...) |
| `expandQueries` | boolean | `true` | Search each keyword x domain pair in several phrasings |
| `queryModifiers` | array | `["email", "kontakt", "vertrieb", "grosshandel", "anfrage"]` | Extra words combined with each keyword when expansion is on |
| `maxPagesPerQuery` | integer 1-50 | `30` | Page cap per query |
| `maxConcurrency` | integer 1-20 | `5` | Parallel queries |

#### How the Wer Liefert Was Email Scraper input fields actually behave

`keywords` defaults to `hersteller` and `lieferant` for a reason. These are the German words a buyer types on wlw, and English substitutes reach a fraction of the same pages.

`countryCode` should almost always be set. `DE`, `AT` or `CH` runs the search proxy from the right region, and leaving it blank is the most common reason a Wer Liefert Was Email Scraper run underdelivers.

`customDomains` is the hard constraint. The two webmail defaults are American, and German suppliers use `@web.de`, `@gmx.de`, `@gmx.net`, `@t-online.de` and corporate domains instead.

`queryModifiers` already ships in German. `kontakt`, `vertrieb`, `grosshandel` and `anfrage` fire only when `expandQueries` is `true`, and they are tuned to the wording of German company pages.

`location` takes German place names. `"Bayern"`, `"Nordrhein-Westfalen"`, `"Baden-Württemberg"`, `"Wien"` and `"Zürich"` all work, and regional targeting is genuinely productive in the DACH industrial belt.

### JSON input example for the Wer Liefert Was Email Scraper

```json
{
  "keywords": ["hersteller", "lieferant", "Zerspanung", "Blechbearbeitung"],
  "location": "Bayern",
  "customDomains": ["@web.de", "@gmx.de", "@t-online.de", "@gmail.com"],
  "maxEmails": 150,
  "countryCode": "DE",
  "expandQueries": true,
  "queryModifiers": ["email", "kontakt", "vertrieb", "grosshandel", "anfrage"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

That is a realistic DACH sourcing configuration for the Wer Liefert Was Email Scraper: the two German defaults plus two specific process terms, a Bundesland location, `DE` as the country code and German webmail domains first.

Run the same input three times with `countryCode` set to `DE`, `AT` and then `CH` to cover all three wlw markets properly. Austrian and Swiss results differ enough to be worth the extra runs.

### Output fields of the Wer Liefert Was Email Scraper

Every dataset item carries all fourteen fields.

| Field | Meaning |
|---|---|
| `network` | Platform name |
| `keyword` | The keyword that produced the lead |
| `query` | The exact Google query used |
| `title` | Raw result title |
| `accountName` | Account label Google prints |
| `fullName` | Display name parsed from a profile-style title; empty for non-profile results |
| `username` | URL-safe handle when the platform exposes one; otherwise `null` |
| `profileUrl` | Canonical account URL when a handle is known; otherwise empty |
| `url` | Direct platform link when exposed, else the profile URL |
| `description` | Bio or snippet text, cleaned of labels and counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain, for example `@web.de` |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email - verify before sending |
| `foundAt` | ISO 8601 UTC timestamp |

On wlw the gap between identity and URL is unusually wide. The live run resolved a company name on 8 of 10 rows but a `profileUrl` on only 2, so expect many rows with `accountName` filled and `username: null`.

When a handle is exposed the Wer Liefert Was Email Scraper builds the canonical link as `https://www.wlw.de/de/firma/{username}`. Always check `possiblyTruncated` before you send, since Google's snippet ellipsis may have clipped the address.

### JSON output example from the Wer Liefert Was Email Scraper

```json
[
  {
    "network": "wlw",
    "keyword": "Zerspanung",
    "query": "site:wlw.de Zerspanung kontakt \"@web.de\" \"Bayern\"",
    "title": "Müller Präzisionstechnik GmbH - Zerspanung - wlw",
    "accountName": "Müller Präzisionstechnik GmbH",
    "fullName": "Müller Präzisionstechnik GmbH",
    "username": "mueller-praezisionstechnik-gmbh",
    "profileUrl": "https://www.wlw.de/de/firma/mueller-praezisionstechnik-gmbh",
    "url": "https://www.wlw.de/de/firma/mueller-praezisionstechnik-gmbh",
    "description": "CNC-Zerspanung und Drehteile für den Maschinenbau. Vertrieb und Anfragen per E-Mail.",
    "email": "vertrieb.muellerpraezision@web.de",
    "emailDomain": "@web.de",
    "possiblyTruncated": false,
    "foundAt": "2026-08-29T15:08:12Z"
  },
  {
    "network": "wlw",
    "keyword": "lieferant",
    "query": "site:wlw.de lieferant grosshandel \"@gmx.de\" \"Bayern\"",
    "title": "Lieferanten für Blechbearbeitung in Bayern - wlw",
    "accountName": "Nordbayern Blechtechnik GmbH",
    "fullName": "",
    "username": null,
    "profileUrl": "",
    "url": "https://www.wlw.de/de/suche/blechbearbeitung-bayern",
    "description": "Kategorieseite für Blechbearbeitung mit Anbieterliste. Kontaktadresse im Anbietereintrag genannt.",
    "email": "anfrage.nordbayernblech@gmx.de",
    "emailDomain": "@gmx.de",
    "possiblyTruncated": true,
    "foundAt": "2026-08-29T15:11:47Z"
  }
]
```

The first row is the good case and the second is the common one. Plan your import around rows that give you a company name and an email but no clickable wlw profile.

### Use cases for the Wer Liefert Was Email Scraper

| Audience | What they do with the data |
|---|---|
| Einkauf and procurement teams | Build a German Lieferanten shortlist before an RFQ cycle |
| MRO distributors | Find alternate sources for drives, fittings and industrial consumables |
| Component and machinery buyers | Shortlist Mittelstand manufacturers for a specific process |
| Automation integrators | Identify sensor, control and Fördertechnik vendors for a line design |
| Nearshoring and reshoring teams | Map DACH alternatives to distant supply |
| Industrial marketing agencies | Assemble a German-language ABM prospect list |
| Trade-show and Messe organisers | Recruit exhibitors from named industrial categories |
| Supply-chain researchers | Study which German industrial segments publish contact routes |

Each of these is outbound work aimed at a company inbox that a supplier published in order to receive Anfragen. That is the honest boundary of what the Wer Liefert Was Email Scraper does.

### Targeting tips for the Wer Liefert Was Email Scraper

Everything below is aimed at the two weak numbers in the live run: profile URLs and emails.

Fix `customDomains` first. Adding `@web.de`, `@gmx.de`, `@gmx.net` and `@t-online.de` addresses the single biggest limitation on Wer Liefert Was Email Scraper yield, because those are the mailboxes German suppliers actually publish.

Rotate `countryCode` across `DE`, `AT` and `CH`. One run per market reaches wlw.de, wlw.at and wlw.ch pages that a single blank-country run will not.

Use compound German process nouns in `keywords`. `Kunststoffspritzguss`, `Oberflächenbeschichtung`, `Verpackungsmaschinen` and `Schweißtechnik` are how German suppliers describe themselves.

Accept that many rows will lack a profile URL and use `accountName` plus `description` for enrichment. For overlapping German industrial coverage with better handle resolution, run [IndustryStock Email Scraper](https://apify.com/neuro-scraper/industrystock-email-scraper) and [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) as well.

### Limitations of the Wer Liefert Was Email Scraper

Read all of these before your first run.

- Yield is thin on default settings. The live run produced 10 blocks, 8 identified companies, only 2 profile URLs and only 1 unique email.
- The two default `customDomains` are American webmail and are a poor fit for German suppliers. Change them before judging the Actor.
- The Wer Liefert Was Email Scraper only finds addresses that are **publicly visible in Google's index**. Anything Google has not indexed is invisible to it.
- Google caps a single query at roughly 300 results, which is exactly why query expansion exists and defaults to on.
- `possiblyTruncated: true` means Google's snippet ellipsis may have cut the email short. Verify it before sending.
- It requires the Apify GOOGLE_SERP proxy and cannot run without Apify proxy credentials.
- Free Apify plans are capped at 100 emails per run; paid plans are uncapped.
- `username` and `profileUrl` are only populated when Google exposes a handle. On wlw it frequently does not, so expect many rows with `username: null` and an empty `profileUrl`. That is a Google limitation, not a bug.
- Results vary with keywords, domains and location. No volume is guaranteed by the Wer Liefert Was Email Scraper or by any Actor in this family.

### Responsible use of Wer Liefert Was Email Scraper output

The addresses the Wer Liefert Was Email Scraper surfaces are business contacts that suppliers published on a B2B marketplace so that buyers could send them Anfragen. Treat them accordingly.

Every company here sits inside the EU or Switzerland, so GDPR is directly relevant and German law on unsolicited commercial email is notably strict. Record your lawful basis, identify yourself in the first line, and make the relevance obvious.

Honour opt-outs immediately and permanently, keep your list current, and write in German where the recipient does. None of this is legal advice, and it does not replace your own compliance review.

### FAQ about the Wer Liefert Was Email Scraper

#### How many results should I expect from the Wer Liefert Was Email Scraper?

A live Google run returned 10 result blocks, 8 identified companies, 2 profile URLs and 1 unique email on default settings. That email figure is low because the default domain filter is American webmail and German suppliers do not use it. Swap in German domains, set `countryCode`, and the picture improves, but no specific number is guaranteed.

#### Do I have to use German keywords?

Effectively yes. wlw is a German-language marketplace, its default keywords are `hersteller` and `lieferant`, and English terms reach only a fraction of the index. This is the most language-dependent Actor in the family.

#### What should I set countryCode to?

`DE` for Germany, `AT` for Austria, `CH` for Switzerland. Running all three in sequence is the correct way to cover the wlw network, since the Actor searches wlw.de, wlw.at and wlw.ch.

#### Why do so few rows have a profile URL?

Because many wlw results are category and search pages rather than company profiles, so there is no `/firma/` slug for the Actor to derive a handle from. Rows still carry `accountName` and the email.

#### What is the fastest way to increase Wer Liefert Was Email Scraper yield?

Replace the default `customDomains` with `@web.de`, `@gmx.de`, `@gmx.net` and `@t-online.de`. Nothing else comes close.

#### Does the Wer Liefert Was Email Scraper log into wlw or use its API?

No. It builds Google `site:` queries against the wlw domains, fetches result pages through the Apify GOOGLE_SERP proxy and parses them. There is no browser, no login, no API and no cookies.

#### Why does the Wer Liefert Was Email Scraper turn `expandQueries` on by default?

Google caps one query at roughly 300 results. Expansion runs base, quoted and `intitle:` variants plus one per German modifier, reaching pages a single query cannot. Base queries always run first.

#### Can I run the Wer Liefert Was Email Scraper on a free Apify plan?

Yes. Free plans are capped at 100 emails per run, and paid plans are uncapped. Given the observed yield, that cap rarely binds here.

#### What happens if a run is interrupted?

State is saved in the key-value store, keyed by a hash of your input, and written on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events. Restarting with the same input resumes rather than starting over.

#### Which export formats are available?

Anything the Apify dataset supports - CSV, JSON, Excel and XML - plus the API for pushing rows straight into a CRM or Einkauf system.

#### Which other Actor pairs best with the Wer Liefert Was Email Scraper?

[IndustryStock Email Scraper](https://apify.com/neuro-scraper/industrystock-email-scraper) for a second German-language industrial index with cleaner handles, and [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) for pan-European equipment coverage.

#### Is the Wer Liefert Was Email Scraper affiliated with wlw or Visable?

No. It is an independent Actor that reads publicly indexed Google results and has no relationship with, or endorsement from, the platform or its operator.

### Related Actors

More email scrapers from the same B2B, Suppliers & Manufacturers family, built on the same Google SERP pipeline.

| Actor | What it collects |
|---|---|
| [wlw Email and Phone Number Scraper](https://apify.com/leads-scraper/wer-liefert-was-email-and-phone-number-scraper) | Emails and phone numbers from wlw |
| [wlw Phone Number Scraper](https://apify.com/leads-scraper/wer-liefert-was-phone-number-scraper) | Public phone numbers from wlw |
| [Alibaba Email Scraper](https://apify.com/leads-scraper/alibaba-email-scraper) | Public contact emails from Alibaba |
| [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) | Public contact emails from DirectIndustry |
| [DIYTrade Email Scraper](https://apify.com/neuro-scraper/diytrade-email-scraper) | Public contact emails from DIYTrade |
| [ECPlaza Email Scraper](https://apify.com/neuro-scraper/ecplaza-email-scraper) | Public contact emails from ECPlaza |
| [Fibre2Fashion Email Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-scraper) | Public contact emails from Fibre2Fashion |
| [Global Sources Email Scraper](https://apify.com/leads-scraper/global-sources-email-scraper) | Public contact emails from Global Sources |
| [GlobalSpec Email Scraper](https://apify.com/leads-scraper/globalspec-email-scraper) | Public contact emails from GlobalSpec |
| [HKTDC Sourcing Email Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-email-scraper) | Public contact emails from HKTDC Sourcing |
| [IndiaMART Email Scraper](https://apify.com/leads-scraper/indiamart-email-scraper) | Public contact emails from IndiaMART |
| [IndustryStock Email Scraper](https://apify.com/neuro-scraper/industrystock-email-scraper) | Public contact emails from IndustryStock |
| [IQS Directory Email Scraper](https://apify.com/neuro-scraper/iqs-directory-email-scraper) | Public contact emails from IQS Directory |
| [Made-in-China Email Scraper](https://apify.com/leads-scraper/made-in-china-email-scraper) | Public contact emails from Made-in-China |
| [Taiwantrade Email Scraper](https://apify.com/leads-scraper/taiwantrade-email-scraper) | Public contact emails from Taiwantrade |
| [Textile Infomedia Email Scraper](https://apify.com/leads-scraper/textile-infomedia-email-scraper) | Public contact emails from Textile Infomedia |
| [Textile World Email Scraper](https://apify.com/leads-scraper/textile-world-email-scraper) | Public contact emails from Textile World |
| [Thomas Scientific Email Scraper](https://apify.com/leads-scraper/thomas-scientific-email-scraper) | Public contact emails from Thomas Scientific |
| [TradeKey Email Scraper](https://apify.com/neuro-scraper/tradekey-email-scraper) | Public contact emails from TradeKey |
| [Tradewheel Email Scraper](https://apify.com/leads-scraper/tradewheel-email-scraper) | Public contact emails from Tradewheel |
| [DirectIndustry Email and Phone Number Scraper](https://apify.com/neuro-scraper/directindustry-email-and-phone-number-scraper) | Emails and phone numbers from DirectIndustry |
| [DIYTrade Email and Phone Number Scraper](https://apify.com/neuro-scraper/diytrade-email-and-phone-number-scraper) | Emails and phone numbers from DIYTrade |
| [ECPlaza Email and Phone Number Scraper](https://apify.com/neuro-scraper/ecplaza-email-and-phone-number-scraper) | Emails and phone numbers from ECPlaza |
| [Fibre2Fashion Email and Phone Number Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-and-phone-number-scraper) | Emails and phone numbers from Fibre2Fashion |
| [Global Sources Email and Phone Number Scraper](https://apify.com/leads-scraper/global-sources-email-and-phone-number-scraper) | Emails and phone numbers from Global Sources |
| [GlobalSpec Email and Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-email-and-phone-number-scraper) | Emails and phone numbers from GlobalSpec |
| [HKTDC Sourcing Email and Phone Number Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-email-and-phone-number-scraper) | Emails and phone numbers from HKTDC Sourcing |
| [IndiaMART Email and Phone Number Scraper](https://apify.com/leads-scraper/indiamart-email-and-phone-number-scraper) | Emails and phone numbers from IndiaMART |
| [IndustryStock Email and Phone Number Scraper](https://apify.com/neuro-scraper/industrystock-email-and-phone-number-scraper) | Emails and phone numbers from IndustryStock |
| [IQS Directory Email and Phone Number Scraper](https://apify.com/neuro-scraper/iqs-directory-email-and-phone-number-scraper) | Emails and phone numbers from IQS Directory |
| [Made-in-China Email and Phone Number Scraper](https://apify.com/leads-scraper/made-in-china-email-and-phone-number-scraper) | Emails and phone numbers from Made-in-China |
| [TradeKey Email and Phone Number Scraper](https://apify.com/neuro-scraper/tradekey-email-and-phone-number-scraper) | Emails and phone numbers from TradeKey |
| [DirectIndustry Phone Number Scraper](https://apify.com/neuro-scraper/directindustry-phone-number-scraper) | Public phone numbers from DirectIndustry |
| [DIYTrade Phone Number Scraper](https://apify.com/neuro-scraper/diytrade-phone-number-scraper) | Public phone numbers from DIYTrade |
| [ECPlaza Phone Number Scraper](https://apify.com/neuro-scraper/ecplaza-phone-number-scraper) | Public phone numbers from ECPlaza |
| [Fibre2Fashion Phone Number Scraper](https://apify.com/neuro-scraper/fibre2fashion-phone-number-scraper) | Public phone numbers from Fibre2Fashion |
| [Global Sources Phone Number Scraper](https://apify.com/leads-scraper/global-sources-phone-number-scraper) | Public phone numbers from Global Sources |
| [GlobalSpec Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-phone-number-scraper) | Public phone numbers from GlobalSpec |
| [HKTDC Sourcing Phone Number Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-phone-number-scraper) | Public phone numbers from HKTDC Sourcing |
| [IndiaMART Phone Number Scraper](https://apify.com/leads-scraper/indiamart-phone-number-scraper) | Public phone numbers from IndiaMART |
| [IndustryStock Phone Number Scraper](https://apify.com/neuro-scraper/industrystock-phone-number-scraper) | Public phone numbers from IndustryStock |
| [IQS Directory Phone Number Scraper](https://apify.com/neuro-scraper/iqs-directory-phone-number-scraper) | Public phone numbers from IQS Directory |

### Leave a review

If the Wer Liefert Was Email Scraper saved you time, please leave a star rating and a short
review on the Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to
build next.

If something did not work, email <neurodata.apify@gmail.com>
instead - bugs get fixed faster than they get complained about.

# Actor input Schema

## `keywords` (type: `array`):

Search terms describing the wlw accounts you want (niche, job title, industry).

## `location` (type: `string`):

Optional location phrase added to every query (e.g. "New York").

## `customDomains` (type: `array`):

Only emails ending with one of these domains are collected. With or without the leading @. Each domain is searched separately, so more domains means more results but a longer run - remove some for a faster, narrower search, or add your own (e.g. @company.com).

## `maxEmails` (type: `integer`):

Stop once this many unique emails have been collected.

## `countryCode` (type: `string`):

Two-letter country code for the search proxy (e.g. US, GB, DE). Empty for any.

## `expandQueries` (type: `boolean`):

Search each keyword x domain pair with several phrasings. Recommended - Google caps a single query at ~300 results.

## `queryModifiers` (type: `array`):

Extra words combined with each keyword when Expand queries is on. Tuned for wlw.

## `maxPagesPerQuery` (type: `integer`):

Google rarely returns more than ~30 pages for one query.

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

How many queries run in parallel.

## Actor input object example

```json
{
  "keywords": [
    "hersteller",
    "lieferant"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "kontakt",
    "vertrieb",
    "grosshandel",
    "anfrage"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `results` (type: `string`):

Records produced by Wer Liefert Was Email Scraper, stored in the run's default dataset.

# 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 = {
    "keywords": [
        "hersteller",
        "lieferant"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "kontakt",
        "vertrieb",
        "grosshandel",
        "anfrage"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leads-scraper/wer-liefert-was-email-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 = {
    "keywords": [
        "hersteller",
        "lieferant",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "kontakt",
        "vertrieb",
        "grosshandel",
        "anfrage",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("leads-scraper/wer-liefert-was-email-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 '{
  "keywords": [
    "hersteller",
    "lieferant"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "kontakt",
    "vertrieb",
    "grosshandel",
    "anfrage"
  ]
}' |
apify call leads-scraper/wer-liefert-was-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leads-scraper/wer-liefert-was-email-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/hbD4WfLz8Z7cANK2E/builds/oUIZxudy5EQ6O3Dkg/openapi.json
