DACH Impressum Extractor avatar

DACH Impressum Extractor

Pricing

from $8.00 / 1,000 company extracteds

Go to Apify Store
DACH Impressum Extractor

DACH Impressum Extractor

Company website in, legal company data out. Reads the Impressum of German, Austrian and Swiss websites: legal name, legal form, managing directors, address, register court and number, VAT ID (checked against VIES), phone, email and industry.

Pricing

from $8.00 / 1,000 company extracteds

Rating

0.0

(0)

Developer

Bel

Bel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Give it the website of a German, Austrian or Swiss company and get the legal company data back as a clean row: legal name, legal form, managing directors, address, register court and number, VAT ID, phone, email and industry.

The data comes from the Impressum (imprint), which the law requires on business websites in Germany, Austria and Switzerland. It is public, it follows a predictable layout and it is almost never behind bot protection. Fields are read with rules first. An AI model only fills what the rules could not read, and every value it returns must appear in the page text, otherwise it is dropped.

Use it to enrich lead lists, check who is behind a website, or prepare KYC and onboarding forms.

Copy-paste prompt for your agent

Add this to your agent's instructions or system prompt. It tells the agent when and how to use this Actor.

You can look up legal company data of German, Austrian and Swiss websites with the Apify Actor
"beltech/dach-impressum-extractor". Call it with the Apify MCP tool call-actor, then read the rows
with get-dataset-items using the returned datasetId. The run's statusMessage contains a one-line summary.
WHEN TO USE IT
- The user wants to know who is behind a website, needs the legal name, address, register number,
VAT ID or managing directors of a company, or wants to enrich a list of company domains.
- Only for companies in Germany, Austria and Switzerland. Websites of other countries return the status
"not_dach" or "no_impressum". Do not use it for private persons' profiles or social media pages.
HOW TO BUILD THE INPUT
- "urls": the company websites or bare domains, for example ["example.de", "https://www.firma.at"].
One entry per company. Up to 1000 per run. The path does not matter, the Actor finds the Impressum itself.
- Leave "useAI" and "checkVat" on true unless the user wants the cheapest possible run.
- Set callOptions.maxTotalChargeUsd to about 0.01 per URL to cap the cost.
HOW TO READ THE RESULT
- One row per input URL. Look at "status" first. Only "ok" rows contain data.
no_impressum = no Impressum page found, not_reachable = site down or invalid, blocked = the site
or its robots.txt refuses access, not_dach = the company is outside Germany, Austria and Switzerland.
- "confidence" high means name, address and a register number or VAT ID were found. For low confidence,
tell the user that the data is incomplete and name the empty fields.
- "vat_valid": true or false is the official EU VIES answer. null means not checked or VIES had no
definite answer (Swiss VAT IDs cannot be checked). Never call a null VAT ID invalid.
- "industry" is an AI estimate from a fixed list, shown with "industry_confidence". Say so.
- Use only values from the result. Never fill empty fields from memory.
- Managing directors are personal data. Use them only for a lawful purpose.

What you get

One row per input URL. Every row has the same fields.

FieldDescription
input_urlThe website as you entered it
statusok, no_impressum, not_reachable, blocked or not_dach
impressum_urlThe page the data was read from
company_nameLegal company name
legal_formFor example GmbH, UG (haftungsbeschränkt), AG, e.K., GmbH & Co. KG
managing_directorsList of managing directors, owners or board members
addressstreet, postal_code, city, country
register_courtFor example Amtsgericht München
register_numberFor example HRB 12345 or FN 123456a
vat_idVAT ID (USt-IdNr.)
vat_validVIES result: true, false, or null when not checked
phone, emailContact details from the Impressum
industryOne class from a fixed list of 23 industries
industry_confidencehigh, medium or low
confidencehigh, medium or low, based on how complete the row is
extracted_byrules or rules+ai
checked_atISO timestamp

Input

{
"urls": ["hetzner.com", "https://www.heise.de", "willhaben.at"],
"useAI": true,
"checkVat": true
}
FieldDescription
urlsCompany websites or bare domains, up to 1000
useAILet AI fill missing fields and assign an industry. Default true. Off means rules only: cheaper, lower recall
checkVatCheck found VAT IDs against the EU VIES service. Default true

An empty input runs a demo with one example website, so the Actor never fails on default values.

Example output

{
"input_url": "willhaben.at",
"status": "ok",
"impressum_url": "https://www.willhaben.at/iad/impressum",
"company_name": "willhaben internet service GmbH",
"legal_form": "GmbH",
"managing_directors": ["Mag. Sylvia Dellantonio"],
"address": {
"street": "Landstraßer Hauptstraße 97-101",
"postal_code": "1030",
"city": "Wien",
"country": "AT"
},
"register_court": null,
"register_number": "FN 271791v",
"vat_id": "ATU62224319",
"vat_valid": true,
"phone": null,
"email": null,
"industry": "Retail and e-commerce",
"industry_confidence": "high",
"confidence": "high",
"extracted_by": "rules+ai",
"checked_at": "2026-10-23T06:10:00+00:00"
}

How it works

  1. The Actor opens the home page and looks for the Impressum link in the footer and menu. If there is none, it tries the usual paths such as /impressum and /kontakt.
  2. Rules read VAT ID, register number, email, phone, address, legal form and managing directors from the cleaned page text.
  3. If fields are still empty and AI is on, one model call reads the Impressum text. Every name, street and city it returns must be found in the page text. Anything else is discarded. The industry is the only value the model may infer, from the page text and the home page title.
  4. Found VAT IDs are checked against the EU VIES service.

The Actor is polite: it follows robots.txt, makes at most one request per second to the same website and reads only the pages it needs.

Pricing

Pay per event. No platform usage is billed on top.

EventPriceWhen
Company extracted$0.008One website with a found Impressum (status ok)
VAT ID checked$0.002One VAT ID with a definite VIES answer

Rows with the status no_impressum, not_reachable, blocked or not_dach are not charged. A website with a VAT ID costs $0.010 in total.

Good to know

  • Germany, Austria and Switzerland only.
  • Public pages only. Sites that block automated access or disallow it in robots.txt return blocked.
  • Some sites load the Impressum with JavaScript or publish it as an image or PDF. Those return no_impressum or a row with fewer fields.
  • Rows with low confidence are possible, for example a company name without an address or a run with AI turned off. A row gets status ok only if it has a company name or a postal code plus city.
  • Swiss VAT IDs (MWST) are not part of VIES, so vat_valid stays null for them.
  • Names of managing directors and owners are personal data. You are responsible for using them lawfully, for example under GDPR.
  • This Actor is not affiliated with any of the companies or services it reads.

FAQ

Does it work for small businesses and freelancers? Yes. Sole proprietors, e.K., UG, GmbH & Co. KG and associations are covered. Freelancers often have no register number, so the confidence is medium.

What if the Impressum is missing? The row gets the status no_impressum and you are not charged. The Actor never invents a company.

Can I turn the AI off? Yes, set useAI to false. You then only get what the rules can read, and no industry.

How accurate is the VAT check? vat_valid is the answer of the official EU VIES service. If VIES is down, the value is null and the row is still returned.