Impressum Extractor — HRB, Court, VAT ID (DE/AT/CH)
Pricing
from $20.00 / 1,000 imprint extracteds
Impressum Extractor — HRB, Court, VAT ID (DE/AT/CH)
Turns German, Austrian and Swiss imprints into structured legal identity: company name, legal form, register number, normalised register court, VAT ID with verified check digit, address and a § 5 DDG completeness check.
Pricing
from $20.00 / 1,000 imprint extracteds
Rating
0.0
(0)
Developer
NorthWestSouth Data
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Impressum → Legal Entity Extractor (DE / AT / CH)
Give it German, Austrian or Swiss websites. Get back who legally operates them — company name, legal form, commercial register number, register court, VAT ID with a verified check digit, and the registered address.
Every other imprint tool in this store returns contact details: an email, a phone number, a "decision maker". This one returns the legal identity — the part a KYB check, an invoice, a supplier onboarding or a compliance review actually needs.
What you get per site
| Field | Example |
|---|---|
company_name | Händlerbund Marketplace GmbH |
legal_form | GmbH · UG (haftungsbeschränkt) · GmbH & Co. KG · AG · e.K. · GbR · eG · e.V. … |
register_type / register_number | HRB / HRB 36368 |
register_court | Leipzig — normalised against the official list of ~120 German registry courts, so "AG Charlottenburg" and "Amtsgericht Berlin-Charlottenburg" become the same value |
register_court_verified | true when the court matched the official list |
vat_id + vat_id_checksum_valid | DE324949675, check digit computed offline |
street, postal_code, city, country | Kohlgartenstraße 11-13, 04315 Leipzig, DE |
represented_by | Managing director / board (see the personal-data section below) |
email, emails, phone | Contact channels from the imprint |
supervisory_authority, chamber | For regulated trades |
ddg_compliance | Which § 5 DDG disclosures are present, which are missing |
imprint_confidence | high / medium / low, so you can filter |
Measured coverage — read this before you run it
Tested against 25 real German websites:
- 60% yielded a complete legal-entity record. The other 40% failed and cost nothing.
- Of the successful extractions: legal form 100%, register number 100%, street and city 100%, company name 93%, VAT ID 93%, register court 80% (92% of those verified against the official court list), represented_by 53%, email 80%, phone 33%.
- All 14 German VAT IDs found passed the offline check-digit test.
Why the 40% fail: large retailers increasingly render their legal pages with JavaScript. Sites like dm.de and rossmann.de serve a 3–11 KB shell containing no legal text at all; conrad.de serves a 150 KB page whose imprint data is loaded afterwards. This actor reads static HTML — no browser, no proxies — so those sites are reported as failures rather than guessed at. If you need JS rendering, use a browser-based tool; it will cost more per site and run far slower.
Shopify stores are excluded by default. They keep their imprint under /policies/, which Shopify's own robots.txt disallows crawling. With respectRobotsTxt on (the default), those sites are reported as failures. That is a deliberate choice, not an oversight.
You are never charged twice — and never for a failure
- A domain extracted in an earlier run is skipped and not charged again, across all runs.
- A site with no reachable imprint, or one where no legal-entity data could be extracted, goes to a separate
FAILED-URLSdataset with the reason — free. - No hidden row limits.
Personal data: the default is restraint
An imprint for a GmbH names a managing director acting in a professional capacity. An imprint for a sole trader names a private individual, frequently at a home address. Those are not the same risk, so this actor treats them differently:
- Companies:
represented_byis included. - Sole traders (
e.K., Einzelunternehmen): the personal name is suppressed by default, and the record is flaggednatural_person_suppressed: true. - Set
includeNaturalPersons: trueonly if you have a lawful basis under GDPR Art. 6 and can meet the Art. 14 information duty. Regulators have fined bulk extraction of this exact kind of data.
Why this data is fair to use
§ 5 DDG (Germany), § 5 ECG (Austria) and Art. 3(1)(s) UWG (Switzerland) require every commercial website to publish these details permanently and without barriers, precisely so the operator can be identified. There is no register to license, no database right, no third-party terms of service. The company publishes this about itself, by law.
This actor reads each site's own imprint page, respects robots.txt by default, and sends one polite request per site.
Input
{"urls": ["haendlerbund.de", "thomann.de", "mymuesli.com"],"includeNaturalPersons": false,"respectRobotsTxt": true}
Example output
{"url": "haendlerbund.de","company_name": "Händlerbund Marketplace GmbH","legal_form": "GmbH","register_type": "HRB","register_number": "HRB 36368","register_court": "Leipzig","register_court_verified": true,"vat_id": "DE324949675","vat_id_checksum_valid": true,"street": "Kohlgartenstraße 11-13","postal_code": "04315","city": "Leipzig","represented_by": "Tim Arlt","email": "info@haendlerbund.de","imprint_confidence": "high","ddg_compliance": { "complete": false, "missing_fields": ["contact_phone_or_form"] }}
A note on the VAT check digit
The check digit is computed offline using the official German algorithm. That confirms the number is structurally valid — it does not confirm the ID is registered and active. The EU's VIES service, which could confirm that, forbids retransmission of its results, so it is deliberately not used here.
Pricing
Pay per successfully extracted imprint. Failures and repeats are free.
Support
A site that should work but doesn't, or a field parsed wrongly? Open an issue — parsing errors are treated as bugs and fixed.