Imprint & Impressum Scraper — Email, Phone, VAT & Company Data avatar

Imprint & Impressum Scraper — Email, Phone, VAT & Company Data

Pricing

from $0.01 / actor start

Go to Apify Store
Imprint & Impressum Scraper — Email, Phone, VAT & Company Data

Imprint & Impressum Scraper — Email, Phone, VAT & Company Data

Domains to verified company records from the imprint / Impressum / legal notice: name, legal form, address, register (HRB, FN, CHE), VAT ID checked against the EU VIES register, e-mail, phone, fax, social profiles. Germany, Austria, Switzerland. No login, no cookies, no API key.

Pricing

from $0.01 / actor start

Rating

0.0

(0)

Developer

Perceptron Data

Perceptron Data

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

4 hours ago

Last modified

Categories

Share

Imprint & Impressum Scraper — company data, emails, phones, VAT and socials

Give it a list of domains, get back a clean company record for each one. The data comes from the imprint — the Impressum, legal notice, Offenlegung — that every commercial website in Germany, Austria and Switzerland is required by law to publish, which is why it can be read reliably instead of guessed.

Every VAT ID found is then verified against the European Commission's official VIES register, so you learn not just what a company claims, but whether that number is actually registered.

No login, no cookies, no API key, no anti-bot fight. $5 per 1,000 websites.

Want to try it first? The free edition returns the identical row for up to 10 websites per run — no credit card, nothing held back.


You have the domains. Paste them — one company record comes back per entry.

You don't have the domains. Type the trade and the place instead:

{ "search": "Zahnärzte in Hamburg", "max_companies": 25 }

The businesses are looked up in OpenStreetMap, and every website found is then enriched from its imprint. About 180 trades are recognised, in German and English — dentist, Steuerberater, roofer, Bäckerei, Autohaus, Rechtsanwalt, Hotel, Elektriker, Physiotherapie and so on, including plurals. Places can be a city, a district, a county or a whole state (Hamburg, Landkreis Rosenheim, Bayern).

For a trade the list does not know, pass the OpenStreetMap tag yourself:

{ "osm_filter": "[\"office\"=\"company\"]", "location": "Wien" }

What a search actually returns

Nine searches across trades, city sizes and all three countries, run on the platform on 28 September 2026, five companies requested each:

SearchRowsWith nameWith e-mailWith VAT IDRuntime
Steuerberater Wien 🇦🇹5543103 s
Rechtsanwälte München5543102 s
Apotheken Leipzig5522130 s
Autohäuser Stuttgart553253 s
Elektriker Köln553299 s
Restaurants Zürich 🇨🇭554228 s
Hotels Berlin541134 s
Dachdecker Landkreis Rosenheim111113 s
Bäckereien Bayern (whole state)failed———104 s

What that table says, plainly: city-sized searches work, rural districts are thin, and a whole federal state is too much for the free query service. Every row always carries the website and what the map knows; the imprint fields depend on the site actually publishing one. Swiss VAT numbers are never marked valid because CHE- identifiers are outside the EU's VIES register.

What to expect from the search, honestly

  • Not every business is in OpenStreetMap, and not every entry has a website. Measured on 28 September 2026: hotels in Berlin 76 % with a website, dentists in Hamburg 52 %, bakeries in Munich 35 %. The search finds what the map knows, which is a lot for local trades and little for pure office businesses.
  • OpenStreetMap's query service is volunteer-run and throttles hard. A busy moment produces a clear message rather than an empty result, and the Actor retries across three mirrors within a fixed 100-second budget. A city answers where a federal state times out.
  • Attribution travels with the data. Every discovered row carries dataSource: "© OpenStreetMap contributors" and dataLicense: "ODbL 1.0", because that licence requires it — of you as well, if you republish.
  • The map fields (osmName, osmCategory, osmCity, osmPhone) stay in the row next to the imprint fields, so you can see what came from where. Where they disagree, the imprint wins: it is the legally binding source.

What you get per website

FieldExample
companyName, legalFormLiebherr-International Deutschland GmbH, GmbH
street, postalCode, city, countryHans-Liebherr-Straße 45, 88400, Biberach an der Riß, DE
registerType, registerNumber, registerCourtHRB, HRB 720327, Ulm
vatId, vatCountryDE811907980, DE
vatChecked, vatValidtrue, true — checked live against VIES
vatRegisteredName, vatRegisteredAddressthe name the tax register holds, where the member state discloses it
email, allEmailsinfo@liebherr.com, up to 5 addresses
phone, allPhones, faxup to 5 numbers
socialProfilesLinkedIn, Xing, Facebook, Instagram, X, YouTube, TikTok
impressumUrl, impressumFound, foundViawhere the data came from, verbatim
completeness, dataQuality0–1 and high / medium / low
representativesmanaging directors — only if you switch them on
CountryDuty to publishRegister identifier the scraper reads
🇩🇪 Germany§ 5 DDG (successor to § 5 TMG)HRB, HRA, VR, GnR, PR + Amtsgericht
🇦🇹 Austria§ 5 ECG, § 25 MedienGFN 123456a + Firmenbuchgericht
🇨🇭 SwitzerlandUWG Art. 3(1)(s)CHE-123.456.789 + Handelsregister of the canton

Four-digit Austrian and Swiss postal codes are handled as well — a German-only parser silently drops those addresses.

The VAT check is the part competitors skip

An imprint states a VAT ID. Whether it is registered is a different question, and only the member state can answer it. This actor asks VIES for every ID it finds:

  • vatValid: false on a live company is a genuine red flag for invoicing
  • Austria, Italy, Spain and most other member states also return the registered name and address, so you can cross-check the imprint against the register in the same row
  • Germany discloses validity only — no name, no address. That is a limit of the German tax authority, not of this actor, and it is reported as such
  • Swiss CHE- numbers are outside the EU system and are never checked

It costs you nothing extra and adds roughly a quarter of a second per company.

Input

{
"websites": ["liebherr.com", "frischpack.de", "tuwien.at", "sbb.ch"],
"validate_vat": true,
"allow_contact_page": true,
"include_person_names": false
}

Paste domains, full URLs or a messy copy-paste — they are normalised. One row comes back per entry, always, so your list and the result line up.

Output (shortened)

{
"input": "tuwien.at",
"website": "https://www.tuwien.at",
"country": "AT",
"companyName": "Technische Universität Wien",
"street": "Karlsplatz 13",
"postalCode": "1040",
"city": "Wien",
"vatId": "ATU37675002",
"vatChecked": true,
"vatValid": true,
"vatRegisteredName": "Technische Universität Wien",
"vatRegisteredAddress": "Karlsplatz 13 AT-1040 Wien",
"email": "office@tuwien.ac.at",
"socialProfiles": { "linkedin": "https://www.linkedin.com/school/tu-wien" },
"impressumFound": true,
"foundVia": "footer link",
"dataQuality": "high"
}

What does a run cost?

WebsitesCost
100$0.51
1,000$5.01
10,000$50.01

$0.01 per run start, $0.005 per website returned. You are charged per result row, and a row that could not be resolved still tells you why — see below.

Honesty about coverage

Not every website has a reachable imprint, and pretending otherwise would waste your money. Three things are reported rather than hidden:

  • impressumFound: false — the site publishes no legal notice, or none that could be reached. For a German site that is itself a finding: publishing one is mandatory.
  • foundVia: "contact page" — no imprint existed, so the contact page was read instead. You get the address and mail box, but the row is not marked as a legal notice. Switch allow_contact_page off if you only want real imprints.
  • foundVia: "blocked" — the site is reachable but turns away automated clients (401, 403, 405, 406, 429). No cloud scraper will get its legal notice, and you can see that instead of guessing why the row is empty.
  • foundVia: "timeout" — the site did not answer within 45 seconds. Each website gets that hard budget, so one stalling host can never hold up your run or inflate its cost.

You never get an empty row without an explanation of why it is empty.

  • Company data — name, legal form, address, register number, VAT ID — is not personal data and is published under a statutory duty.
  • Person names are off by default. Managing directors and editorial contacts are personal data under GDPR; include_person_names must be switched on deliberately, and the input form says so.
  • Only publicly reachable pages are fetched, at a polite request rate, with no login and no circumvention of any access control.
  • Using contact data for cold e-mail in Germany requires prior consent under § 7 UWG. That is your call to make, not this actor's — but you should know it before you buy a list of addresses from anyone.

Auf Deutsch: Impressum-Daten aus Websites extrahieren

Dieser Actor liest das Impressum von Firmen-Websites aus Deutschland, Österreich und der Schweiz und macht daraus je Website einen sauberen Firmendatensatz: Firmenname, Rechtsform, Anschrift, Handelsregister (HRB/HRA mit Amtsgericht, österreichisches Firmenbuch, Schweizer UID), USt-IdNr. live gegen das EU-VIES-Register geprüft, E-Mail, Telefon, Fax und Social-Media-Profile.

Ohne eigene Domainliste genügt eine Suche wie Zahnärzte in Hamburg: Die Firmen werden über OpenStreetMap gefunden und anschließend aus ihrem Impressum angereichert.

Typische Anwendungsfälle: Adresslisten bereinigen und anreichern, Lieferanten- und Kundenstammdaten prüfen, USt-IdNr. verifizieren, CRM-Pflege. Hinweis: Werbe-E-Mails an Firmen brauchen in Deutschland nach § 7 UWG eine vorherige Einwilligung.

FAQ

Is there an API for German company data? Not a free official one. The imprint is the only company record that every German, Austrian and Swiss business must publish itself, which is what makes this approach work without a paid register licence.

What is an Impressum? The legal notice a commercial website must carry: who runs it, where they are registered, how to reach them. In Germany it is required by § 5 DDG, in Austria by § 5 ECG, in Switzerland by UWG Art. 3(1)(s).

Does it work for Austrian and Swiss sites? Yes — Firmenbuch numbers, Swiss UIDs and four-digit postal codes are all parsed, and the country field tells you which set of rules applied.

Can I get the managing director's name? Yes, via include_person_names, but read the GDPR note first. It is off by default on purpose.

Is the VAT number checked or just copied? Checked, live, against the EU's official VIES service — and vatChecked tells you whether the check actually ran.

What happens if a website has no imprint? You get a row with impressumFound: false and, if you allowed it, whatever the contact page held. You are never left guessing.

Can I feed it 50,000 domains? Yes. Requests run concurrently with a polite delay; cost scales linearly at $5 per 1,000.

Does it need a proxy? No. No login, no cookies, no API key, no CAPTCHA.

ActorWhat it does
Free Website Contact & Imprint ScraperFree edition: up to 10 websites per run, same fields
Google Ads Transparency ScraperWhich companies advertise on Google, how many ads, who runs them — plus every ad and a monitoring mode
PDF & DOCX to Markdown ConverterPDF, Word, Excel and PowerPoint to Markdown for AI — tables as JSON, OCR for scans
Arbeitsagentur Jobs ScraperJobs from the Bundesagentur für Arbeit Jobbörse via the official API
kununu ScraperEmployer reviews, ratings, salaries and benefits for DACH companies
TED Tenders APIEU public tenders from TED — all 27 member states, CPV and deadline filters
Marktstammdatenregister (MaStR) ScraperSolar, wind and battery storage plants in Germany with operator and capacity
EUDAMED ScraperEU medical devices, manufacturers and notified-body certificates (MDR/IVDR)
Messe München Exhibitor List ScraperExhibitor lists of bauma, IFAT, BAU, automatica, ceramitec and more
Koelnmesse Exhibitor List ScraperExhibitor lists of Anuga, ISM, imm cologne, interzum, ORGATEC and more
App Store & Google Play ScraperRatings, reviews and keyword rankings from both app stores in one dataset
DACH & EU Data Source FinderFree: tells you which ready-made scraper covers your data source