EU Impressum & Legal Notice Extractor: VAT, Register, Directors avatar

EU Impressum & Legal Notice Extractor: VAT, Register, Directors

Pricing

from $2.40 / 1,000 company details extracteds

Go to Apify Store
EU Impressum & Legal Notice Extractor: VAT, Register, Directors

EU Impressum & Legal Notice Extractor: VAT, Register, Directors

Extract legal company details from EU Impressum / mentions légales / aviso legal / note legali / colofon pages: legal name, form, address, directors, VAT ID (VIES-checked), trade register, email, phone. Per-field confidence. $0.003 per site found.

Pricing

from $2.40 / 1,000 company details extracteds

Rating

0.0

(0)

Developer

Southern Data

Southern Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Security

Limited permissions

Share

Give it a list of European company websites. For each one it finds the legally required company disclosure page (Impressum, mentions légales, aviso legal, note legali, colofon, legal notice) and returns the company details as one clean row: legal name, legal form, registered address, managing directors / representatives, VAT ID (format-checked and optionally confirmed in the EU's official VIES service), trade-register court and number, email and phone. Every field comes with a confidence level and the source URL.

  • Domain in, company details out. mymuesli.com, https://www.agatha.fr, a direct link to the legal page (https://acme.de/impressum) or an email address (info@acme.de → acme.de).
  • Built for DE, AT, CH, FR, IT, ES and NL. Knows Handelsregister / Firmenbuch / UID / RCS & SIREN / REA & P.IVA / Registro Mercantil & CIF / KvK & BTW formats and their usual labels.
  • VAT IDs validated. Check digit verified for DE, AT, FR, IT, ES, NL, BE, LU, PL, DK, PT, SE, FI, SK and Swiss UID (pattern check for the other EU states); optional live check in VIES (European Commission, free and public) with the registered name and address where the country publishes them.
  • Honest output. high / medium / low confidence per field, notes that explain anything missing, and nothing charged when no company details are found.
  • Polite. Reads up to 4 pages per site by default (max 8), one at a time, respects robots.txt, identifies itself with its own user agent, and never bypasses bot protection or logins.

Pricing

EventPriceWhen
legal-notice-extracted$0.003A website where company details were found (legal name, a valid VAT ID or a register number)

Store discount tiers: free-plan and Bronze users pay the prices above. Silver gets 10% off and Gold (and higher) gets 20% off.

1,000 websites cost at most $3.00, and usually less, because you only pay for sites where details were found. Free: dead / parked / blocked / unreachable sites, sites with no readable legal notice, address-only notices (sole traders), invalid input, duplicates and anything not processed. Set Maximum cost per run and the Actor stops cleanly there; the rest of the list goes to the REMAINING record, free.

Quick start

  1. Click Try for free.
  2. Paste websites, one per line, or a link to a CSV / TXT file or a Google Sheet (shared as "Anyone with the link can view") in websitesFileUrl. A column named website, url, domain, homepage (or similar) is used automatically.
  3. Click Start. Open the Output tab: Overview, With confidence, VAT & register, Not found / not readable or All fields (CSV export). Download as CSV, Excel or JSON.

Via API:

curl -X POST "https://api.apify.com/v2/acts/southern-data~legal-notice-extractor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"websites":["mymuesli.com","https://www.agatha.fr","pastasgallo.es"]}'

Example row

A real row (input mymuesli.com), trimmed:

{
"domain": "mymuesli.com",
"legalNoticeUrl": "https://www.mymuesli.com/policies/legal-notice",
"companyName": "mymuesli AG", "companyNameConfidence": "high",
"legalForm": "AG",
"addressFull": "Sailerwöhr 16, 94032 Passau, DE", "addressConfidence": "high",
"representatives": "Max Wittrock", "representativeRole": "Vorstand",
"vatId": "DE256344371", "vatIdFormatValid": true, "viesStatus": "valid",
"registerCourt": "Amtsgericht Passau", "registerType": "HRB", "registerNumber": "HRB 11421",
"email": "support@mymuesli.com",
"companyCountry": "DE", "language": "de",
"chargedEvents": "legal-notice-extracted"
}

French rows add siren and often shareCapital; Spanish rows give the Registro Mercantil entry (Tomo …, Folio …, Hoja …); Dutch rows give the KvK number.

What each field means

FieldMeaning
companyName, legalFormLegal entity name as written on the page, and its form (GmbH, AG, SAS, SARL, S.r.l., S.p.A., S.L., S.A., B.V. …)
street, postalCode, city, country, addressFullRegistered / postal address given in the notice
representatives, representativeRoleManaging directors, board, gérant, amministratore, administrador, bestuurder… as labelled on the page
vatId, vatIdFormatValid, vatIdCheckVAT ID normalised to CC123…; checksum = check digit verified, format = pattern only (countries without a public check digit)
viesStatus, viesName, viesAddressvalid / invalid / unavailable / not_applicable (Swiss UID, non-EU). Germany and Spain never return name/address in VIES
registerCourt, registerType, registerNumber, sirene.g. Amtsgericht München + HRB 12345; Landesgericht Graz + FN 123456a; RCS Paris + 828 378 570; KvK 55248926; REA BO-253236
email, phoneContact details from the legal page (homepage footer as fallback)
…Confidencehigh = labelled and close to the company's core details; medium = found without a label or on a secondary page; low = a guess, check it
legalNoticeUrl, foundBySource page and how it was found: link, guessed-path, homepage (footer), input-url
notesPlain-language explanation of anything unusual or missing
siteStatusok, dead, parked, blocked, unreachable, robots_disallowed, http_error, tls_error, redirects_to_platform, not_html

Accuracy (tested 1 Nov 2026)

Measured on a held-out set of 56 real business websites (8 per country: DE, AT, CH, FR, IT, ES, NL; small firms and large brands), never used for tuning, checked field-by-field by hand. 11 of the 56 couldn't be read at all (dead, bot-protected, unreachable). These were free.

FieldFirst run on unseen sites (build 1.0.4)After fixes (build 1.0.8, tuned on those errors, so optimistic)
Legal name exactly right (when given)60%97–100%
Legal form95%100%
Address (street + postcode) right84%92%
VAT ID right (when given)100% (88% found)100% (96% found)
Register number right100% (95% found)100% (100% found)
Representatives25% found4/4 found on the sites where they're named
Sites with a legal entity where details were found86%83% (two now report "refused automated access" instead of guessing)

By country / language: Austria and Germany are strongest (standardised Impressum: name, address, UID, Firmenbuch/HRB almost always right). France is good (RCS/SIREN reliable; names sometimes appear only in prose or with the form first). Spain is good for name, CIF and Registro Mercantil, weaker for addresses written inside long sentences. Italy often has only a footer line (Ragione sociale – P.IVA – REA), so the address is often missing. Switzerland usually has no VAT/register number in the notice, so expect name + address only. Dutch sites often have no colofon (KvK and BTW numbers usually sit in the footer, on the contact page or in the terms); in the test only 2 of 8 Dutch sites published a legal entity at all, and the Actor found 1 of them. Treat NL accuracy as unproven.

Representatives are the weakest field, because many notices don't name them. In the test they came back for 4 of 7 Austrian, 2 of 5 French and 1 of 6 German sites, and for none of the Swiss, Italian, Spanish or Dutch ones. When a name was returned it was right in the final build; in the first run 1 of 2 was wrong.

Treat low confidence values as hints, not facts. Accuracy files: test/accuracy/ in the source.

Limits (read before buying)

  • JavaScript-only sites (single-page apps that render the legal notice in the browser) can't be read: the Actor does not run a browser. They are flagged jsHeavy with a note and are free.
  • Bot protection is never bypassed. Sites behind Cloudflare/Akamai checks, or that answer HTTP 403 to automated visitors, are reported as blocked (or with a note on the legal page) and are free.
  • robots.txt is respected. If a site disallows crawlers, it isn't read (robots_disallowed, free).
  • Not a registry lookup. Data comes from the company's own website and may be out of date. For legally binding checks, verify against the official register (Handelsregister, Firmenbuch, Infogreffe, Registro Mercantil, KvK, Registro Imprese, Zefix). VIES confirms only that a VAT number is active; its name can lag behind renames.
  • Groups and agencies: if a site's notice names a parent company, a franchise owner or a publisher, that's what you get. The web designer, hoster, data-protection officer and supervisory authority are filtered out, but unusual layouts can still confuse it (check low confidence).
  • Sole traders / freelancers often give only a person's name and address. The address and contacts are returned, but nothing is charged unless a company name, VAT ID or register number is found.
  • Text in images or PDFs isn't read. Some notices show the address or VAT ID as a picture (anti-spam) or link a PDF.
  • Branch vs head office: if a notice lists a branch address before the registered office, you may get the branch (seen on 1 of 35 test sites).
  • Other EU countries (BE, LU, PL, PT, Nordics…) work for VAT IDs and many names but weren't part of the accuracy test.

Personal data and GDPR

Legal notices are disclosures required by law (e.g. § 5 DDG in Germany, § 25 MedienG / § 5 ECG in Austria, LCEN art. 6 in France, art. 7 D.Lgs. 70/2003 in Italy, LSSI art. 10 in Spain). They are public so that customers and authorities can identify who runs a website. They can still contain personal data, mainly the names of managing directors and sole traders and sometimes direct emails and phone numbers. You are responsible for using this data lawfully: have a legal basis (usually legitimate interest for B2B use), respect objection and unsubscribe requests and local direct-marketing rules (e.g. UWG § 7 in Germany), keep only what you need, and don't use it to profile private individuals. This Actor only reads public pages and doesn't store your results outside your own Apify account.

Daily self-test

The Actor has a built-in health check (selfTest: true). It tests the VAT, register and name rules on fixed samples, crawls a built-in test site in full, checks that VIES answers, and does two live reads (example.com and a host that can't exist). It's free. It runs every morning, so a regression in VIES or a parsing rule is caught before customers see it.

Support

Found a site where the details are wrong? Open an issue with the URL and the row. Fixes for common layouts usually ship within days.