Herold.at Scraper
Pricing
Pay per event
Herold.at Scraper
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
| Parameter | Type | Description |
|---|---|---|
| query | string | The search term you’d normally enter on Herold.at. (Required) |
| location | string | Optional location filter (e.g., “Wien” or “Innsbruck”). |
| openedNow | boolean | Filter for businesses that are currently open. |
| maxPages | number | Maximum 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:
| Field | Description |
|---|---|
| id | Unique ID of the listing |
| url | Direct URL to the company’s profile |
| name | Business name |
| description | Short business description |
| address | Street, postal code, region, and country |
| phone / email / website | Core contact information |
| additionalContacts | Other contact channels (fax, Facebook, Twitter, YouTube, etc.) |
| isVerified | Whether the business is a verified Herold listing |
| awards | Any awards or recognitions listed |
| images | Company images or logos |
| reviews | Total count, detailed reviews, ratings per category, and user feedback |
| openingHours | Day-by-day opening hours with closed/open status |
| paymentMethods | Accepted payment types (Visa, MasterCard, PayPal, etc.) |
| industries / services | Business categories and service lists |
| locations | Additional branch locations |
| companyDetails | Founding year, employee count, register ID, references, parking options |
| serviceDetails | Detailed 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 regionpostalCode?: 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/websiteexport type AdditionalContact = {type: 'fax' | 'phone' | 'email' | 'facebook' | 'youtube' | 'website' | 'twitter';value: string; // The handle, URL, or number};// High‑level review stats and individual reviewsexport type ReviewCategory = { title: string; rating: number }; // e.g., Service: 4.7export type Review = {rating: number; // 0..5author: string; // Reviewer display namedatePublished: string; // ISO datetitle: string; // Review headlinereviewBody: string; // Review textcategoryRatings: ReviewCategory[]; // Per‑category breakdownresponse?: string; // Owner reply (if present)};export type Reviews = {total: number; // Total number of reviewscategories: ReviewCategory[]; // Aggregated per‑category ratingsreviews: Review[]; // Recent/visible reviews};// Company metaexport type CompanyDetails = {foundingYear?: number; // Year the company was foundedcompanyRegisterId?: string; // Company register / FN number if availablereferences?: string; // References / clientele notesadditionalInfo?: string; // Free‑text extra info blockemployeeCount?: string; // Human‑readable (e.g., "11–50")parkingOptions?: string; // e.g., "Customer parking in courtyard"};// Structured services as shown on profileexport type Service = {title: string; // Section title (e.g., "Leistungen")services: Array<{key: string; // Internal key/slugtext: string; // Human‑readable service namekeywords?: string[]; // Optional related keywords}>};// Branches / additional locationsexport type Location = {name: string; // Location label (e.g., "Filiale Linz")address: Address; // Address for that branch};// Opening hours per weekdayexport 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/detailexport 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 & discoveryid: string; // Stable internal ID for deduplicationurl: string; // Direct Herold.at profile URLname: string; // Company namedescription?: string; // Short description/teaseradditionalInfo?: string; // Extra notes shown on profilelogoURL?: string; // Company logo URL (if present)// Trust & reputationrating?: RatingCapsule; // Aggregated rating + countreviews: Reviews; // Structured review dataawards: Array<string | undefined>; // Any listed awards/badgesisVerified: boolean; // Marked as a verified listing on Herold// Contact & presenceaddress: Address; // Primary address blockaddressDetail?: string; // Extra address line / descriptorphone?: string; // Primary phoneemail?: string; // Primary emailwebsite?: string; // Website URLadditionalContacts?: AdditionalContact[]; // Socials, extra phones, fax, etc.// Media & contentimages: string[]; // Image URLs (logos, gallery, etc.)// Operations & offeringopeningHours?: OpeningHours; // Weekly scheduleopeningHoursComment?: string; // Notes like "Closed on public holidays"paymentMethods?: PaymentMethod[];// Accepted payment typesindustries?: string[]; // Categories/verticalsservices?: Service[]; // High‑level services listserviceDetails?: { // Fine‑grained service breakdowncategories: Array<{name: string;services: Array<{ name: string; description: string; price?: string }>;}>;};// Multi‑site businesseslocations?: 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.
