September 22, 2026 · 11 min read
Herold.at Scraper: $5.00 per 1,000 results (2026)
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.
- Set the mode control to search to discover listings across categories.
- Choose a curated option from the category control or pick custom to enter a specific Branche.
- Select an Austrian region or city in the location control, or specify a customLocation.
- Toggle fetchDetails to true if your downstream analysis requires opening hours, GPS coordinates, or review arrays.
- Adjust maxItems to restrict the total number of records returned during initial test runs.
- 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:
- Contact and email scrapers covers 73 Actors in this family.
- Profile scrapers covers 115 Actors in this family.
- Search results scrapers covers 11 Actors in this family.
Readers running Herold.at Scraper commonly pair it with:
- Australia ABN Business Register Scraper Search the Australian Business Register (ABN Lookup) by business name, ABN, or ACN.
- 2GIS Places Scraper Search 2GIS business directory across 11 country domains (RU, KZ, UAE, UZ, BY, AM, AZ, GE, TJ, KG, .com).
- OLX Global Scraper Scrape OLX classified-ad listings across 24 countries (Poland, Ukraine, Brazil, India, Pakistan, Indonesia, Argentina, Türkiye, Portugal, ...).
- Yandex Maps Scraper Scrape business listings, reviews, and place details from Yandex Maps.
- Meetup + Lu.ma Events Scraper Scrape events from Meetup.com and Lu.ma, title, date, venue, organizer, attendee count, photo, RSVP status, and discovery feeds (search, by group, by calendar, nearby).
- Contact Info Scraper Pro Crawl any website and extract emails, phones, and social media profiles.
- Psychology Today Scraper | Therapist & Psychiatrist Leads Scrape Psychology Today's therapist, psychiatrist, group practice, and treatment-rehab directories by US state.
- Thumbtack Local Services Scraper Scrape Thumbtack the local services marketplace with 300,000+ pros.
Related guides:
- Vivian Health Jobs Scraper: Build 3 Robust Healthcare Data Playbooks
- United Real Estate Homes for Sale Scraper: 3 Practical Use Cases
- Uganda Business Directory Scraper: 3 Operational Workflows
- Tally (Cactus) DAO Governance Scraper: $5.00 per 1,000 results (2026)
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.
● 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 ↗