Herold.at Scraper avatar
Herold.at Scraper

Pricing

Pay per event

Go to Apify Store
Herold.at Scraper

Herold.at Scraper

Developed by

Frederic

Frederic

Maintained by Community

Pull high-quality Austrian business data at scale. Extract emails, phones, addresses, opening hours, services, reviews, payment methods, and more. Smart extraction, strict validation, and resilient error handling. Export CSV/Excel/JSON/XML. Built for sales, research, and competitor intelligence.

0.0 (0)

Pricing

Pay per event

1

4

2

Last modified

2 days ago

The Herold.at Scraper is a powerful lead generation and business intelligence tool for the Austrian market.
It extracts detailed company information from Herold.at, including emails, phone numbers, addresses, opening hours, services, reviews, and more - all in one streamlined process.
Built with reliability and data quality in mind, this scraper helps you gather the insights you need for sales, research, or competitive analysis - quickly and efficiently.


🚀 Why choose this scraper?

  • Complete Data Coverage - Capture everything from contact info to services, reviews, payment methods, and company details.
  • Smart Dual Extraction - Combines a fast hidden metadata parser with a robust HTML fallback to ensure nothing is missed.
  • Strict Validation - Every output is verified for consistency, ensuring clean and reliable data.
  • Blazing Performance - Benchmarked at over 5,400 records in just 3 minutes, or about 27 records per second.
  • Error-Resilient - Automatically recovers from missing or malformed data, self-reports extraction issues, and continues scraping without interruption.
  • No Limits - Scrape as many pages as needed; the scraper automatically detects when it has reached the end of results.
  • Flexible Output - Export your data as CSV, Excel, JSON, or XML for direct integration into your workflow.
  • Continuously Maintained - Regularly updated to adapt to Herold.at layout or data structure changes.
  • Responsive Support - If you encounter a new field or data change, just share the log - we’ll handle the fix and keep your data flowing.

⚙️ Input Parameters

ParameterTypeDescription
querystringThe search term you’d normally enter on Herold.at. (Required)
locationstringOptional location filter (e.g., “Wien” or “Innsbruck”).
openedNowbooleanFilter for businesses that are currently open.
maxPagesnumberMaximum number of pages to scrape. Optional, if left empty will scrape all available pages

Example:

{
"query": "Restaurant",
"location": "Wien",
"openedNow": true,
"maxPages": 10
}

📦 Output Format

Each dataset entry corresponds to one Herold.at listing and contains a rich, structured data object.
Below is a simplified overview of the key output fields:

FieldDescription
idUnique ID of the listing
urlDirect URL to the company’s profile
nameBusiness name
descriptionShort business description
addressStreet, postal code, region, and country
phone / email / websiteCore contact information
additionalContactsOther contact channels (fax, Facebook, Twitter, YouTube, etc.)
isVerifiedWhether the business is a verified Herold listing
awardsAny awards or recognitions listed
imagesCompany images or logos
reviewsTotal count, detailed reviews, ratings per category, and user feedback
openingHoursDay-by-day opening hours with closed/open status
paymentMethodsAccepted payment types (Visa, MasterCard, PayPal, etc.)
industries / servicesBusiness categories and service lists
locationsAdditional branch locations
companyDetailsFounding year, employee count, register ID, references, parking options
serviceDetailsDetailed breakdown of services with descriptions and prices (if available)

All data is validated for consistency.
If Herold.at changes its structure or adds new data fields, the scraper will continue running and log the change - you’ll be notified automatically.

🧠 Built for Professionals

The Herold.at Scraper is ideal for:

  • Sales & Marketing Teams – Generate high-quality leads and extract verified contact info for outreach campaigns.
  • Business Analysts & Researchers – Collect reliable, structured market data for analysis or reporting.
  • Competitor Intelligence – Track competitors’ services, reviews, and public data at scale.
  • Data & Automation Agencies – Integrate clean Herold.at datasets directly into your existing pipelines or CRMs.
  • Developers – Use the structured output for easy integration into your tools and workflows.

🎯 Target Audience

This scraper is designed for professionals who rely on accurate, up-to-date business information to make better decisions.
Whether you’re growing your client base, researching local markets, or building automation workflows, this scraper gives you the data you need - instantly and reliably.

🛡️ Reliability by Design

If something can’t be extracted, the scraper won’t break - it will self-report the issue and continue processing the rest of the dataset.
Our fallback logic ensures that you never lose data due to a small change on Herold.at.

💬 Found a listing type we don’t handle yet? Simply share the log output - we’ll update the scraper and roll out the fix automatically.

💬 Support

We’re committed to keeping your scraper running smoothly.
If you have questions, encounter changes on Herold.at, or want to request an enhancement, just reach out - we’re here to help!

Data format (in-depth)

Below is a concise TypeScript overview of the per-record result your dataset returns.
Comments explain what each field represents.

// Core address fields (all optional; presence depends on listing)
export type Address = {
country?: string; // e.g., "Österreich"
region?: string; // Federal state or region
postalCode?: string; // e.g., "1010"
street?: string; // e.g., "Kärntner Straße 1"
text?: string; // Formatted full address
};
// Additional contact channels beyond the primary phone/email/website
export type AdditionalContact = {
type: 'fax' | 'phone' | 'email' | 'facebook' | 'youtube' | 'website' | 'twitter';
value: string; // The handle, URL, or number
};
// High‑level review stats and individual reviews
export type ReviewCategory = { title: string; rating: number }; // e.g., Service: 4.7
export type Review = {
rating: number; // 0..5
author: string; // Reviewer display name
datePublished: string; // ISO date
title: string; // Review headline
reviewBody: string; // Review text
categoryRatings: ReviewCategory[]; // Per‑category breakdown
response?: string; // Owner reply (if present)
};
export type Reviews = {
total: number; // Total number of reviews
categories: ReviewCategory[]; // Aggregated per‑category ratings
reviews: Review[]; // Recent/visible reviews
};
// Company meta
export type CompanyDetails = {
foundingYear?: number; // Year the company was founded
companyRegisterId?: string; // Company register / FN number if available
references?: string; // References / clientele notes
additionalInfo?: string; // Free‑text extra info block
employeeCount?: string; // Human‑readable (e.g., "11–50")
parkingOptions?: string; // e.g., "Customer parking in courtyard"
};
// Structured services as shown on profile
export type Service = {
title: string; // Section title (e.g., "Leistungen")
services: Array<{
key: string; // Internal key/slug
text: string; // Human‑readable service name
keywords?: string[]; // Optional related keywords
}>
};
// Branches / additional locations
export type Location = {
name: string; // Location label (e.g., "Filiale Linz")
address: Address; // Address for that branch
};
// Opening hours per weekday
export type DayOpening =
| { open: false }
| { open: true; from: string; to: string }; // Times are strings (e.g., "09:00")
export type OpeningHours = Partial<Record<
'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday',
DayOpening
>>;
// Payment methods are normalized to a fixed set (Visa, Mastercard, PayPal, etc.)
export type PaymentMethod =
| 'invoice' | 'cash' | 'visa' | 'mastercard' | 'maestro' | 'diners_club' | 'card'
| 'jcb' | 'american_express' | 'ec_card' | 'google_pay' | 'apple_pay' | 'klarna'
| 'paypal' | 'advance_payment' | 'bankomat_quick' | 'paybox' | 'direct_debit'
| 'sodexo' | 'vpay' | 'alipay' | 'unionpay' | 'check';
// Rating capsule used on search/detail
export type RatingCapsule = {
best: number; // Best rating the company received (1-5)
worst: number; // Worst rating the company received (1-5)
count: number; // Number of ratings/reviews
};
// ✅ Final per‑record object (one per company listing)
export type OutputRecord = {
// Identification & discovery
id: string; // Stable internal ID for deduplication
url: string; // Direct Herold.at profile URL
name: string; // Company name
description?: string; // Short description/teaser
additionalInfo?: string; // Extra notes shown on profile
logoURL?: string; // Company logo URL (if present)
// Trust & reputation
rating?: RatingCapsule; // Aggregated rating + count
reviews: Reviews; // Structured review data
awards: Array<string | undefined>; // Any listed awards/badges
isVerified: boolean; // Marked as a verified listing on Herold
// Contact & presence
address: Address; // Primary address block
addressDetail?: string; // Extra address line / descriptor
phone?: string; // Primary phone
email?: string; // Primary email
website?: string; // Website URL
additionalContacts?: AdditionalContact[]; // Socials, extra phones, fax, etc.
// Media & content
images: string[]; // Image URLs (logos, gallery, etc.)
// Operations & offering
openingHours?: OpeningHours; // Weekly schedule
openingHoursComment?: string; // Notes like "Closed on public holidays"
paymentMethods?: PaymentMethod[];// Accepted payment types
industries?: string[]; // Categories/verticals
services?: Service[]; // High‑level services list
serviceDetails?: { // Fine‑grained service breakdown
categories: Array<{
name: string;
services: Array<{ name: string; description: string; price?: string }>;
}>;
};
// Multi‑site businesses
locations?: Location[]; // Other branches/locations
};
// Notes
// - Many fields are optional because availability varies by listing type.
// - All outputs are schema‑validated for consistency.
// - When Herold.at adds new fields, the scraper continues to run and logs changes.

Tip: If you only need a few fields (e.g., name, phone, email, website), you can map the dataset to a slim CSV for immediate outreach, and still keep the full JSON for deeper analysis later.