# Changelog of ✨ German Imprint Scraper & Leads Finder (Google Search) (`winningsolutions/german-imprint-scraper`) Actor

- **URL**: https://apify.com/winningsolutions/german-imprint-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/winningsolutions/german-imprint-scraper.md

## Changelog

### v2.3.1 - fixed an issue where the actor could time-out when scraping 800+ domains

### v2.3 - Social media link extraction

- **New `social_media_links` field** - an object with keys `facebook`, `instagram`, `linkedin`, `xing`, `youtube`, `twitter`, `tiktok`, `pinterest`, `whatsapp`. Each key holds the first profile URL found on the homepage or imprint page; empty string when not found.
- **New `disableSocialMediaLinks` input flag** - set to `true` to omit `social_media_links` from each dataset row.

### v2.2.1 - fixed an issue where the actor could time-out

### v2.2 - All decision makers extracted

- **New `decision_makers` array** - every responsible person found in the imprint (Geschäftsführer, Gesellschafter, Vorstand, Vertretungsberechtigte, Inhaber, Ansprechpartner, ...) is now returned as a structured array. Each entry contains: `first_name`, `last_name`, `salutation` (Herr/Frau), `academic_title` (e.g. Dr., Prof. Dr.), `profession` (e.g. Steuerberater, Rechtsanwalt), and `roles` (array of the section headings the person appears under).
- **Backward compatible** - the existing singular `contact_person` field is unchanged. It always contains the highest-priority person (Geschäftsführer → Verantwortlicher → Ansprechpartner → Inhaber). All existing integrations continue to work without changes.
- **New `disableDecisionMakers` input flag** - set to `true` to omit the `decision_makers` array from output rows (does not affect `contact_person`).
- **New `All Decision Makers` dataset view** - Apify Console view that shows all found persons per company row.

### v2.1 - Domain blacklist for lead discovery

- **Domain blacklist** - new `domainBlacklist` input field (comma-separated domains) for Google Search lead discovery mode; matching discovered URLs are still charged (`website-processed`) but not scraped or written to the dataset

### v2.0 - Lead discovery via Google Search

- **Lead discovery via Google Search** - new `inputMode: searchTerms` mode to discover URLs from Google queries, then scrape their imprints automatically
- **New input fields** - `searchTerms`, `resultsPerSearchTerm`, `locationName`, `languageCode`, `device`
- **New output field** - `search_term` on every row (null when using Target URLs mode)
- **New pay-per-event** - `serp-search-page` at $0.005 per SERP page ($5.00 / 1,000 pages, approximately 10 results per page)

### v1.3 - API and MCP readiness

- **API and MCP usage guide** - new `.actor/README.md` section with copyable `curl`, `apify-client` (JavaScript), and Apify MCP server examples
- **Improved schema descriptions** - `input_schema.json`, `output_schema.json`, and `dataset_schema.json` descriptions sharpened for programmatic and AI tool callers; no field names, defaults, or runtime behavior changed

### v1.2 - Faster processing & smarter AI analysis

- **Improved parallel processing** - Actor is now 50% faster
- **Improved imprint analysis with fallbacks** - LLM is always used for the best result
- **Added "PerformanceMax" option** - for faster processing (requires at least 2 GB RAM)
- **Improved log formatting**
- **`imprint_url` is `null` when not found** - if the imprint URL is not found, it will now show as `null`
- **New `imprint_status` field** - indicates the outcome of imprint URL discovery (`FOUND`, `NOT_FOUND`, `FETCH_ERROR`, `URL_ERROR`, `ERROR`, `UNKNOWN`)

### v1.1 - Bug fixes & reliability improvements

- **Reliability fixes** - graceful charge-limit handling under concurrency, input-schema cleanup, and several scraper edge-case fixes
- **Improved AI analysis reliability** - more robust handling of LLM responses with multi-provider fallback
- **Slimmer Build image** - faster cold starts and smaller pulls

### v1.0 - Initial public release

- **AI-powered imprint detection** - finds *Impressum* links even when traditional parsing fails
- **Intelligent scraping engine** - automatically switches between a lightweight fast mode and a full browser mode depending on the website's complexity
- **Comprehensive email validation** - syntax, MX records, disposable filter, role-based detection, alias resolution, typo suggestions and live status tracking
- **Per-field privacy toggles** - disable any output field you don't need (e.g. `disableEmail`, `disableVatId`)
- **Pay-per-event pricing** - only pay for processed websites and (optionally) validated emails
