# Herold Scraper: Austrian Business Phones & Emails (`themineworks/herold-at-business-email-scraper`) Actor

Scrape Herold.at (Herold Gelbe Seiten) by trade and place: business name, phone, address, website, rating and hours. Turn on emails to find each business's address from the listing or its Impressum, charged only when found. Pay per business.

- **URL**: https://apify.com/themineworks/herold-at-business-email-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Lead generation, Business, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 business listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Herold Scraper: Austrian Business Phones & Emails

[![20 Vienna plumbers, 20 emails, 9 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/herold-at-business-email-scraper-hero.png)](https://console.apify.com/actors/3o5yi8V0A6b9z2nEg/input)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder), with over 140,000 runs across 170+ public actors.

Type a trade and an Austrian place, for example `Installateur` in `Wien`, and get one row per business that Herold.at (Herold Gelbe Seiten) lists: name, phone in international format, address, coordinates, Bezirk, website, rating, opening hours and Herold's trade categories. Turn on **Find emails** and the actor adds the email address the business published on Herold, or else one read from its own website. Open each business page and you also get the Firmenbuch number, founding year and employee band where the business published them.

### Why choose this actor?

- **The email is usually on Herold already, and charged only when delivered.** Herold prints phone, email and website on its own results page, so in our proof run (Installateur in Wien, 28 Sep 2026) **20 of 20 businesses came back with an email** without visiting a single company website. Two branches sharing one inbox were charged once, so the run billed 19 emails.
- **Company register data for B2B matching.** With business pages on, our 1 Oct 2026 run of 30 tax advisers in Graz returned the Firmenbuch number (`FN 12235 v` style) for 6, the founding year for 13 and Herold's employee band for 4, at no extra charge.
- **Herold's fixed trade list, matched for you.** Herold answers "not found" to a trade word it does not know, so the actor matches your query against Herold's own 1,395 categories and a few everyday aliases (`maler`, `tischler`, `klempner`, `friseur`). No Herold account, cookies or API key, and plain fast requests: the proof run took 9 seconds.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/3o5yi8V0A6b9z2nEg/input)

**Part of The Mine Works Leads and business directories family:** [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder), [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup), [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads), [JustDial Scraper](https://apify.com/themineworks/justdial-business), [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search), [IndiaMART Scraper](https://apify.com/themineworks/indiamart-suppliers).

### Try it in one minute

Paste this input into the JSON tab and press Start. It returns the first 10 plumbing and heating firms Herold lists for Vienna, without emails, in a few seconds:

```json
{
  "queries": ["Installateur"],
  "locations": ["Wien"],
  "maxResultsPerSearch": 10
}
```

You can say what you want in two ways, and mix them in one run:

- **Queries and locations** (`queries`, `locations`): trades as Herold names them, such as `Installateur`, `Elektriker`, `Zahnarzt`, `Rechtsanwalt` or `Steuerberatung`, and a Bundesland (`Wien`, `Tirol`), a Bezirk (`Mödling`, `Graz-Umgebung`), a city district with its Herold name (`Graz-Stadt`, `Linz-Stadt`) or a 4 digit postcode (`1130`). Every query is searched in every location. Leave `locations` empty to search the whole of Austria.
- **Search pages** (`startUrls`): a Herold results page copied from your browser, such as `https://www.herold.at/gelbe-seiten/wien/installateur/`. This is the way to reach a place Herold only knows by its own coded name, such as `F7rcr_graz` for the city of Graz.

API and agent callers can also use other common field names: `query`, `keyword`, `keywords` or `searchTerms` for queries, `location`, `where` or `city` for locations, `urls` for search pages, and `maxResults` or `maxItems` for the limit.

Apify's free plan includes $5 of credit every month, which covers about 2,400 businesses at this actor's Free plan price with emails off ($0.002 a business plus $0.005 a run), or about 150 businesses that each come back with an email, as in the proof run.

#### Copy to your AI assistant

```text
themineworks/herold-at-business-email-scraper on Apify. Searches Herold.at (Herold Gelbe Seiten), the Austrian yellow pages, by trade and Austrian place and returns one row per business with name, phones, address, coordinates, Bezirk, website, rating, opening hours and categories, plus an optional email (usually published on Herold itself) and, with business pages on, the Firmenbuch number, founding year and employee band. Call ApifyClient("TOKEN").actor("themineworks/herold-at-business-email-scraper").call(run_input={"queries": ["Installateur"], "locations": ["Wien"], "maxResultsPerSearch": 50, "includeEmails": true}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: queries (Herold trade names such as "Installateur" or "Steuerberatung") unless startUrls is given. Optional: locations (Bundesland, Bezirk such as "Graz-Stadt", or postcode; empty = all of Austria), startUrls (herold.at search pages), maxResultsPerSearch (integer 1 to 1000, default 30), includeEmails (default false), includeDetails (default false), verifyEmailDomain (default true), allowUnblockerFallback (default true). Rows with _type "info" are run notes, never billed. Full spec: GET https://api.apify.com/v2/acts/themineworks~herold-at-business-email-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
```

### Key features

- **Up to 1,000 businesses per search, up to 300 searches per run.** Herold shows about 30 businesses a page and serves deep result lists: a whole country search for `Installateur` reported 4,267 businesses on 1 Oct 2026, and our build test read page 28 of the 834 Vienna results. Each run takes up to 50 queries times 50 locations, capped at 300 searches.
- **31 fields per business**: listing id and Herold link, name, categories, every phone, the address split into street, postcode, town and Bundesland, coordinates, Bezirk, website, rating and review count, opening hours by day, a verified flag, the Firmenbuch number, founding year and employee band, the email and where it was found, and the search that found the row.
- **Contact data from the results page itself.** Herold prints phone, email and website in each result card, so a run without business pages makes one request per 30 businesses. Business pages are opened only when you ask (`includeDetails`), or with Find emails on for a card that has no email.
- **Emails from two places.** First the address the business published on Herold, then its own website: homepage, then the Impressum, Kontakt and other legal pages it links to, then `/impressum`, `/kontakt` and `/datenschutz`, at most 5 pages and 20 seconds per site. Website addresses are kept only on the business's own domain or an ordinary provider such as gmx.at, aon.at or a1.net. Every address, Herold's own included, goes through a mail server check. Up to 5 addresses per row, best first.
- **`district` on every row**, the Bezirk or numbered Vienna district Herold assigns the business (`Wien 23 (Liesing)`, `Graz (Stadt)`), so you can narrow a wide search afterwards.
- **Plain HTTP at 512 MB**, no browser. Every run writes a summary to the `OUTPUT` record in its key-value store: for each search the status (`ok`, `no_results` or `blocked`), the count Herold reports, pages read and refused, connection attempts, and where the emails came from.

### How to use it

#### Basic: one trade in one Bundesland

```json
{
  "queries": ["Elektriker"],
  "locations": ["Wien"],
  "maxResultsPerSearch": 100
}
```

Herold reported 606 electricians for Vienna on 1 Oct 2026. 100 businesses take 4 pages.

#### Several trades in several places

Every query runs in every location, so this is six searches:

```json
{
  "queries": ["Installateur", "Elektriker", "Dachdecker"],
  "locations": ["Graz-Stadt", "Graz-Umgebung"],
  "maxResultsPerSearch": 200
}
```

A result found by two of the searches, under the same Herold id, is delivered once and charged once. Two searches run at a time.

#### Cold email list for one trade across Austria

```json
{
  "queries": ["Zahnarzt"],
  "locations": ["Wien", "Niederösterreich", "Oberösterreich", "Steiermark", "Tirol"],
  "maxResultsPerSearch": 1000,
  "includeEmails": true
}
```

Herold reported 764 dentists for Vienna alone. Rows with an email carry `email_source` (`directory` or `website`) and `email_source_url`, the page it was read from. Herold's lowest tier entries carry no contact data at all, so the email rate drops towards the end of a long list.

#### Company register numbers for CRM matching

Open each business page to add the Firmenbuch number, founding year and employee band. No extra charge; one more request per business:

```json
{
  "queries": ["Steuerberatung"],
  "locations": ["Graz-Stadt"],
  "maxResultsPerSearch": 30,
  "includeDetails": true
}
```

Our 1 Oct 2026 run of this input took 15 seconds for 30 businesses and 30 business pages. Match `company_register` against the Firmenbuch, or your CRM. Sole traders have no Firmenbuch number, and many businesses publish none of the three.

#### Monthly refresh on a schedule

Save any of the inputs above as a task, then in Apify Console open Schedules, add a schedule (for example the first of every month) and pick the task. Each scheduled run is billed like a manual one, and the schedule itself is free. The actor has no "only new businesses" mode, so compare `listing_id` with your last export to find the newcomers.

#### Read a search you already set up on Herold

```json
{
  "startUrls": [
    { "url": "https://www.herold.at/gelbe-seiten/wien/installateur/" },
    { "url": "https://www.herold.at/gelbe-seiten/installateur/" }
  ],
  "maxResultsPerSearch": 60
}
```

A place search (`/gelbe-seiten/<place>/<trade>/`) and a whole country search (`/gelbe-seiten/<trade>/`) both work, with or without a `seite/N/` page at the end. Each is read from its first page on, with the same limits and charges as a typed search. Business pages (with an id in the path) are not read as searches.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `queries` | array of strings | none (prefilled with `Installateur`) | Trades to search, one per line, as Herold names them. Up to 50. Needed unless you give `startUrls`. |
| `locations` | array of strings | empty (prefilled with `Wien`) | Bundesländer, Bezirke (`Graz-Stadt`, `Mödling`) or 4 digit postcodes, one per line. Every query is searched in every location. Empty searches all of Austria. Up to 50. |
| `startUrls` | array | empty | Herold search result pages, read instead of or as well as the queries. |
| `maxResultsPerSearch` | integer | `30` | Most businesses per query and location, 1 to 1,000. Herold shows about 30 per page. |
| `includeEmails` | boolean | `false` | Add each business's email: the address published on Herold first, then its website. Charged only for rows that come back with one. |
| `includeDetails` | boolean | `false` | Also open each business's own Herold page, for the Firmenbuch number, founding year and employee band. No extra charge, slower. With `includeEmails` on, the page is opened anyway for a card that has no email. |
| `verifyEmailDomain` | boolean | `true` | Keep an email only when its domain can receive mail. Applies to Herold's and website emails alike. |
| `allowUnblockerFallback` | boolean | `true` | When a search page is refused several times over the fast connection, retry it through Apify's unblocking proxy. Included in the price. Turn off to report such pages as refused instead. |

Give at least one query or one search page. A run with neither writes a note row and stops; the $0.005 start fee still applies.

### What data do you get?

One row per business. Fields with no value are left out of the row rather than sent as empty.

**The business**

- `listing_id` (Herold's short id, such as `N1JdH`), `listing_url`, `name`, `categories` (Herold's trades for the business, often several, such as `Installateur`, `Gasgerät`, `Wärmepumpen`), `rating` and `review_count` (when there are reviews), `opening_hours` (one entry per day and time range, such as `Mo 08:00-16:30`), `verified` (`true` when Herold shows the listing as verified)

**Contact**

- `phone` (the first number) and `phones` (all of them), in international format such as `+43 1 8862759`; `website`, with `utm_`, `fbclid`, `gclid` and `mc_` tracking parameters removed

**Address and map**

- `address` (one line), `street`, `postal_code`, `city`, `region` (the Bundesland, such as `Steiermark`), `country` (always `AT`), `latitude`, `longitude`, and `district`, the Bezirk or Vienna district Herold assigns

**Company details** (from the business page, with `includeDetails` on, or when Find emails opened it)

- `company_register` (the Firmenbuch number, such as `FN 12235 v`), `founding_year`, `employees` (Herold's band, such as `6-10`)

**Email** (with `includeEmails` on)

- `email` (the best address), `emails` (up to 5, best first), `email_source` (`directory` or `website`) and `email_source_url` (the Herold page, or the website page it was read from)

**Search context**

- `source_site` (`herold.at`), `search_query`, `search_location`, `scraped_at`

A few things to know about the fields:

- **Not every result is in the place you typed.** Herold blends neighbouring towns into most place searches. On 28 Sep 2026 the Bezirk Bregenz search for Installateur showed no business in Bregenz town itself on page 1, and a Graz city search mixed in businesses from Graz-Umgebung. Each row's address is always the business's real address, and `district` lets you filter to an exact area.
- **Herold's lowest tier entries carry no contact data.** In our Graz run, 10 of 30 tax advisers had no phone, website or email anywhere on Herold, so `phone` is not in every row.
- **One business can appear under two Herold ids**, for example a full entry and a basic one (`Thomas Koch Steuerberatungs GmbH` came back twice in our Graz run). Results are de-duplicated by Herold id, so filter on name and address if that matters to you.

Fill rates in the proof run (20 businesses, emails on): email, phone, website, coordinates, opening hours and `district` 20 each, `verified` 19, rating 17.

#### Stable fields for automations

These fields were present in every one of 52 business rows across the proof run and our two 1 Oct 2026 runs (including basic entries with no contact data), and their names will not change:

| Field | What it holds |
|---|---|
| `listing_id` | Herold's id for the business, the same in every run |
| `listing_url` | Link to the business's page on herold.at |
| `name` | Business name as listed |
| `categories` | Herold's trades for the business, as a list |
| `address` | Street, postcode and town on one line |
| `street` | Street and number |
| `postal_code` | Four digit Austrian postcode |
| `city` | Town as Herold writes it |
| `region` | Bundesland |
| `country` | Always `AT` |
| `latitude` | Latitude in decimal degrees |
| `longitude` | Longitude in decimal degrees |
| `district` | Bezirk or Vienna district Herold assigns |
| `source_site` | Always `herold.at` |
| `scraped_at` | When the row was read (ISO 8601) |

`search_query` is in every row too, and `search_location` whenever the search had a place.

#### Output examples

Real rows, trimmed where marked. From the proof run on 28 Sep 2026 (`Installateur` in `Wien`, emails on), a business with its email, phone and website on Herold's results page (complete row):

```json
{
  "listing_id": "N1JdH",
  "listing_url": "https://www.herold.at/gelbe-seiten/wien/N1JdH/lugar-installateur-gmbh/",
  "name": "Lugar Installateur GmbH",
  "categories": ["Installateur", "Photovoltaik", "Klimaanlagen u -technik", "Badezimmer u Badezimmereinrichtungen", "Gasgerät", "Wärmepumpen", "Sanitäranlagen u -einrichtungen", "Heizungsanlage"],
  "phone": "+43 1 8862759",
  "phones": ["+43 1 8862759"],
  "address": "Triester Straße 346, 1230 Wien",
  "street": "Triester Straße 346",
  "postal_code": "1230",
  "city": "Wien",
  "region": "Wien",
  "country": "AT",
  "latitude": 48.12698,
  "longitude": 16.31962,
  "website": "https://www.lugar.at/wien23/",
  "email": "office@lugar.at",
  "emails": ["office@lugar.at"],
  "email_source": "directory",
  "email_source_url": "https://www.herold.at/gelbe-seiten/wien/N1JdH/lugar-installateur-gmbh/",
  "rating": 4.5,
  "review_count": 28,
  "opening_hours": ["Fr 06:00-22:00", "Mo 06:00-22:00", "Sa 06:00-22:00", "Su 06:00-22:00", "Th 06:00-22:00", "Tu 06:00-22:00", "We 06:00-22:00"],
  "district": "Wien 23 (Liesing)",
  "verified": true,
  "source_site": "herold.at",
  "search_query": "Installateur",
  "search_location": "Wien",
  "scraped_at": "2026-09-28T12:46:47.674Z"
}
```

From the same run, a firm in the 13th district with no rating and no verified mark (trimmed):

```json
{
  "listing_id": "5gqln",
  "name": "Installateur Schild & Schauer",
  "phone": "+43 1 8040576",
  "address": "Veitingergasse 129-135 Stiege 1, 1130 Wien",
  "website": "https://installateur-schild-schauer.at",
  "email": "office@installateur-schild-schauer.at",
  "email_source": "directory",
  "opening_hours": ["Mo 08:00-16:30", "Tu 08:00-16:30", "We 08:00-16:30", "Th 08:00-16:30", "Fr 08:00-12:00"],
  "district": "Wien 13 (Hietzing)"
}
```

From our 1 Oct 2026 run with business pages on (`Steuerberatung` in `Graz-Stadt`), a firm with all three company details (complete row):

```json
{
  "listing_id": "kVGZS",
  "listing_url": "https://www.herold.at/gelbe-seiten/graz/kVGZS/steuerberater-brunner-dochnal-gigerl-gmbh-und-co-kg/",
  "name": "Steuerberater Brunner Dochnal Gigerl GmbH & Co KG",
  "categories": ["Steuerberatung"],
  "phone": "+43 316 825010",
  "phones": ["+43 316 825010"],
  "address": "Dietrichsteinplatz 15/8, 8010 Graz",
  "street": "Dietrichsteinplatz 15/8",
  "postal_code": "8010",
  "city": "Graz",
  "region": "Steiermark",
  "country": "AT",
  "latitude": 47.0665431136136,
  "longitude": 15.4459180263474,
  "website": "https://die-steuerberater.net",
  "email": "brunner.dochnal@inode.at",
  "emails": ["brunner.dochnal@inode.at"],
  "email_source": "directory",
  "email_source_url": "https://www.herold.at/gelbe-seiten/graz/kVGZS/steuerberater-brunner-dochnal-gigerl-gmbh-und-co-kg/",
  "district": "Graz (Stadt)",
  "company_register": "FN 12235 v",
  "founding_year": "1987",
  "employees": "6-10",
  "source_site": "herold.at",
  "search_query": "Steuerberatung",
  "search_location": "Graz-Stadt",
  "scraped_at": "2026-10-01T13:51:19.620Z"
}
```

From the same run, a basic entry with no contact data on Herold, charged as a business only (trimmed):

```json
{
  "listing_id": "m9n6Z",
  "name": "Pailer & Partner Steuerberatung GmbH",
  "categories": ["Steuerberatung"],
  "address": "Morellenfeldgasse 19, 8010 Graz",
  "latitude": 47.0703874476867,
  "longitude": 15.4536197782221,
  "district": "Graz (Stadt)"
}
```

The note row at the end of the run (never charged; filter on `_type` to drop it), trimmed:

```json
{
  "_type": "info",
  "delivered": 20,
  "message": "20 businesses delivered. This row is informational: it is never billed.",
  "scraped_at": "2026-09-28T12:46:49.737Z"
}
```

### Pricing

You pay per business delivered to your dataset, plus a flat start fee per run. An email is a second, separate charge, made only for rows that come back with one. The fast connection and the unblocking proxy fallback are included.

| Event | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) and above |
|---|---|---|---|---|
| Business delivered (`listing-scraped`), per business | $0.002 | $0.0017 | $0.0014 | $0.001 |
| Business delivered, per 1,000 | $2.00 | $1.70 | $1.40 | $1.00 |
| Email found (`email-found`), per email | $0.03 | $0.025 | $0.02 | $0.015 |
| Email found, per 1,000 | $30 | $25 | $20 | $15 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

The start fee is our own `run-start` event: a flat $0.005 once per run, whatever memory you choose. It is not Apify's per GB start fee, and it is charged on every run, including a run that finds nothing. These prices took effect on 28 Sep 2026, and no change is scheduled as of 1 Oct 2026. The Pricing tab always shows the rate for your own plan; if this table and the Pricing tab ever disagree, the Pricing tab is right.

**What a real job costs.** 1,000 businesses with emails off cost $2.00 plus $0.005 on the Free plan, and $1.00 plus $0.005 on Business. Herold publishes many emails, so with emails on plan for most rows to carry one: at the two thirds rate of our Graz run, 1,000 businesses bring about 670 emails, about $20 more on Free and $10 more on Business. Turn emails on only for the searches where you need them; business pages cost nothing extra.

Never charged:

- search pages Herold refused, and the retries through the unblocking proxy;
- a business already delivered by another search in the same run, under the same Herold id;
- business pages and websites that were opened but gave no email (the row is charged as a business only);
- an email address already charged earlier in the same run, such as the shared inbox of two branches (it is still delivered on every row);
- the note row and the `OUTPUT` run summary.

To cap what a run can cost, set a maximum total charge in the run options. The actor stops before a business the budget cannot pay for, and when the budget covers a business but not its email, the row is delivered without the email and the email is not charged.

### FAQ

#### What is Herold.at?

Austria's yellow pages, Herold Gelbe Seiten. It lists tradespeople, shops, restaurants, doctors, lawyers, tax advisers and companies across Austria, and prints phone, email and website for most of them right in its search results.

#### How many businesses can I get?

Up to 1,000 per search and up to 300 searches per run. Herold's own count for each search is in the run summary: 834 Installateure in Vienna on 28 Sep 2026, 4,267 across Austria on 1 Oct 2026. To go past 1,000 for one trade, split the search by Bundesland or Bezirk. A run stops cleanly before its timeout (one hour by default) and keeps everything delivered so far, so raise the timeout in the run options for very large runs.

#### What do I type into Queries?

The trade as Herold names it. Herold's trades are a fixed list of 1,395, and a word outside it returns nothing, so the actor matches your text against that list and a few everyday aliases (`maler` becomes Maler & Lackierer, `tischler` becomes Tischlerei, `klempner` becomes Installateur). Check the count in the run summary: on 1 Oct 2026 `Steuerberater` found only 3 businesses in Vienna while `Steuerberatung` found 1,147, and `Elektriker`, `Zahnarzt`, `Rechtsanwalt`, `Restaurant` and `Friseur` all worked. When in doubt, search herold.at once and copy the trade name it shows.

#### What do I type into Locations?

A Bundesland (`Wien`, `Steiermark`, `Oberösterreich`), a Bezirk (`Mödling`, `Graz-Umgebung`) or a 4 digit postcode (`1130`). For the statutory cities type Herold's district name: `Graz-Stadt`, `Linz-Stadt`, `Innsbruck-Stadt`, `Salzburg-Stadt`, `Klagenfurt-Stadt`. On 1 Oct 2026 the bare names `Graz`, `Linz`, `Innsbruck` and `Klagenfurt` returned nothing, and `Salzburg` searches the whole Bundesland. A place Herold does not know returns no results and costs nothing beyond the start fee; the run summary says so.

#### Why are some businesses outside the place I searched?

Herold itself blends nearby towns into a place search, and the count it reports includes them. The actor delivers what Herold lists, with each business's real address and its `district`, so you can filter afterwards. For Vienna, search `Wien` and narrow by `district`, because a single Vienna district search returns businesses from many districts anyway.

#### How fresh is the data?

Every run reads Herold live; nothing comes from a cache. `scraped_at` on each row says when it was read.

#### Do I need a Herold account, cookies or an API key?

No. The actor reads the public pages any visitor sees, without signing in. There is nothing of yours to connect.

#### Do I need to set up a proxy?

No. The actor uses a fast connection that looks like a normal Chrome browser, through Apify's datacenter proxies, and Herold answered every search and business page that way in our 1 Oct 2026 runs. A refused search page is retried through Apify's unblocking proxy, included in the price; refused pages are listed in the run summary and never charged.

#### Will every business have an email?

Most will. On page 1 of Installateur in Wien all 20 had one, and deep in the same list (around position 820 of 834) 18 of 25 still did. Herold's lowest tier entries carry no contact data, which lowered our Graz tax adviser run to 20 of 30. For a card without an email, the actor tries the business's Herold page and then its website, where Austrian businesses publish an Impressum. It never guesses an address from a name, and you pay nothing extra for a row without one.

#### Which Herold pages does it read?

Search pages (`/gelbe-seiten/<place>/<trade>/` and their `seite/<n>/` pages) and, when needed, business pages. Herold's robots.txt, read again on 1 Oct 2026, allows all of these for every crawler, and the actor sends no query string, which is where the file's other limits apply.

#### Which formats can I export?

JSON, CSV, Excel, XML, HTML table and RSS from the dataset page in Apify Console, or through the Apify API.

#### Can I use it from Claude, ChatGPT or another AI agent?

- Connector URL: `https://mcp.apify.com/?tools=themineworks/herold-at-business-email-scraper`.
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http herold-at-business-email-scraper "https://mcp.apify.com/?tools=themineworks/herold-at-business-email-scraper"`.

#### Is it legal to scrape Herold.at?

The actor collects only publicly visible business listings and never signs in. Business contact details are still personal data when they identify a person, for example a sole trader's name and mobile number, so how you store and use them is your responsibility: follow Herold's terms and the GDPR, and where you send marketing messages also Austria's rules on unsolicited email (section 174 of the Telecommunications Act, TKG 2021) and, for contacts in the US, CAN-SPAM or the CCPA. This is general information, not legal advice. The actor is an independent tool, not affiliated with or endorsed by Herold.

### Integrations

- **Google Sheets**: send each run's dataset to a sheet with Apify's Google Sheets integration.
- **Make, Zapier and n8n**: start runs and receive the businesses in your workflows.
- **Webhooks**: get a call when a run finishes, for example to load new rows into your CRM.
- **API**: start runs and read datasets from any language with the Apify API or the Python and JavaScript clients.
- **MCP clients**: Claude, ChatGPT and other agents through Apify's MCP server.

### More from The Mine Works

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search)
- [IndiaMART Scraper](https://apify.com/themineworks/indiamart-suppliers)
- [Yandex Maps Scraper](https://apify.com/themineworks/yandex-maps-search)
- [Contact Details Scraper](https://apify.com/themineworks/website-contact-finder)
- [US Business Registry](https://apify.com/themineworks/us-state-business-registry)
- [Google Maps Scraper](https://apify.com/themineworks/google-maps-search-scraper)
- [Yellow Pages Scraper](https://apify.com/themineworks/yellowpages-us)
- [Lead Generation MCP](https://apify.com/themineworks/lead-generation-mcp)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency)
- [Google News Scraper](https://apify.com/themineworks/google-news)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper)
- [LandWatch Scraper](https://apify.com/themineworks/landwatch-land-for-sale-scraper)

### Support

Found a problem or need a field? Open an issue on the actor's Issues tab and we will answer there. For a new source or a custom build, email dmineworks@gmail.com.

*Herold Scraper turns a trade and an Austrian place into rows of businesses with phone, address, coordinates, Bezirk and, when you want them, the email Herold publishes and the company's Firmenbuch number.*

# Actor input Schema

## `queries` (type: `array`):

Business types or trades to search, one per line, for example Installateur. Each query is searched in every location below. Needed unless you paste search pages into Start URLs. Up to 50 per run.

## `locations` (type: `array`):

Town, city, region or postcode, one per line, typed the way you would on www.herold.at, for example Wien. Leave empty to search the whole country. Up to 50 per run.

## `startUrls` (type: `array`):

Optional. Paste search result pages from www.herold.at instead of, or as well as, Queries and Locations. Each page is read from its first page on.

## `maxResultsPerSearch` (type: `integer`):

Most businesses to return for each query and location, 1 to 1,000. The directory shows 30 per page, so 100 businesses take about 4 pages.

## `includeEmails` (type: `boolean`):

Off by default. Turn on to look for each business's email address: first the address the directory publishes, then the business's own website (homepage, then its contact and legal pages). You are charged the email price only for rows that come back with an email; a business where none is found costs nothing extra.

## `includeDetails` (type: `boolean`):

Also open each business's own page on the directory for the extra fields it holds, such as coordinates, opening hours, categories and registration numbers. Slower, and no extra charge. With Find emails on, the business page is opened anyway when the search result has no email.

## `verifyEmailDomain` (type: `boolean`):

Only keep an email when its domain can receive mail (it has a mail server). Removes addresses of dead or misspelled domains, so you are not charged for them. Only used when Find emails is on.

## `allowUnblockerFallback` (type: `boolean`):

Search pages are read over a fast connection first. If the site refuses a page several times, try it through Apify's unblocking proxy, which is slower. Included in the price. Turn off to report such pages as refused instead.

## Actor input object example

```json
{
  "queries": [
    "Installateur"
  ],
  "locations": [
    "Wien"
  ],
  "maxResultsPerSearch": 30,
  "includeEmails": false,
  "includeDetails": false,
  "verifyEmailDomain": true,
  "allowUnblockerFallback": true
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

No description

# 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 = {
    "queries": [
        "Installateur"
    ],
    "locations": [
        "Wien"
    ],
    "maxResultsPerSearch": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/herold-at-business-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 = {
    "queries": ["Installateur"],
    "locations": ["Wien"],
    "maxResultsPerSearch": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/herold-at-business-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 '{
  "queries": [
    "Installateur"
  ],
  "locations": [
    "Wien"
  ],
  "maxResultsPerSearch": 30
}' |
apify call themineworks/herold-at-business-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/herold-at-business-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/3o5yi8V0A6b9z2nEg/builds/2eG1Ph56yfO8fvk2a/openapi.json
