German Impressum & Imprint Scraper
Pricing
from $5.50 / 1,000 standard impressum extraction (regex)s
German Impressum & Imprint Scraper
Fast, automated scraper to find and extract Impressum (legal notice & imprint) data from German websites. Extracts company names, decision-makers (Geschäftsführer), addresses, emails, phones, Handelsregister numbers (HRB), tax IDs, and social links with AI or Regex.
Pricing
from $5.50 / 1,000 standard impressum extraction (regex)s
Rating
5.0
(3)
Developer
CodeScraper
Maintained by CommunityActor stats
6
Bookmarked
135
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
🇩🇪 German Impressum Scraper – Extract Legal Details Automatically (Regex + AI)
This Apify Actor automatically detects, renders, and extracts Impressum (legal disclosure / legal notice) data from German, Austrian, and Swiss websites.
Powered by Playwright (full browser automation), it executes JavaScript, renders modern dynamic SPAs (React, Vue, Next.js, Nuxt, Shopify themes), handles cookie banners, and parses even the most complex web layouts.
⚡ Looking for a faster, ultra-cheap alternative?
If your target websites are simple static HTML pages and do not require full JavaScript browser rendering, check out our companion Actor:
👉 German Imprint Scraper (Contact+Social Links) (codescraper/german-impressum-scraper-fast)
- Cheerio-based (Fast): Extremely high-speed, lightweight HTTP scraping at lower cost.
- Best for: Simple, non-JavaScript websites. (May miss dynamic single-page applications or heavy JS stores that require browser automation).
🚀 What It Does
The scraper visits each website, finds its legal disclosure page across headers, footers, sub-bars, and drawers, and extracts:
- 🏢 Company Name, Decision Maker Name(s), and Role (e.g. Geschäftsführer, Inhaber, Vorstand)
- 🏠 Full Address + separated fields (Street, House Number, Postal Code, City, Country)
- ☎️ Phone Numbers and 📧 Email Addresses
- 🧾 Commercial Register Number (HRB, HRA, VR), Register Court (Amtsgericht), and Tax ID (USt-IdNr.)
- 🌐 14+ Social Media Channels (Facebook, Instagram, LinkedIn, X, Xing, YouTube, TikTok, WhatsApp, Telegram, Threads, Pinterest, GitHub, Discord, Bluesky)
- 🧠 Meta Title and Meta Description
- 🏷️ Extraction Method (
regexorai) – full transparency on how each row was parsed
⚡ Two Extraction Engines
| Feature | ⚙️ Standard Regex Engine | 🤖 Premium AI Engine |
|---|---|---|
| How it works | Hundreds of tuned German legal heuristics | Advanced LLM reads and extracts like a human |
| Speed | ⚡ Ultra-fast | ⚡ Fast (adds ~1–2s per site) |
| Best for | Large lead lists, standard Impressum layouts | Complex multi-manager structures, unusual wording, messy layouts |
| Cost | $0.007 per website ($7.00 / 1,000) | $0.010 per website ($10.00 / 1,000) |
| Fallback | – | Automatic silent fallback to Regex if AI is unavailable (you are charged only the Regex price!) |
💰 Pay-Per-Event (PPE) Pricing
You pay only when Impressum data is successfully delivered.
- ✅ Platform compute is 100% FREE (no memory or CPU hourly charges).
- ✅ No Impressum found? You are NOT charged for extraction.
- ✅ Website failed to load / invalid domain? You are NOT charged.
Official Pricing Table
| Event | Free Plan (No discount) | Starter (Bronze discount) | Scale (Silver discount) | Business (Gold discount) |
|---|---|---|---|---|
| Standard Impressum (Regex) | $7.00 / 1,000 | $6.30 / 1,000 | $5.90 / 1,000 | $5.50 / 1,000 |
| Premium Impressum (AI) | $10.00 / 1,000 | $9.00 / 1,000 | $8.50 / 1,000 | $8.00 / 1,000 |
| Dataset Result | $1.00 / 1,000 | $1.00 / 1,000 | $1.00 / 1,000 | $1.00 / 1,000 |
| Actor Start | $0.0005 / run | $0.0005 / run | $0.0005 / run | $0.0005 / run |
| Platform Usage | FREE | FREE | FREE | FREE |
💵 Real-World Cost Examples
(Note: Calculations below assume a standard Free/Pay-as-you-go plan. Starter, Scale, and Business plans receive up to 21% discount!)
-
Example 1: 100 Websites Crawled
- Regex Mode: 100 sites found → (100 × $0.007) + (100 × $0.001 result) + $0.0005 start ≈ $0.80 total
- AI Mode: 100 sites found → (100 × $0.010) + (100 × $0.001 result) + $0.0005 start ≈ $1.10 total
-
Example 2: 200 Websites Crawled
- Regex Mode: 200 sites found → (200 × $0.007) + (200 × $0.001 result) + $0.0005 start ≈ $1.60 total
- AI Mode: 200 sites found → (200 × $0.010) + (200 × $0.001 result) + $0.0005 start ≈ $2.20 total
-
Example 3: 500 Websites Crawled
- Regex Mode: 500 sites found → (500 × $0.007) + (500 × $0.001 result) + $0.0005 start ≈ $4.00 total
- AI Mode: 500 sites found → (500 × $0.010) + (500 × $0.001 result) + $0.0005 start ≈ $5.50 total
-
Example 4: 1,000 Websites Crawled (with 50 missing / failed sites)
- Suppose out of 1,000 websites:
- 930 websites have an Impressum extracted by AI: 930 × $0.010 = $9.30
- 20 websites fall back to Regex: 20 × $0.007 = $0.14
- 50 websites have no Impressum or were down: $0.00 (No extraction event charged!)
- Results saved (950): 950 × $0.001 = $0.95
- Actor start: $0.0005
- Total cost for 1,000 URLs: ~$10.39
- Suppose out of 1,000 websites:
⚙️ Input Configuration
| Field Name | Type | Default | Description | Example / Allowed Values |
|---|---|---|---|---|
startUrls | Array of strings | [] | List of target websites. Any format works! Accepts raw domains, subdomains, or full URLs without pre-cleaning. | ["marley.de", "https://www.dr-johanna-budwig.de/"] |
enableAi | Boolean | false | Turn on premium AI extraction. If disabled, uses fast Regex engine. | true or false |
aiModel | String | openai/gpt-oss-20b | AI model to use for extraction when enableAi is true. | openai/gpt-oss-20b, openai/gpt-oss-120b, qwen/qwen3.8-27b |
socialPlatforms | Array of strings | ["facebook", "instagram", "linkedin", "youtube", "tiktok", "x"] | Multi-select picker for social links. Only selected platforms will appear in output. | ["facebook", "instagram", "linkedin", "x", "xing", "youtube", "tiktok", "whatsapp", "telegram", "threads", "pinterest", "github", "discord", "bluesky"] |
excludeMainUrl | Boolean | false | Exclude the original input URL column. | true / false |
excludeImpressumUrl | Boolean | false | Exclude the direct link to the Impressum page. | true / false |
excludeAddress | Boolean | false | Exclude all address columns (full address, street, house number, PLZ, city, country). | true / false |
excludePhones | Boolean | false | Exclude phone numbers. | true / false |
excludeEmails | Boolean | false | Exclude email addresses. | true / false |
excludeDecisionMaker | Boolean | false | Exclude decision maker names and roles. | true / false |
excludeRegisterNumber | Boolean | false | Exclude commercial register number (HRB/HRA/VR). | true / false |
excludeRegisterCourt | Boolean | false | Exclude register court (Amtsgericht). | true / false |
excludeTaxId | Boolean | false | Exclude VAT tax ID (USt-IdNr.). | true / false |
excludeSocial | Boolean | false | Exclude all social media profile columns. | true / false |
excludeMeta | Boolean | false | Exclude page title and meta description. | true / false |
maxConcurrency | Integer | 40 | Maximum number of websites processed simultaneously. | 10 to 50 |
userAgent | String | Chrome Desktop | Custom browser User-Agent signature. | "Mozilla/5.0 ... Chrome/120.0.0.0 ..." |
🧩 Input & Output Examples
1️⃣ Example: Regex Extraction (Standard Mode)
Input Configuration:
{"startUrls": ["marley.de","https://www.dr-johanna-budwig.de/"],"enableAi": false,"socialPlatforms": ["facebook","instagram","linkedin","youtube","tiktok","x"]}
Output Result:
[{"mainUrl": "marley.de","impressumUrl": "https://marley.de/policies/legal-notice","companyName": "Marley Deutschland GmbH","decisionMakerName": "Stefan Ostertag, Christian Holland-Moritz","decisionMakerRole": "Geschäftsführer","address": "Adolf-Oesterheld-Str. 28, 31515 Wunstorf, DE","addressStreet": "Adolf-Oesterheld-Str.","addressHouseNumber": "28","addressPostalCode": "31515","addressCity": "Wunstorf","addressCountry": "DE","phones": "+495031530","emails": "info@marley.de","registerCourt": "Amtsgericht Hannover","registerNumber": "HRB 110009","taxId": "DE811119134","socialFacebook": "https://www.facebook.com/MarleyDeutschland","socialInstagram": "https://www.instagram.com/marley_deutschland","socialLinkedin": "https://www.linkedin.com/company/marleydeutschland","socialYoutube": "https://www.youtube.com/@MarleyDeutschland","socialTiktok": "https://www.tiktok.com/@marleydeutschland","socialX": null,"extractionMethod": "regex","error": "","fetchTime": "2026-10-04T08:07:31.331Z","metaTitle": "Marley Deutschland GmbH","metaDescription": "— Marley Deutschland GmbH"},{"mainUrl": "https://www.dr-johanna-budwig.de/","impressumUrl": "https://www.dr-johanna-budwig.de/policies/legal-notice","companyName": "Dr. Johanna Budwig GmbH","decisionMakerName": "Franz Nowotny","decisionMakerRole": "Geschäftsführer","address": "An den Kolonaten 2-4, 26160 Bad Zwischenahn, DE","addressStreet": "An den Kolonaten","addressHouseNumber": "2-4","addressPostalCode": "26160","addressCity": "Bad Zwischenahn","addressCountry": "DE","phones": "+494413906300","emails": "kontakt@dr-johanna-budwig.de","registerCourt": "Amtsgericht Oldenburg","registerNumber": "HRB 209987","taxId": "DE300469959","socialFacebook": "https://www.facebook.com/Dr.Johanna.Budwig","socialInstagram": "https://www.instagram.com/dr.johannabudwig","socialLinkedin": null,"socialYoutube": "https://www.youtube.com/user/DrJohannaBudwig","socialTiktok": "https://www.tiktok.com/@dr.johannabudwig","socialX": null,"extractionMethod": "regex","error": "","fetchTime": "2026-10-04T08:08:40.012Z","metaTitle": "Dr. Johanna Budwig","metaDescription": "Dr. Johanna Budwig"}]
2️⃣ Example: AI Extraction (Premium Mode)
Input Configuration:
{"startUrls": ["marley.de","https://www.dr-johanna-budwig.de/"],"enableAi": true,"aiModel": "openai/gpt-oss-20b","socialPlatforms": ["facebook","instagram","linkedin","youtube","tiktok","x"]}
Output Result:
[{"mainUrl": "marley.de","impressumUrl": "https://marley.de/policies/legal-notice","companyName": "Marley Deutschland GmbH","decisionMakerName": "Stefan Ostertag, Christian Holland-Moritz","decisionMakerRole": "Geschäftsführer","address": "Adolf-Oesterheld-Str. 28, 31515 Wunstorf, DE","addressStreet": "Adolf-Oesterheld-Str.","addressHouseNumber": "28","addressPostalCode": "31515","addressCity": "Wunstorf","addressCountry": "DE","phones": "+495031530, +49503153371, +495031530, +4950315337","emails": "info@marley.de","registerCourt": "Amtsgericht Hannover","registerNumber": "HRB 110009","taxId": "DE811119134","socialFacebook": "https://www.facebook.com/MarleyDeutschland","socialInstagram": "https://www.instagram.com/marley_deutschland","socialLinkedin": "https://www.linkedin.com/company/marleydeutschland","socialYoutube": "https://www.youtube.com/@MarleyDeutschland","socialTiktok": "https://www.tiktok.com/@marleydeutschland","socialX": null,"extractionMethod": "ai","error": "","fetchTime": "2026-10-04T08:37:44.033Z","metaTitle": "Marley Deutschland GmbH","metaDescription": "— Marley Deutschland GmbH"},{"mainUrl": "https://www.dr-johanna-budwig.de/","impressumUrl": "https://www.dr-johanna-budwig.de/policies/legal-notice","companyName": "Dr. Johanna Budwig GmbH","decisionMakerName": "Franz Nowotny","decisionMakerRole": "Geschäftsführer","address": "An den Kolonaten 2-4, 26160 Bad Zwischenahn, DE","addressStreet": "An den Kolonaten","addressHouseNumber": "2-4","addressPostalCode": "26160","addressCity": "Bad Zwischenahn","addressCountry": "DE","phones": "+494413906300","emails": "kontakt@dr-johanna-budwig.de","registerCourt": "Amtsgericht Oldenburg","registerNumber": "HRB209987","taxId": "DE300469959","socialFacebook": "https://www.facebook.com/Dr.Johanna.Budwig","socialInstagram": "https://www.instagram.com/dr.johannabudwig","socialLinkedin": null,"socialYoutube": "https://www.youtube.com/user/DrJohannaBudwig","socialTiktok": "https://www.tiktok.com/@dr.johannabudwig","socialX": null,"extractionMethod": "ai","error": "","fetchTime": "2026-10-04T08:37:53.938Z","metaTitle": "Dr. Johanna Budwig","metaDescription": "Dr. Johanna Budwig"}]
📋 Output Fields Defined
Each output row contains clean, standardized data:
| Field Name | Type | Description | Example |
|---|---|---|---|
mainUrl | Text | The exact website URL you entered. | marley.de |
impressumUrl | Link | Direct URL to the detected Impressum page. | https://marley.de/policies/legal-notice |
companyName | Text | Official legal company name. | Marley Deutschland GmbH |
decisionMakerName | Text | Names of managing directors / owners. | Stefan Ostertag, Christian Holland-Moritz |
decisionMakerRole | Text | Legal role label. | Geschäftsführer |
address | Text | Full formatted address string. | Adolf-Oesterheld-Str. 28, 31515 Wunstorf, DE |
addressStreet | Text | Street name only. | Adolf-Oesterheld-Str. |
addressHouseNumber | Text | House / building number. | 28 |
addressPostalCode | Text | 5-digit German/DACH postal code (PLZ). | 31515 |
addressCity | Text | City or municipality. | Wunstorf |
addressCountry | Text | 2-letter ISO country code. | DE |
phones | Text | Phone numbers normalized to international format. | +495031530 |
emails | Text | Clean business email addresses. | info@marley.de |
registerCourt | Text | Commercial court where the company is filed. | Amtsgericht Hannover |
registerNumber | Text | Commercial registration number. | HRB 110009 |
taxId | Text | VAT identification number (USt-IdNr.). | DE811119134 |
socialFacebook | Link | Official Facebook profile / page URL. | https://facebook.com/MarleyDeutschland |
socialInstagram | Link | Official Instagram profile URL. | https://instagram.com/marley_deutschland |
socialLinkedin | Link | Official LinkedIn company profile URL. | https://linkedin.com/company/marleydeutschland |
socialX | Link | Official X / Twitter profile URL. | https://x.com/marley |
socialXing | Link | Official Xing profile / Kununu company page. | https://xing.com/pages/marley |
socialYoutube | Link | Official YouTube channel URL. | https://youtube.com/@MarleyDeutschland |
socialTiktok | Link | Official TikTok profile URL. | https://tiktok.com/@marleydeutschland |
socialWhatsapp | Link | Official WhatsApp contact / chat link. | https://wa.me/491701234567 |
socialTelegram | Link | Official Telegram channel / chat link. | https://t.me/marley |
socialThreads | Link | Official Threads profile URL. | https://threads.net/@marley |
socialPinterest | Link | Official Pinterest profile URL. | https://pinterest.com/marley |
socialGithub | Link | Official GitHub profile / organization URL. | https://github.com/marley |
socialDiscord | Link | Official Discord invite link. | https://discord.gg/example |
socialBluesky | Link | Official Bluesky profile URL. | https://bsky.app/profile/marley.bsky.social |
extractionMethod | Text | Shows which engine produced the row: ai or regex. | ai |
metaTitle | Text | Page title of the homepage. | Marley Deutschland GmbH |
metaDescription | Text | Meta description tag of the website. | Innovative Haustechnik und Dachentwässerung. |
fetchTime | Text | ISO timestamp when data was retrieved. | 2026-10-04T12:00:00.000Z |
error | Text | Error message if no Impressum was found. | Impressum not found |
❓ Frequently Asked Questions (FAQ)
What is the difference between this Actor and your fast Cheerio Actor?
- This Actor (
german-imprint-scraper): Uses a full headless browser (Playwright). It renders client-side JavaScript (React, Vue, Next.js, modern Shopify stores), scrolls to trigger lazy footers, handles shadow DOM and drawers, and offers optional AI parsing. It is slower but delivers maximum completeness on modern dynamic websites. - Fast Actor (
[german-impressum-scraper-fast](https://console.apify.com/actors/3hMKKq9OycbeUJ79G/info)): Uses lightweight HTTP requests (Cheerio). It is ultra-fast and cheaper, but cannot execute JavaScript. Perfect for large lists of simple static HTML websites.
Do I need my own Groq or OpenAI API key?
No. All AI API costs and token processing are included in the Pay-Per-Event price. Just check Enable AI extraction in the input and click Start.
What happens if the AI engine is temporarily unavailable?
The scraper will automatically and silently fall back to the Regex engine for that website. You will only be charged the cheaper Regex event price ($0.007), never the AI price.
Am I charged if a website does not have an Impressum?
No. Websites that return 404, domains that do not resolve, or sites without an Impressum are recorded with "error": "Impressum not found" and are completely free of extraction charges.
How do I limit how much money a run can spend?
In the Apify Console, open your Actor run options and set a Max cost (USD). Once that dollar limit is reached, the scraper stops gracefully and saves all results collected up to that point.
Can I export results to Excel or CSV?
Yes! Click on the Dataset tab of your finished run and export directly to Excel (.xlsx), CSV, JSON, or connect via the Apify API, Make, Zapier, or n8n.
⚖️ Legal & GDPR Compliance
This Actor extracts exclusively publicly available business information published in compliance with §5 DDG (formerly §5 TMG) on German websites. All data is gathered for B2B intelligence, compliance auditing, and CRM enrichment.
🧑💻 Developer Info
- Author:
codescraper - Contact:
codescraper011@gmail.com - Cheerio Scraper: German Imprint Scraper (Contact+Social Links)