Impressum & EU Legal Notice Scraper
Pricing
from $1.39 / 1,000 domains
Impressum & EU Legal Notice Scraper
Extract Impressum, Mentions Légales, Aviso Legal, and EU legal notice data from any domain: company name, address, VAT ID, managing director, register number, court, email, and phone.
Pricing
from $1.39 / 1,000 domains
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Impressum & EU Legal Notice Scraper
The Impressum & EU Legal Notice Scraper extracts company registration data — legal name, address, VAT ID, managing director, commercial register number, register court, email, and phone — from the Impressum, Mentions Légales, Aviso Legal, or other statutory legal-notice page of any domain.
| Point it at a list of domains — URLs and email addresses work too — and it finds each site's legal-notice page automatically, falls back to a contact page when none exists, and returns clean, structured company data ready for compliance checks, B2B lead enrichment, or KYC workflows. |
Copy to your AI assistant
Use the Apify Actor "parsebird/impressum-legal-notice-scraper" (Impressum & EU Legal Notice Scraper) via the ApifyClient: client.actor("parsebird/impressum-legal-notice-scraper").call(run_input={"domains": ["sipgate.de", "flaconi.de", "teamviewer.com"], "contactPageFallback": True, "maxConcurrency": 20, "proxyConfiguration": {"useApifyProxy": False}}) — inputs are domains (array of domains, URLs, or emails — required), contactPageFallback (boolean, default true), maxConcurrency (integer, default 20), and proxyConfiguration (Apify Proxy object, off by default); output items contain domain, companyName, address, emails, phone, vatId, managingDirector, registrationNumber, registerCourt, legalPageUrl, legalPageType, foundVia, error, and scrapedAt; full API spec at https://apify.com/parsebird/impressum-legal-notice-scraper/api and get an API token at https://console.apify.com/account/integrations.
What does the Impressum & EU Legal Notice Scraper do?
Legal-notice pages are the most reliable public source of a company's registered legal name, address, and registration details — every commercial website operating in the EU, UK, or Switzerland is required to publish one. The Impressum & EU Legal Notice Scraper reads that page for you, across dozens of domains at once:
- 🔎 Locates the legal-notice page automatically by scanning footer/navigation links and, if needed, trying common URL paths (
/impressum,/mentions-legales,/aviso-legal,/imprint, and more) in the site's own language - 📇 Extracts company name, full address, VAT ID, managing director / legal representative, commercial register number, and register court
- 📧 Decodes obfuscated email addresses, including Cloudflare's
data-cfemailcloaking andname(at)domain.tld-style obfuscation - 🔁 Optional contact-page fallback so you still get an email and phone number when a site has no formal legal notice
- ⚡ Configurable concurrency to process large domain lists quickly, with an optional Apify Proxy for sites that block direct requests
- 💸 Only billed for domains where real data was actually extracted — unreachable domains and dead ends cost nothing
Feed it plain domains, full URLs, or even email addresses (e.g. hello@example.com) — the domain is normalized automatically.
Supported countries and legal-notice formats
The Actor recognizes legal-notice pages and vocabulary in many languages and formats:
| Country | Legal-notice name |
|---|---|
| 🇩🇪 Germany | Impressum |
| 🇦🇹 Austria | Impressum / Offenlegung |
| 🇨🇭 Switzerland | Impressum |
| 🇫🇷 France | Mentions légales |
| 🇪🇸 Spain | Aviso legal |
| 🇮🇹 Italy | Note legali / Dati societari |
| 🇳🇱 Netherlands | Colofon / Juridische informatie |
| 🇧🇪 Belgium | Mentions légales / Wettelijke vermeldingen |
| 🇬🇧 United Kingdom | Legal notice / Company information |
| 🇵🇹 Portugal | Aviso legal / Informação legal |
| … and more | Generic "Legal notice" / "Imprint" pages |
Coverage of the register number, VAT ID, and managing-director fields is strongest for Germany, Austria, and Switzerland, where the Impressum format is highly standardized (Handelsregister, USt-IdNr., Geschäftsführer). For other countries, expect reliable company name, address, email, and phone, with the structured register fields filled in wherever the site publishes them in a recognizable format.
What data can you extract from an Impressum or legal notice page?
| Field | Description |
|---|---|
domain | The domain you supplied |
companyName | Legal company name (e.g. Flaconi GmbH) |
address | Street and postal city |
emails | Email addresses found on the legal notice |
phone | Phone number |
vatId | VAT number / USt-IdNr. (e.g. DE219349391) |
managingDirector | Managing director / legal representative |
registrationNumber | Commercial-register number (e.g. HRB 133604) |
registerCourt | Registering court or chamber (e.g. Düsseldorf) |
legalPageUrl | URL of the legal-notice page that was read |
legalPageType | legal-notice or contact (fallback) |
foundVia | How the page was located (footer-link, common-path, or contact-fallback) |
error | Populated only if nothing could be read |
scrapedAt | ISO timestamp |
Not every field is present on every site — legal notices vary by country and company. Core fields (companyName, emails, phone, address) fill at a high rate; register/VAT/director fields are richest in German-speaking markets (DE/AT/CH), where the legal-notice format is most standardized.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
domains | array | Yes | — | Domains to process. Full URLs and email addresses are accepted too — the domain is extracted automatically. |
contactPageFallback | boolean | No | true | If no legal notice is found, try a contact page to still capture email and phone. |
maxConcurrency | integer | No | 20 | How many domains to process in parallel. |
proxyConfiguration | object | No | off | Apify Proxy. Off by default; enable if some targets block direct requests. |
Minimal input:
{"domains": ["sipgate.de", "flaconi.de", "teamviewer.com"]}
Larger run:
{"domains": ["site1.de", "site2.fr", "site3.nl", "site4.it"],"contactPageFallback": true,"maxConcurrency": 30}
Output example
[{"domain": "flaconi.de","companyName": "Flaconi GmbH","address": "Franklinstraße 15a, 10587 Berlin","emails": "service@flaconi.de","phone": "030 / 920 363 63","vatId": "DE815275589","managingDirector": "Bastian Siebers (Vorsitzender), Alexandra Szarmach, Henry Brodski","registrationNumber": "HRB 133604","registerCourt": "Berlin-Charlottenburg","legalPageUrl": "https://www.flaconi.de/impressum/","legalPageType": "legal-notice","foundVia": "footer-link","scrapedAt": "2026-07-09T10:00:00.000Z"},{"domain": "sipgate.de","companyName": "sipgate GmbH","address": "Gladbacher Straße 74, 40219 Düsseldorf","emails": "info@sipgate.de","phone": "+49 211 635555-0","vatId": "DE219349391","managingDirector": "Thilo Salmon","registrationNumber": "HRB 39841","registerCourt": "Düsseldorf","legalPageUrl": "https://www.sipgate.de/impressum","legalPageType": "legal-notice","foundVia": "footer-link","scrapedAt": "2026-07-09T10:00:00.000Z"}]
Download results in JSON, CSV, Excel, HTML, or XML directly from the Apify Console, or pull them via the Dataset API / Apify SDK.
How to scrape Impressum data with Python and JavaScript
- Open the Impressum & EU Legal Notice Scraper on the Apify Store, or call it via the API below.
- Paste in your list of domains (or URLs, or email addresses).
- Run the Actor and download the dataset as JSON, CSV, or Excel — or read it straight from your own code.
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("parsebird/impressum-legal-notice-scraper").call(run_input={"domains": ["sipgate.de", "flaconi.de", "teamviewer.com"],"contactPageFallback": True,"maxConcurrency": 20,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["domain"], item["companyName"], item["vatId"])
JavaScript (Node.js):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('parsebird/impressum-legal-notice-scraper').call({domains: ['sipgate.de', 'flaconi.de', 'teamviewer.com'],contactPageFallback: true,maxConcurrency: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Use cases
- KYC and vendor onboarding — verify a supplier's or partner's legal name, registered address, and VAT ID before signing a contract
- B2B lead enrichment — append verified company name, address, and contact details to a list of domains
- Compliance monitoring — check that your own or a competitor's sites publish a valid, up-to-date Impressum
- M&A and due-diligence research — pull commercial register numbers and managing directors for a list of target companies
- Directory and aggregator building — batch-collect standardized company data across many websites at once
How it works
- Normalizes each input value (domain, URL, or email) down to a bare domain.
- Fetches the homepage and scans its footer and navigation links for a legal-notice link, matching keywords across German, French, Spanish, Italian, Dutch, Portuguese, and English.
- If no link is found, tries a set of common legal-notice URL paths (
/impressum,/mentions-legales,/aviso-legal, and more) and verifies the resulting page actually contains legal-notice content before trusting it. - Parses the page text for company name, address, VAT ID, managing director, registration number, register court, email, and phone using pattern-based extraction tuned for German, Austrian, and Swiss formats plus generic multi-language fallbacks.
- If Contact page fallback is on and no legal notice was found, repeats steps 2–4 against the site's contact page to still capture an email and phone number.
- Pushes one row per domain to the dataset, with
errorpopulated only when nothing could be read.
How much does it cost to scrape Impressum pages?
This Actor uses Pay-Per-Event pricing — you pay only for domains where real data was actually extracted.
| Event | Price per event | Price per 1,000 domains |
|---|---|---|
domain-scraped | $0.00199 | $1.99 |
A domain-scraped event fires once for every domain where a legal-notice page (or, with the fallback on, a contact page) was found and at least one field was successfully extracted. Domains that are unreachable or where nothing could be read are not charged — so a batch of 1,000 domains where 850 have a readable legal or contact page costs roughly $1.69. Apify's free monthly platform usage credits apply to this Actor like any other.
FAQ
Does this Actor use a browser? No — it fetches pages directly over HTTP, which keeps runs fast and cheap. This means it cannot read a legal-notice page that is rendered entirely client-side with no server-rendered HTML.
What if a domain has no Impressum page?
With Contact page fallback on (the default), the Actor tries the site's contact page instead and still returns any email or phone number it can find, with legalPageType set to contact.
Why are some fields empty?
Legal-notice formats vary by country. Coverage of vatId, registrationNumber, registerCourt, and managingDirector is strongest for German-speaking markets (DE/AT/CH); other countries reliably return companyName, address, emails, and phone but may not publish the structured register fields at all.
A domain fails with "Could not reach the domain" — what do I do? Some sites (particularly ones behind Cloudflare) block requests from shared datacenter IPs. Turn on Proxy configuration and select an Apify Proxy RESIDENTIAL group for those domains.
Can I pass a URL or email instead of a bare domain?
Yes. https://www.example.com/some/page and hello@example.com are both automatically normalized to example.com.
Can I schedule this to run automatically? Yes — use Apify Schedules to re-check a domain list daily, weekly, or on any interval, and pair it with webhooks or the Google Sheets, Slack, Zapier, or Make integrations to route the results.
Can I access this via API? Yes — every Actor on Apify has a full REST API, plus native clients for Python and JavaScript. See the code samples above.
Found a domain this Actor doesn't handle well? Open an issue on the Issues tab — bug reports on specific domains help improve the extraction patterns.
Is it legal to scrape Impressum and legal notice pages?
Yes. A legal-notice page is legally required to be publicly accessible, and this Actor only reads information the site itself has published for that exact purpose. That said, always respect a target site's terms of service and applicable data-protection law (e.g. GDPR) for how you subsequently use any personal data, such as a named managing director. See Apify's blog post on the legality of web scraping for a broader overview.
Related Actors
- Website Contact Finder — general-purpose contact-detail extraction for any website
- Zefix.ch Scraper — search the Swiss commercial register by name, canton, or legal form
- FirmenABC.at Scraper — Austrian company registry data
- UK Companies House Scraper — official UK company registration records
- Pappers.fr Company Scraper — French company registry data
- Northdata Scraper — cross-border company and ownership data