EU Impressum Lookup avatar

EU Impressum Lookup

Pricing

$2.00 / 1,000 company founds

Go to Apify Store
EU Impressum Lookup

EU Impressum Lookup

Extract company details from EU websites' Impressum, Imprint, legal notice, Mentions légales or Colofon pages. Returns company data only by default.

Pricing

$2.00 / 1,000 company founds

Rating

0.0

(0)

Developer

Mike Berckmoes

Mike Berckmoes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

Impressum Scraper: EU legal-notice company data from a list of domains

Turn a list of company websites into clean company records taken from each site's legally required legal notice. The legal notice is called Impressum in Germany, Austria and Switzerland, Mentions légales in France, Colofon in the Netherlands, Note legali in Italy, and Imprint, Legal notice or company information in the UK and Ireland. For each domain you get the legal name, legal form, register court and number, VAT ID, address, generic company email and phone. Use it for B2B lead enrichment, CRM cleaning, KYB/supplier checks and matching websites to legal entities. DACH comes first. French, Dutch, Italian, Belgian, Luxembourg, UK and Irish pages also work.

What does Impressum Scraper do?

For every domain it:

  1. reads robots.txt and respects it (including Crawl-delay, max 5 s),
  2. fetches the homepage over plain HTTP (no browser, no proxy),
  3. finds the legal-notice link (Impressum, Imprint, Legal notice, Mentions légales, Colofon, Note legali, Notizie legali, company information, Offenlegung, Rechtliche Hinweise …) and opens the best candidates,
  4. if no link is visible, tries common paths such as /impressum, /imprint and /mentions-legales, then looks for an Impressum URL in the site's sitemap.xml (listed in robots.txt),
  5. parses the page and returns one row per domain with a status.
FieldExamples / formats recognised
legalName, legalFormGmbH, AG, SE, KG, GmbH & Co. KG(aA), UG (haftungsbeschränkt), e.K., GesmbH, Genossenschaft, SAS/SASU/SA/SARL/SCA (also spelled out: "société par actions simplifiée"), B.V., N.V., S.r.l., S.p.A., S.r.l.s., BVBA, SPRL, Ltd …
registerType, registerNumberHRB/HRA/GnR/PR/VR (DE), FN (AT Firmenbuch), CHE-UID (CH, check digit verified), SIREN (FR, Luhn verified, also read from RCS/SIRET), KvK (NL, 8 digits), CRN (UK company number), CRO (Ireland, 6 digits), REA and P.IVA (Italy, P.IVA Luhn-checked), KBO/BCE (Belgium, check digit), RCS B-number (Luxembourg)
registerCourtAmtsgericht / Registergericht, Handelsgericht / Landesgericht, Handelsregister des Kantons …, RCS + city
vatId, vatIdChecksumValidUSt-IdNr., UID (ATU…), TVA (FR..), BTW (NL…B..), BE, IT, LU, GB, IE, CHE … MWST; check digit verified for DE, AT, FR, NL, BE, IT, LU and CHE. GB and IE numbers are kept with a null check result
street, postcode, city, countryDE/FR/IT 5-digit, AT/CH/BE/LU 4-digit (also A-/CH-/B-/L- prefixes), NL 1234 AB, UK postcode (SW1A 1AA), Irish Eircode (A65 F4E2)
email, phoneGeneric company addresses only (info@, kontakt@, contact@, office@, service@ …); phone from Tel/Telefon/Phone/Tél labels
statusok, no_impressum, fetch_error, robots_disallowed
confidence0–1 completeness score (see the dataset schema)

Why use it?

  • Cheap and light. Plain HTTP requests only: no browser, no proxies, no search-engine fees.
  • One row per domain, always. Failures are labelled (fetch_error with the HTTP status or error, no_impressum), so you can join the output back to your list.
  • Validated identifiers. VAT IDs, Swiss UIDs and French SIRENs are check-digit verified, so typos and look-alike numbers are flagged or dropped.
  • Polite by design. robots.txt is obeyed (an unreachable robots.txt counts as "disallow", per RFC 9309). Requests to the same site are sequential, at least 0.5 s apart. The crawler identifies itself as EUImpressumLookup.
  • Company data only by default (see GDPR below).

How to use it

  1. Paste domains or URLs into Domains or URLs (e.g. example.de, https://www.example.at/), or pass an Apify dataset ID from a Google Maps / places scraper (each item's website / websiteUrl / url is mapped to a domain), or paste mapsItems inline.
  2. Optionally turn on Verify VAT via VIES (default off) to check extracted USt-IdNr numbers with the free EU REST API.
  3. Optionally change Max parallel domains (default 10) and the Request timeout.
  4. Run, then export to CSV, Excel or JSON, or connect Google Sheets, Make, Zapier or your CRM.

Input example

{
"domains": ["example.de", "https://www.example.at/", "example.fr"],
"maxConcurrency": 10,
"includePersonNames": false,
"verifyVat": false
}

Google Maps dataset:

{
"domains": [],
"datasetId": "YOUR_PLACES_DATASET_ID",
"maxDatasetItems": 200,
"verifyVat": false
}

Output example

{
"input": "example.de",
"domain": "example.de",
"status": "ok",
"foundVia": "link",
"sourceUrl": "https://www.example.de/impressum",
"legalName": "Example GmbH",
"legalForm": "GmbH",
"registerType": "HRB",
"registerNumber": "HRB 12345",
"registerCourt": "Amtsgericht München",
"vatId": "DE123456789",
"vatIdChecksumValid": true,
"street": "Musterstraße 1",
"postcode": "80331",
"city": "München",
"country": "DE",
"email": "info@example.de",
"phone": "+49 89 123456-0",
"confidence": 1.0,
"requests": 3,
"checkedAt": "2026-10-03T18:00:00+00:00"
}

vatIdChecksumValid is a check-digit test, not a VIES lookup. Set verifyVat to call POST https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number (free, no key). vatVerified is true only when VIES returns valid: true.

How much does it cost?

$2 per 1,000 domains with company data found ($0.002 per ok row, event company-found), pay per event, with no start fee. Every input domain still gets one row, but rows with no_impressum, fetch_error or robots_disallowed are free. 500 domains with 300 ok rows cost $0.60. If your maximum charge per run is reached, the remaining domains are not checked (notCheckedDueToChargeLimit in RUN_SUMMARY).

Optional event vat-verified: charged only when VIES confirms a number (valid: true). Proposed $0.001–0.002. This event is not published and Store prices are not changed by this upgrade; until PPE is configured the charge call is ignored on a private Actor.

GDPR and person names

Impressum pages often list managing directors (Geschäftsführer), board members or a publisher by name, and sometimes a personal email address. These are personal data under the GDPR. By default this Actor does not output them: only generic company emails (info@, kontakt@ …) are returned, and no names.

If you switch on Include person names, the Actor adds managingPersons and may return a non-generic email address. Only do this if you have a lawful basis, for example legitimate interest for B2B outreach with an opt-out. Inform the data subjects where Art. 14 GDPR requires it, respect objections, and store and delete the data according to your own policies. You are the controller for the data you collect with this Actor.

Limitations (honest)

  • Bot-protected sites (Akamai, Cloudflare and similar) answer plain HTTP clients with HTTP 403 or time out. They come back as fetch_error, because this Actor does not use proxies or browsers. In our test this affected many large retail and consumer brands.
  • JavaScript-only sites whose homepage and legal page are rendered in the browser give no_impressum.
  • Geo-redirects. Some global .com sites redirect to a country version (e.g. the US site) that has no Impressum. Pass the country URL instead (e.g. https://www.example.com/de-de/).
  • Groups with several entities. The Actor returns the main operator of the site. When a page lists several registrations (e.g. a dual-seat AG), the first one is returned.
  • Register court and wording are returned as printed. For example, it may return "Vienna Commercial Court" or "Berlin-Charlottenburg".
  • Text is parsed with rules, not AI. Unusual layouts can produce missing fields. Check confidence.

Test results (local, 3 Oct 2026)

22 well-known DE/AT/CH/FR company sites: 12 ok, 4 no_impressum, 6 fetch_error (HTTP 403 or timeouts from bot protection). For all 12 ok rows, the legal name and register number match the legal-notice page. 7 of these were also matched to the GLEIF LEI register: the legal name matched in 7/7, the register number in 6/7 (the 7th is a dual-seat company where the page and GLEIF list different but valid registrations), and the postcode in 7/7. Every VAT ID that the EU VIES service could check (6/6) was valid. VIES did not answer for German numbers during the test.

FAQ

Is scraping an Impressum legal? The Impressum is information that companies must publish (e.g. § 5 DDG in Germany, § 25 MedienG in Austria, LCEN in France). This Actor reads only that page plus the homepage, respects robots.txt and returns company data by default. You are responsible for how you use the results. Why is a domain fetch_error when it opens in my browser? The site blocks non-browser clients, or its robots.txt is unreachable. Retry later or check it manually. Can it find the company website from a company name? No. The input is domains, a Google Maps dataset id, or mapsItems with a website field. Does verifyVat change the $0.002 company-found price? No. company-found stays $0.002. vat-verified is a separate optional event, pricing left unset.