Free Imprint Scraper – Website Contact Details, Email & VAT avatar

Free Imprint Scraper – Website Contact Details, Email & VAT

Pricing

Pay per usage

Go to Apify Store
Free Imprint Scraper – Website Contact Details, Email & VAT

Free Imprint Scraper – Website Contact Details, Email & VAT

Free, up to 10 websites per run: reads the imprint (Impressum, legal notice) of sites in Germany, Austria, Switzerland – company name, address, register number, VAT number checked in EU VIES, email, phone, socials. Over 10 sites per run: perceptr0n/imprint-impressum-website-contact-scraper.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Perceptron Data

Perceptron Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Free Imprint & Contact Check

New (13 October 2026): fewer dead ends – switch on web_fetch. Sites that block bots, don't answer or need JavaScript then get a second pass through Apify's Web Fetch, rendered in a browser where needed and billed by Apify on your account – in a platform test of the same code, 8 of 9 such sites came back complete with a VIES-valid VAT ID.

Paste up to 10 website domains, get one company row each, free: name, address, register number, VIES-checked EU VAT ID, emails and phones. It is the same row the paid Imprint & VAT Check returns – nothing held back.

Limits: 10 websites per run. A row is only as complete as the site's imprint – a missing imprint, a blocked site or a timeout is named in the row. Swiss UIDs cannot be checked against VIES.

WebsiteStatusCompanyRegisterVAT ID (VIES)E-mail
liebherr.comfoundLiebherr-International Deutschland GmbH, Biberach an der RißHRB 640080DE811154028 – validinfo.lho@liebherr.com (written with Cloudflare's e-mail protection, decoded like a browser does)
frischpack.defoundFrischpack GmbH, TuntenhausenHRB 19182DE127913213 – validinfo@frischpack.de
tuwien.atfoundTechnische Universität Wien, Wien (AT)–ATU37675002 – valid, name matches the VAT registerpr@tuwien.ac.at

Local test run of 12 October 2026 with the default input and the current version: 3 websites in 2.9 seconds.

What you are not charged for: anything – this actor has no actor fee. A run uses a little platform time on your Apify account: $0.0003 to $0.007 per run, measured on the platform between 5 and 12 October 2026, which Apify's free monthly credit covers. Duplicates (firma.de, https://www.firma.de/) are merged first, so they never use up one of your ten.

How to use – step by step

  1. Click Try for free on this page (a free Apify account is enough) – the form opens with three example websites.
  2. Paste up to 10 domains into Websites, one per line – full URLs are fine. No list? Type a trade and a place into Search: a trade and a place, e.g. Zahnärzte in Hamburg.
  3. Optional: enter Your own EU VAT ID to get a VIES consultation number per check.
  4. Click Start. The three example websites took 2.9 seconds in a local test run on 12 October 2026.
  5. Open the Output tab and export as CSV, Excel or JSON. The run report OUTPUT in the key-value store lists duplicates, unusable entries and websites beyond the first ten.

Free Imprint & Contact Check output: liebherr.com, frischpack.de and tuwien.at with status, company, city, register number, VAT ID with VIES result and e-mail – run of 12 October 2026

You have the domains. Paste them – one row per distinct website, the first ten. Duplicates are merged first, so they never use up one of your ten.

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

{ "search": "Zahnärzte in Hamburg" }

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, Hotel, Elektriker and so on, including plurals. Places can be a city, district, county or state.

Measured on the platform, 28.09.2026, five companies per search: Steuerberater Wien 5/5 with a name and 4 with an e-mail, Rechtsanwälte München 5/5 and 4, Hotels Berlin 4/5 and 1, Dachdecker Landkreis Rosenheim only 1 company at all, and a whole federal state fails outright. City-sized searches work; rural districts are thin.

Not every business is on the map, and not every entry has a website – measured 28.09.2026, hotels in Berlin 76 %, dentists in Hamburg 52 %, bakeries in Munich 35 %. OpenStreetMap's query service is volunteer-run and throttles hard; a busy moment produces a clear message instead of an empty result. Every discovered row carries

dataSource: "© OpenStreetMap contributors"
and dataLicense: "ODbL 1.0", because that licence requires it.

What you get per website

Example values are from a real run of the default input (frischpack.de, 12 October 2026):

FieldExample
input, status, reasonfrischpack.de, found, imprint
companyName, legalFormFrischpack GmbH, GmbH
street, postalCode, city, countryMailling 11, 83104, Tuntenhausen, DE
registerType, registerNumber, registerCourtHRB, HRB 19182, Traunstein
vatId, vatStatus, vatChecked, vatValidDE127913213, valid, true, true
vatCheckedAt, vatRequestDatewhen it was checked and VIES's own answer timestamp
vatRegisteredName, vatRegisteredAddresswhat the tax register holds, where the member state discloses it
email, allEmails, phone, allPhones, faxinfo@frischpack.de, +49 8065 189-0, +49 8065 189-89 – up to 5 each
socialProfilesLinkedIn, Xing, Facebook, Instagram, X, YouTube, TikTok
impressumUrl, foundVia, evidence, coveragehttps://www.frischpack.de/impressum, footer link, why it counts as the legal notice, what was checked
checkedAt, schemaVersionwhen the row was made, "2"

Nothing is held back: a free row contains exactly what a paid row contains.

CountryDuty to publishRegister identifier
🇩🇪 Germany§ 5 DDGHRB, HRA, VR, GnR, PR + Amtsgericht
🇦🇹 Austria§ 5 ECG, § 25 MedienGFN 123456a + Firmenbuchgericht
🇨🇭 SwitzerlandUWG Art. 3(1)(s)CHE-123.456.789 + Handelsregister

Honest about what you get back

Every row carries status (found / not_found / error) and a reason:

  • imprint – the legal notice was read. contact_page – no legal notice, the contact page was read instead (not marked as a legal notice).
  • no_imprint – the site answered, but no legal notice was found; coverage lists what was checked.
  • blocked (refuses automated clients), js_only (legal notice drawn by JavaScript – contact data from the footer, the site's JSON-LD or the contact page is still returned, marked in contactSource), timeout, unreachable, dns (domain does not exist – known in under a second, not after 45). Before a site counts as js_only, the sitemap, linked sub-pages of a legal-notice overview and a public WordPress API are tried. With web_fetch switched on, blocked, timeout, unreachable and js_only sites are searched once more through Apify's Web Fetch (see "Does it need a proxy?").
  • VAT: vatStatus is valid or invalid only when VIES answered; unavailable means VIES was down (tried three times, plus a second pass at the end of the run) – validity unknown, not invalid. Swiss numbers are not_checked: VIES covers EU VAT IDs only.

404 pages, start pages and bot-challenge pages are never passed off as a legal notice. You never get an empty row without an explanation of why it is empty.

This actor is not affiliated with or endorsed by the European Commission, which runs VIES.

Use it from code (Python, JavaScript, cURL)

Get your API token under Settings → API & Integrations in Apify Console.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("perceptr0n/free-website-contact-imprint-scraper").call(run_input={
"websites": ["liebherr.com", "frischpack.de", "tuwien.at"],
})
# apify-client 3.x; with versions 1–2 use run["defaultDatasetId"]
for row in client.dataset(run.default_dataset_id).iterate_items():
print(row["input"], row["status"], row.get("companyName"), row.get("vatId"), row.get("vatStatus"))

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('perceptr0n/free-website-contact-imprint-scraper').call({
websites: ['liebherr.com', 'frischpack.de', 'tuwien.at'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((row) => [row.input, row.status, row.companyName, row.vatId, row.vatStatus]));

cURL – one call, rows in the response:

curl -X POST "https://api.apify.com/v2/acts/perceptr0n~free-website-contact-imprint-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"websites": ["liebherr.com", "frischpack.de", "tuwien.at"]}'

Use it from an AI agent (MCP)

Add the Apify MCP server with this actor as a tool to Claude, Cursor, VS Code or any other MCP client:

https://mcp.apify.com?tools=perceptr0n/free-website-contact-imprint-scraper

The client signs in to Apify on first connection, or you set the header Authorization: Bearer <APIFY_TOKEN>. The agent sends up to 10 websites and reads status, companyName, vatId and vatStatus per website. No actor fee; only the platform time of each run counts against your Apify plan. For more than 10 websites per call, use the paid Imprint & VAT Check.

Need more than 10 websites?

Give it more and it says so where you look. A test with 45 entries (39 distinct websites) ended with the status message "Free edition: 10 of 39 websites processed (10 per run). The other 29 are listed in OUTPUT – unlimited version: …", and the run report (OUTPUT in the key-value store) lists every website that was not processed, with counts per status for the ones that were.

The unlimited edition is the same code without the cap, at $5.01 per 1,000 websites on the Apify free plan ($0.01 per run start plus $0.005 per website):

👉 Imprint & VAT Check

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

Data protection

  • For companies with a legal form (GmbH, AG …), the imprint holds company data: name, legal form, address, register number, VAT ID. For sole traders, name and address are personal data.
  • Person names are off by default. Managing directors are personal data under GDPR; include_person_names must be switched on deliberately. While it is off, a sole trader's name is not returned as the company name either, and personal addresses like firstname.lastname@ are left out.
  • 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. Worth knowing before you buy an address list from anyone.

FAQ

Is it really free? Yes – no actor fee at all. Runs use a little platform time ($0.0003 to $0.007 per run, measured 5–12 October 2026), which Apify's free monthly credit covers. You get up to 10 websites per run, with exactly the same fields as the paid edition.

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).

I have no list of websites. Can it find companies? Yes. Type a trade and a place into search – for example

Zahnärzte in Hamburg
– and businesses are looked up in OpenStreetMap, then enriched from their imprints.

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.

Is the VAT number checked or just copied? Checked, live, against the EU's official VIES service. vatChecked is true only when VIES actually answered; vatStatus says valid, invalid, unavailable (VIES down – validity unknown) or not_checked.

What happens if a website has no imprint? You get a row with status: not_found and, if you allowed it, whatever the contact page held. A blocked, dead or JavaScript-only site is an error row with its reason. You are never left guessing.

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

Does it need a proxy? It uses none. No login, no cookies, no API key, no CAPTCHA solving in this actor. Sites it cannot read directly – they turn away automated clients, do not answer our server or draw their pages with JavaScript – are reported as blocked, timeout, unreachable or js_only. Switch on web_fetch to search them once more through Apify's own Web Fetch actor: start page (German version first), the site's legal-notice links and a contact page, at most 6 pages per site; JavaScript pages are rendered in a browser there. It runs on your Apify account and Apify bills it there: $0.0015 per delivered page on the free plan plus $0.00005 per call start (Apify Store, 13 October 2026) – at most about $0.01 per such site. Off by default, so this actor stays free unless you switch it on. Test on the Apify platform, 13 October 2026 (same code, paid edition): of nine sites our own requests could not read, eight came back complete with a VIES-valid VAT ID.

Changelog

  • 13 October 2026 (evening) – With web_fetch switched on, Apify's Web Fetch now covers every site this actor cannot read directly: besides sites that refuse automated requests also sites that do not answer our server and sites that draw their legal notice with JavaScript, which are rendered in a browser there – at most 6 pages per site (before: 3, refusing sites only). Rows of such sites now say in note that web_fetch would search them once more. Footer links labelled "Impressum / AGB" are followed (idealo.de).
  • 13 October 2026 – International sites that show visitors from abroad another country's version (Apify runs in the US; haribo.com then linked the legal notice of HARIBO of America) are read in their German version when the start page names one on the same site – the note says so. A "Website-Development by:" credit is no longer taken as the company name.
  • 13 October 2026 – New option web_fetch (off by default): sites that refuse automated requests are read through Apify's Web Fetch, billed by Apify on your account ($0.0015 per delivered page).
  • 12 October 2026 – Repairs from a field-by-field sample against the source: imprint links written with HTML entities are followed (voestalpine.com was reported without one); a bot-challenge page is reported as blocked, not as "no imprint"; when a legal notice lists several group companies, name, address, register number, VAT ID, phone and e-mail come from the publisher's block only (verbund.com); a legal notice on another domain is read when the start page links it as its own and it names the site's company (note says so); e-mail addresses behind Cloudflare's e-mail protection or written as "info (at) …" / "office @ …" are read; phone numbers with labels such as "Infoline" or "p:" or alone on their line, "FIRMENBUCH-NUMMER" and names like "… AS GmbH" are recognised; an Austrian company gets its Firmenbuch number, not a subsidiary's HRB; trademark sentences and menu entries are no longer taken as the company name; an unfilled template legal notice ({{phone}}) gives no data. A run with a time limit of two minutes or less now checks websites instead of stopping before the first one.
  • 12 October 2026 – Sole traders: the VAT register gives the owner's own name, often surname first ("Surname Firstname"). With person names switched off, that name is now withheld and companyNameWithheld says why; before, it could appear as the company name. The same applies to a business that OpenStreetMap lists under its owner's name in search runs.
  • 12 October 2026 – JavaScript sites: the imprint is now also found through the sitemap, the pages an imprint overview links to and the public WordPress API; contact data a site shows without JavaScript is kept and marked in contactSource.
  • 12 October 2026 – A VIES outage is reported as unavailable, never "invalid". Duplicates are merged before counting, so the ten places go to ten different websites; the status message and OUTPUT say what was left out. Every row has status, reason, source page and check time.

Auf Deutsch: Impressum-Daten kostenlos auslesen

Bis zu 10 Domains rein, je Website eine Firmenzeile raus – kostenlos: Firmenname, Anschrift, Handelsregisternummer, VIES-geprüfte EU-USt-IdNr., E-Mail und Telefon aus dem Impressum. Es ist dieselbe Zeile wie im bezahlten Impressum- & USt-Check, nichts wird zurückgehalten.

Doppelte Einträge werden vorher zusammengeführt und verbrauchen keinen der 10 Plätze; fällt VIES aus, steht unavailable in der Zeile – nie „ungültig“. Schweizer UIDs kennt VIES nicht. Statt einer Domainliste geht auch eine Suche nach Branche und Ort, etwa Steuerberater in Wien; die Firmen kommen dann aus OpenStreetMap. Für mehr als 10 Websites gibt es die unbegrenzte Ausgabe (Link oben).

More from Perceptron Data

ActorWhat it does
Imprint & VAT CheckThe unlimited edition: the same company row for any number of websites
Advertiser Check (Google & Bing)Company list in, one row per company out: Google ads, Bing ads, ad counts, accounts
PDF to MarkdownPDF, Word, Excel and PowerPoint to Markdown for AI – tables as JSON, OCR for scans
Research AgentA question in, cited passages out – every source graded by evidence level
App Store & Google Play DataApp IDs or App Store keywords in, one row per app out, plus App Store reviews
Arbeitsagentur JobsGerman job listings from the Jobbörse of the Bundesagentur für Arbeit
kununu Employer DataEmployer score vs. industry, salary ranges, benefits and reviews for DACH companies
Messe München ExhibitorsExhibitor lists of bauma, IFAT, BAU and more
Koelnmesse ExhibitorsExhibitor lists of Anuga, ISM, imm cologne and more
TED TendersEU public tenders and contract awards from TED
MaStR Energy AssetsSolar, wind and storage units in Germany with operator and capacity
EUDAMED Medical DevicesEU medical devices, manufacturers and certificates
Data Source FinderFree: tells you which ready-made scraper covers your data source

Support

Bug reports are welcome in the Issues tab.