Skip to content

September 22, 2026 · 11 min read

Herold.at Scraper: $5.00 per 1,000 results (2026)

By Crawlerbros Engineering Team

Scrape Herold.at directory listings and business profiles across Austria with 8 input controls and 1 required field. The actor extracts names, addresses, ratings, phone numbers, and websites from search results or direct profile URLs without requiring login credentials or API keys. It handles Austrian character sets correctly and omits empty fields from the final output. This tool is built for developers and data engineers performing lead generation or market research, and it is not intended for casual users without JSON processing capabilities.

What does a Herold.at Scraper run cost?

Each result costs $0.005 on the free tier, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.01 per GB of Actor memory.

Apify plan Per result Per 1,000 results
FREE $0.005 $5.00
BRONZE $0.00433 $4.33
SILVER $0.00367 $3.67
GOLD $0.003 $3.00
PLATINUM $0.003 $3.00
DIAMOND $0.003 $3.00

Pricing starts at $0.005 per result, equaling $5.00 per 1,000 results on the free tier. Enabling fetchDetails significantly increases execution time and resource consumption because it forces an extra request for every individual business profile page.

How do you run Herold.at Scraper from the API?

The schema marks 1 of its 8 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.

Call the synchronous endpoint to start a run and receive dataset items in one request:

curl -X POST "https://api.apify.com/v2/acts/crawlerbros~herold-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"search","category":"installateur","location":"Wien","fetchDetails":false,"businessUrls":[],"maxItems":50}'

The same run from Python, using the official client:

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run_input = {
  "mode": "search",
  "category": "installateur",
  "location": "Wien",
  "fetchDetails": False,
  "businessUrls": [],
  "maxItems": 50
}

run = client.actor("crawlerbros~herold-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

And from Node.js:

import { ApifyClient } from 'apify-client'

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })

const input = {
  "mode": "search",
  "category": "installateur",
  "location": "Wien",
  "fetchDetails": false,
  "businessUrls": [],
  "maxItems": 50
}

const run = await client.actor('crawlerbros~herold-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)

That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.

Which Herold.at Scraper inputs matter, and which can you skip?

The input schema exposes 8 controls, with mode being the single required parameter. Most first-time users should rely on the curated category and location dropdowns while leaving custom text fields empty until testing baseline behavior.

  • mode (string): What to fetch: search a category + region/city, or fetch full business profiles from direct Herold.at URLs. Default: "search".
  • category (string): Business category to search for. Pick a common category from the list, or choose 'Custom category' and type your own in the field below (mode=search). Default: "installateur".
  • customCategory (string): Free-text Branche/category not in the curated list above, e.g. 'Tischlerei' or 'Kfz-Werkstatt' (mode=search). Takes priority over 'Category' when set. Best-effort URL match -- if Herold has no page for the exact term, 0 results are returned (no error).
  • location (string): Austrian federal state (Bundesland) or a city with its own Herold.at page, e.g. 'Wien', 'Salzburg', 'Graz-Stadt'. Herold.at groups most results at the state level, but state capitals and select cities (suffixed '-Stadt') have their own dedicated, narrower listing page (mode=search). Default: "Wien".
  • customLocation (string): Free-text Austrian region, city, or postal code not in the curated list above (mode=search). Takes priority over 'Region / city' when set. Best-effort URL match -- if Herold has no dedicated page for the exact term, 0 results are returned (no error).
  • fetchDetails (boolean): For each search result, also visit its business profile page to collect opening hours per weekday, email, website, Facebook page, and full address details. Slower (mode=search). Default: false.
  • businessUrls (array): Direct Herold.at business profile URLs to fetch, e.g. https://www.herold.at/gelbe-seiten/wien/<id>/<slug>/. Use the 'sourceUrl' field from search results. Default: [].
  • maxItems (integer): Hard cap on the number of business records to return. Default: 50.

Fixed-choice controls: mode accepts search, detail; category accepts custom, installateur, elektriker, restaurant, friseur, zahnarzt; location accepts custom, Wien, Niederösterreich, Oberösterreich, Steiermark, Tirol.

Change a single control per run and diff the result against the last sample, sorting records into accepted, uncertain, and excluded. A control that increases volume without improving decision quality still bills at $0.005 per result.

What does Herold.at Scraper return?

The returned records provide structured business data including identifiers, physical addresses, review counts, and direct website links. They deliberately omit empty values and require profile fetching to surface detailed opening hours or recent reviews.

The Actor does not publish a per-field output list, so treat the first run as the specification: collect a small sample and record which fields are present before anything downstream depends on them.

How do you build the workflow end to end?

Open Herold.at Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

  1. Set the mode control to search to discover listings across categories.
  2. Choose a curated option from the category control or pick custom to enter a specific Branche.
  3. Select an Austrian region or city in the location control, or specify a customLocation.
  4. Toggle fetchDetails to true if your downstream analysis requires opening hours, GPS coordinates, or review arrays.
  5. Adjust maxItems to restrict the total number of records returned during initial test runs.
  6. Execute the actor and inspect the resulting dataset for populated email and website fields before scaling your target volume.

How do you apply it? Three worked playbooks

These are Herold.at Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

Use case 1: Local lead generation

Outcome: build a prospect list of Austrian businesses by trade and region for B2B outreach

Configure: Set mode to search, category to installateur, location to Wien, and maxItems to 50.

Working method: Execute a baseline search in Vienna to measure result density and verify that contact fields populate correctly before expanding your target geography.

Deliverable: A structured dataset of plumbing businesses containing names, addresses, phone numbers, and website links across Vienna.

Stop condition: Zero results returned due to an invalid category string or an unsupported location query.

Use case 2: Market research

Outcome: measure business density and average ratings for a category across Austria

Configure: Set mode to search, category to zahnarzt, location to Salzburg, fetchDetails to true, and maxItems to 30.

Working method: Run the query with profile enrichment enabled to capture complete review arrays and operating hours for regional market comparison.

Deliverable: An enriched dataset of dentist profiles complete with ratings, review counts, and weekly opening schedules.

Stop condition: Extended execution timeouts caused by fetching individual profile pages for every matching listing.

Use case 3: Directory aggregation

Outcome: feed structured Austrian business data into your own local-search product

Configure: Set mode to search, category to elektriker, location to Kärnten, and maxItems to 100.

Working method: Aggregate statewide business listings by scanning the broad regional directory pages across Carinthia.

Deliverable: A comprehensive directory dataset covering electrical contractors across multiple towns within the state.

Stop condition: Repeated empty records or truncation caused by exceeding the maximum item limit.

What breaks, and how do you design around it?

  • Test a small, representative input against your acceptance criteria before increasing scope.

When targeting locations not present in the curated list, use customLocation which gracefully returns zero results rather than throwing an error if Herold has no dedicated page. Respect rate limits and control execution costs by keeping maxItems low during initial test cycles.

When should you not use Herold.at Scraper?

Do not use this Actor if you require real-time webhook updates for business modifications, as directory listings on Herold.at are static snapshots. If you only need a handful of known businesses, querying this scraper is inefficient compared to fetching their official websites directly or utilizing a dedicated company data enrichment API. Avoid using this actor for nationwide bulk extractions without strict item limits, as scraping entire statewide directories can incur unexpected compute costs and run times. For simple tasks where manual lookups suffice, writing custom automation code is often faster than configuring an Apify actor.

What should you check before trusting the output?

  • Verify that every returned record contains a valid businessId and name string.
  • Confirm that the businessAddress fields such as zipCode and city match the expected Austrian region.
  • Check that the email field is either a properly formatted string or cleanly omitted when missing.
  • Ensure that openingHours objects are fully populated when fetchDetails is enabled.
  • Stop any scheduled run if the error count exceeds zero or if returned records display malformed character encodings for German umlauts.

None of this proves a record is correct. It gives a scheduled Herold.at Scraper run defined points where it should stop instead of quietly passing bad data downstream.

Frequently asked questions

What is the cost per result on the free tier?

Each result costs $0.005 on the free tier, which scales to $5.00 per 1,000 results. Higher volume tiers reduce the per-result expense for automated pipelines.

How many controls are in the published input schema?

The published input schema exposes 8 controls in total, of which exactly 1 is required to execute a run.

Why do some business records lack email addresses or websites?

Herold.at only displays email addresses and website links if the listed business provided them on their profile. The actor omits empty fields rather than returning null values.

Can I search by specific postal codes instead of regions?

You can attempt postal code searches using the customLocation field, but results depend on Herold.at directory structure. Using federal states or curated cities is more reliable.

What happens if I enter a category that does not exist?

If Herold.at has no matching page for a custom category string, the actor returns zero results without generating a runtime error.

Where to go next

Start with the Herold.at Scraper Actor page for the current input schema, pricing tier, and run history.

If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

Readers running Herold.at Scraper commonly pair it with:

Related guides:

Resources

  • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-22.

  • Actor last updated by its maintainers on 2026-07-16.

  • Run outcome figures cover the 30 day public window ending 2026-09-22.

  • Herold.at Scraper on Apify

● Featured actors

Herold.at Scraper

Scrape Herold.at - Austria's leading business directory (Gelbe Seiten). Search by category and Bundesland/city, or fetch full business profiles with opening hours, ratings, phone, email, and website.

Run on Apify ↗