German Imprint Leads avatar

German Imprint Leads

Pricing

from $12.00 / 1,000 result scrapeds

Go to Apify Store
German Imprint Leads

German Imprint Leads

Extracts contact and legal data from the mandatory Impressum page of German company websites: company name, legal form, managing directors, address, phone, fax, email, VAT ID, and Handelsregister entry. Give it company websites or domains, get back structured B2B lead data.

Pricing

from $12.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract company contact and legal data straight from the Impressum page of German company websites. Every commercial website registered in Germany is legally required (§ 5 TMG) to publish an Impressum with the company's legal name, address, and contact details — this actor turns that legally-mandated data into a clean, structured lead list.

Give it a list of company websites (or just plain domains) and get back the company's legal name, legal form, managing directors, full address, phone, fax, email, VAT ID (USt-IdNr), and commercial register entry (Handelsregister). No login, no API key, no scraping product pages — just the page every German business is required to publish.

Why use this actor?

The German Impressum is one of the few places on the internet where businesses are legally forced to publish accurate, up-to-date contact information: a real company name, a real address, and a way to reach a real decision-maker. That makes it one of the highest-quality sources for B2B lead generation, sales prospecting, and market research into the German market — far more reliable than guessing contact details from a "Kontakt" form.

Typical users:

  • Sales and outbound teams building a prospect list of German companies in a given sector, with a verified company name, address, and contact email for each.
  • Market researchers and analysts who need to verify a German counterparty's legal form, registered address, or Handelsregister entry before doing business.
  • Lead-gen agencies enriching an existing list of German company domains with structured contact data.
  • Compliance and due-diligence teams cross-checking a company's legal name and VAT ID against its public Impressum.

How to scrape German Impressum data

Point the actor at German company websites and it does the rest: find the Impressum page, and pull out every field a standardized German legal notice is required to contain.

1. Give it company URLs

Add company homepages or direct Impressum/Imprint URLs to Start URLs. A homepage is enough — the actor automatically looks for a link to the Impressum (checking anchor text and href for "Impressum", "Imprint", "Legal Notice", etc.) and, if it can't find one, tries the ~18 most common Impressum URL paths directly (/impressum, /de/impressum, /unternehmen/impressum, /legal/impressum, and so on).

{
"startUrls": [
{ "url": "https://www.example.de" },
{ "url": "https://www.example.de/impressum" }
]
}

2. Or just paste a list of domains

If you already have a list of company domains (from a CRM export, a search result list, or another scraper), paste them into Domains — one per line, or comma-separated. https:// is added automatically.

{
"domains": "example.de\nanother-company.de\nthird-company.com"
}

You can combine both Start URLs and Domains in the same run — the actor deduplicates by domain, so each company only appears once in the output.

3. Set a result limit

Max Results caps how many companies the actor returns (one record per unique domain). Useful for testing on a small batch before running a large list.

4. Run it

The actor visits each domain, finds the Impressum page, and extracts every field it can find. German Impressum pages follow legally standardized wording (§ 5 TMG for the base requirements, plus § 55 RStV / § 18 MStV for editorial content and Art. 13 GDPR-adjacent disclosures), which makes labeled-field extraction reliable across very different site designs — from a single-page SME site to a DAX-listed corporation's legal department boilerplate.

What data does German Imprint Leads extract?

FieldTypeDescription
companyNameStringRegistered company name, including legal form (e.g. "Musterfirma GmbH")
legalFormStringLegal form suffix only (GmbH, AG, UG, GmbH & Co. KG, KGaA, eG, e.K., ...)
managingDirectorsStringManaging director(s) / Vorstand / Geschäftsführung named in the Impressum
streetStringStreet and house number
postalCodeString5-digit German postal code
cityStringCity / postal area
phoneStringPhone number, if published
faxStringFax number, if published (increasingly rare)
emailString | nullPrimary contact email (first one found)
emailsArrayAll contact emails found on the page (mailto links, Cloudflare-obfuscated addresses, and [at]/[dot]-style obfuscation are all decoded)
vatIdStringVAT identification number (Umsatzsteuer-IdNr., format DE123456789)
commercialRegisterStringFull Handelsregister entry (court + register number), e.g. "Amtsgericht München, HRB 228747"
registerCourtStringRegistration court (Amtsgericht) only
registerNumberStringRegister number only (e.g. "HRB 228747")
domainStringThe company's root domain (deduplication key)
websiteStringThe company's canonical website URL
impressumUrlStringThe exact URL the data was extracted from
scrapedAtStringISO timestamp of extraction

Input parameters

ParameterTypeDefaultDescription
Start URLsArray5 demo companiesCompany homepages or direct Impressum URLs
DomainsStringAlternative: a plain list of domains, one per line or comma-separated
Max ResultsInteger100Maximum number of company records to return
Proxy ConfigurationObjectApify defaultMost German SME sites work fine on the default proxy; switch to residential if you see blocked requests

Example output

{
"domain": "obi.de",
"website": "https://obi.de",
"impressumUrl": "https://www.obi.de/legal/impressum",
"companyName": "OBI Home and Garden GmbH",
"legalForm": "GmbH",
"managingDirectors": "Dr. Sebastian Gundel, Jochen Ludwig",
"street": "Albert-Einstein-Straße 7-9",
"postalCode": "42929",
"city": "Wermelskirchen",
"phone": "02196 90 62 000",
"fax": "",
"email": "impressum@obi.de",
"emails": ["impressum@obi.de", "quality-management@obi.de"],
"vatId": "DE362559161",
"commercialRegister": "Amtsgericht Köln, HRB 115846",
"registerCourt": "Köln",
"registerNumber": "HRB 115846",
"scrapedAt": "2026-07-16T19:31:53.485Z"
}

How the extraction works

German Impressum pages are legally required to contain the same set of facts, but the HTML shape varies enormously — from a five-line static page on a small business site to a sprawling corporate legal-notice page with dozens of unrelated navigation links. The actor handles both by:

  1. Converting the page into a line-by-line text representation (splitting on block elements like <p>, <div>, <li>, <br>), since some sites put the whole address on one line and others break it across several.
  2. Matching legally-standardized label patterns (Geschäftsführer, Handelsregister, Amtsgericht, USt-IdNr., Telefon, Fax) rather than relying on CSS selectors, which differ on every site.
  3. Validating that a value actually looks like the thing it claims to be (a phone-shaped string, a name-shaped string, a 5-digit postal code) before accepting it — this filters out navigation menu items and unrelated page content that happen to contain the same keywords.
  4. Decoding common email obfuscation techniques: mailto: links, Cloudflare's data-cfemail protection, and manual obfuscation like info[at]example[dot]de.

Cost estimate

Pricing is pay-per-result. Each run is a lightweight Cheerio-based crawl (no browser rendering), so compute cost per company is negligible — the vast majority of the cost is the per-result lead price, not compute.

Limitations

  • Extraction is regex/pattern-based against legally standardized wording. It's tuned against a wide range of real German company Impressum pages (from small businesses to DAX corporations) and handles the vast majority of layouts, but an unusually worded or heavily restructured page can still result in a missing field — check managingDirectors, street, phone, and fax in particular, since these are more free-form than the labeled vatId / commercialRegister fields.
  • Sole proprietors and freelancers (Einzelunternehmer) without a Handelsregister entry or a VAT ID will have those fields empty — that's correct behavior, not a bug, since the underlying Impressum genuinely has no such data.
  • Sites protected by aggressive anti-bot systems (Cloudflare/Akamai challenge pages) may need a residential proxy — switch Proxy Configuration if you see blocked requests in the run log.
  • One record per unique domain. If a company runs its Impressum on a separate legal-entity domain per brand, scrape each brand domain separately.
  • Handelsregister Scraper — official German commercial register data (Handelsregister), a complementary source to this actor's Impressum-page extraction.
  • WLW Scraper — B2B supplier and company data from wlw.de (Wer liefert was).
  • KVK Scraper — company data from the Dutch Chamber of Commerce, for the equivalent Dutch use case.

Data source and legality

This actor reads only the Impressum page, which German law (§ 5 TMG) requires every commercial website to publish publicly, without login or paywall. No scraping of login-protected areas, no bypassing of any access control. The data itself (company name, address, register entry) is information the business is legally obligated to disclose to the public.

Need this data on a schedule, or a custom version?

We run this scraper as a managed service for businesses: scheduled runs, deduplication, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with your exact fields and filters, or combine multiple sources into one feed.

See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 300+ European web scrapers and answer within one business day.