Company Enrichment by Domain (Official Registers) avatar

Company Enrichment by Domain (Official Registers)

Pricing

from $25.00 / 1,000 company enricheds

Go to Apify Store
Company Enrichment by Domain (Official Registers)

Company Enrichment by Domain (Official Registers)

Turn domains into company profiles verified in official registers: legal name, company number, status, founding year, industry, headcount band, revenue, officers, VAT check, LEI and parent company, plus email provider, DMARC and tech stack. Every fact carries its source.

Pricing

from $25.00 / 1,000 company enricheds

Rating

0.0

(0)

Developer

Benjamin Zsigri

Benjamin Zsigri

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Give it a list of domains. Get back one company profile per domain, built from the company's own website and checked against official business registers: legal name, company number, legal form, register status, founding date, industry code, headcount band, revenue, officers, VAT validity, LEI and parent company. On top of that come the domain's email provider and DMARC policy from DNS, and the technologies the website runs.

Every value says where it came from (legal_name_source, address_source, registry_matched_by, data_sources). When the evidence is not strong enough to name the legal entity, the row says so instead of guessing.

What makes the rows trustworthy

  • The website tells us who the company is, the register tells us the facts. The crawler reads the legal notice first (Impressum, mentions légales, company information, site info) and takes the company number, VAT number and legal name the company publishes about itself. That evidence is looked up in the national register.
  • No guessed numbers. Headcount and revenue only appear when a register publishes them (for example the INSEE headcount band and the filed accounts in France, the statistical register in the Czech Republic). Nothing is estimated from LinkedIn or from the size of the website.
  • A name alone is never enough. A register hit found by name is accepted only when the register address (postcode and town) also appears on the company's website and exactly one candidate fits. Otherwise the row stays unmatched.
  • Confidence on every match. registry_match_confidence is high when an identifier from the company's own website led to the record and the record agrees with the site, and medium when name and address agreed.

Coverage

CountrySourceFound byOfficersSize and financials
FranceRecherche d'entreprises (INSEE Sirene, RNE)SIREN, SIRET or VAT on the website; or name and addressYes (natural persons)INSEE headcount band; revenue and net income when filed publicly
United KingdomCompanies House (public service pages, or the REST API with your key)Company number on the website; or name and addressActive directors and secretariesNot published
Czech RepublicARES (core record, statistical register, commercial register)IČO or DIČ on the website; or name and addressCurrent statutory bodyCZSO headcount band
FinlandYTJ open data (PRH)Y-tunnus or VAT on the website; or name and addressNot in the open dataNot in the open data
PolandKRS extract and the Ministry of Finance VAT listKRS, NIP or REGON on the websiteNot available (masked in the extract)Not available
SwitzerlandUID register (Federal Statistical Office)UID (CHE number) on the website; or name and addressNot availableNot available
NorwayEnhetsregisteret (Brønnøysund)Organisation number on the website; or name and addressCEO and boardExact employee count
Germany, Netherlands, Belgium, Austria and othersGLEIF LEI indexCommercial register number (HRB, KvK, ...) or legal name with a matching addressNot availableNot available
All EU countriesVIES VAT checkVAT number on the website

LEI records (with direct and ultimate parent) and VIES checks work for every country. Companies outside these registers still get the website, DNS and technology part of the profile.

Output

One row per domain. The overview columns:

ColumnExample
domainlumiere-conseil.fr
legal_name, legal_formLUMIERE CONSEIL, SAS
registry_verifiedtrue
registry_id, registry_id_type, registry_status912345675, FR_SIREN, active
registry_match_confidence, registry_matched_byhigh, company_number_on_website
country, city, postal_code, streetFR, PARIS, 75002, 12 RUE DE LA PAIX
founded_year2022
industry, industry_code, industry_sectionActivities of head offices; management consultancy activities, 70.22Z, Professional, scientific and technical activities
employees_range, employees_count, employees_source10-19, null, INSEE tranche d'effectif
revenue, net_income, financial_year, currency1250000, 85000, 2024, EUR
vat_id, vat_validFR65912345675, true
lei, parent_company, ultimate_parent_companyfrom GLEIF when the company has an LEI
key_person_name, key_person_roleClaire Martin, Président
email_provider, email_security_gateway, dmarc_policyGoogle Workspace, null, reject
cms, ecommerce_platform, analytics, marketing_toolsWordPress, null, Google Analytics, null
primary_email, primary_phone, linkedinfrom the website

The full row adds the complete register record (registry), the LEI record (lei_record), the VIES answer (vat_validation), all key people with their source (key_people), the DNS footprint (email_and_dns), every detected technology with its evidence (technologies), contacts, the identifiers found on the website, a per-register lookup trace (registry_lookup) and the crawled pages. The example above is a fictional company.

Input

  • Domains or websites: acme.com, https://www.acme.com/about, either works. Duplicates are merged.
  • Dataset import: point to any dataset with a website or domain field (CRM export, Google Maps Scraper). A company name or country in the item helps the register match, and the item's identifying fields are copied to source_item. Items without a website are skipped; a Google Maps listing link is never taken for the website.
  • Switches for each source (registers, LEI, VIES, DNS, technologies, contacts), so you only wait for what you use.
  • Companies House API key (optional): with your own free key, UK lookups use the official REST API.

Where your list can come from

  • Google Maps Scraper: set datasetId to its run's dataset. This Actor never searches Google Maps itself; it works on the dataset you bring.
  • A CSV file or spreadsheet: paste the website or domain column into websites, one per line.
  • Your CRM: export the accounts and paste the website or domain column, or push the rows into an Apify dataset with the API and set datasetId to it. datasetUrlField names the column when it is not one of the usual names.
  • Make, n8n, Zapier or Clay: start the Actor through the Apify API (Apify also offers ready-made modules for some of these tools), pass websites in the input and read the run's dataset as the output.

Pricing

Pay per event, shown on the Actor's pricing tab:

  • company-enriched: one per domain whose website answered.
  • registry-match: one per domain identified in an official register, in the LEI index, or by a VIES-confirmed VAT number whose registered name matches the website.

Domains whose website cannot be read (blocked by robots.txt, offline, not a company website) produce a free row with the reason. When your maximum cost per run is reached, the run stops cleanly; register data that could not be paid for is left out of the row and marked registry_limited_by_cost_limit.

Access rules

  • Every website and every register API is read under its own robots.txt. If a robots.txt cannot be read, that site or register is skipped for the run, not worked around. Login pages, CAPTCHAs and other access controls are never bypassed.
  • Each register is queried below its published rate limit. A register that keeps failing is switched off for the rest of the run, so one provider's outage never stops the run.
  • Emails hidden by Cloudflare protection are flagged, not decoded.

Personal data

Officers come from public registers with name and role only. Dates of birth, private and correspondence addresses, personal ID numbers and bank account lists that some registers publish are never copied. Website contacts are limited to what the company publishes about itself. You are responsible for having a lawful basis (for example legitimate interest in B2B prospecting) and for honouring objections when you process the people in these rows.

Known limits

  • Websites that render their content only with JavaScript expose few links to the crawler; their register match depends on the legal notice being reachable as plain HTML.
  • Some companies publish their legal notice on a separate domain (for example a .legal domain); such pages are not followed.
  • Norway: at the time of writing, the register API's robots.txt could not be read from our crawler, so Norwegian register lookups are skipped while that lasts. LEI and website data still work.
  • Germany has no free register API; German companies are verified through their LEI when the Impressum shows the HRB number, and through VIES, which confirms the VAT number but does not disclose the name.
  • Poland's free VAT list allows few lookups per day; the Actor caps its use per run and prefers a KRS number found on the website.

Typical uses

  • Fill CRM company records (legal name, company number, industry, size, address) from a domain list.
  • Qualify inbound leads and B2B sign-ups by register status, age, size and parent company.
  • Segment accounts by email provider, security gateway, DMARC policy, CMS and ecommerce platform.
  • Run KYB pre-checks: does the company exist, is it active, is its VAT number valid, who are its officers.

Need it done for you?

Want this connected to your CRM or workflow, or adapted to your market? Tribloc, the team behind this Actor, builds these setups. Get in touch at tribloc.co.uk.