EU Company Registry Search – France, Norway, Finland, Czechia avatar

EU Company Registry Search – France, Norway, Finland, Czechia

Pricing

from $2.00 / 1,000 company records

Go to Apify Store
EU Company Registry Search – France, Norway, Finland, Czechia

EU Company Registry Search – France, Norway, Finland, Czechia

Reliable registry lookups: "not found" and "source down" are separate free status rows, never a silent empty result. Official FR SIRENE, NO Brreg, FI PRH/YTJ, CZ ARES by name or number: registration and VAT number, legal form, status, address, NACE, employees.

Pricing

from $2.00 / 1,000 company records

Rating

0.0

(0)

Developer

Liora Blyth

Liora Blyth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

EU Company Registry API – France, Norway, Finland, Czechia (Official Data)

Look up companies in four official European business registers with one input – France (SIRENE/RNE), Norway (Brønnøysund), Finland (PRH/YTJ) and Czechia (ARES). Search by name or paste registration / VAT numbers and get one clean, unified record per company.

  • ✅ Never a silent empty dataset: if a source is down you get a free status: "error" row naming it; if nothing matched you get a free status: "no_results"-type row saying so. Errors and status rows are never charged.
  • ✅ Official open-data APIs only – no scraping of websites, no login, no proxies needed
  • ✅ One clean, documented schema across all sources
  • ✅ Pay only for results: $0.002 per company ($2.00 per 1,000). Errors are free.

Coverage

  • Registers: France – INSEE SIRENE / RNE via recherche-entreprises.api.gouv.fr; Norway – Brønnøysund Enhetsregisteret (data.brreg.no); Finland – PRH/YTJ open data API v3; Czechia – ARES (ares.gov.cz). No other countries (e.g. DE, NL) yet.
  • Lookups: company name (query) or registration numbers – SIREN/SIRET, Norwegian org.nr, Finnish Y-tunnus, Czech IČO.
  • Fields: country, registry, registration number, VAT number, name, trade names, legal form (+code), status (active/ceased/bankrupt/in liquidation), registration/ceased date, address, NACE activity code + description, employees band, open establishments, website, revenue/net income/financial year (where published), source URL, matchedBy, fetchedAt. Sole traders (natural persons) are skipped unless includeSoleTraders is on.

When a source is down – error, not empty

  • Each register is queried independently, with retries on timeouts/429.
  • Register did not answer: free row status: "source_unavailable" ("This is not a 'no match' result; run again later"). Other countries continue; the run ends SUCCEEDED.
  • Register answered, no match: free row status: "no_match" (name search) or status: "not_found" (registration number) per country.
  • Invalid registration number: free status: "error" row. No name and no numbers at all: the run FAILS immediately with an input error (nothing charged).

Cost example and cost cap

  • 4 countries × 50 results (default) = up to 200 companies = $0.40. Looking up 1,000 registration numbers ≈ $2.00.
  • Cap it two ways: maxItems (total companies, e.g. 100 → max $0.20) and/or Max charge per run (Console → Run options, or maxTotalChargeUsd in the API). The Actor stops cleanly at the limit. Status rows are free.

What can you use it for?

  • KYB / supplier onboarding: verify that a company exists, is active, and get its legal form, address and VAT number
  • Lead enrichment for B2B sales: add registration number, NACE/NAF activity, employee band and (FR) revenue to your CRM
  • Bulk validation of SIREN/SIRET, Norwegian org.nr / MVA, Finnish Y-tunnus and Czech IČO / DIČ lists
  • Market mapping: find every active company matching a keyword in one or more countries

Input

FieldWhat it does
queryCompany name or keyword, e.g. Nokia, boulangerie lyon
registrationNumbersSIREN, SIRET, FR VAT, NO org.nr / MVA, FI Y-tunnus, CZ IČO / CZ VAT – the country is auto-detected
countriesAny of FR, NO, FI, CZ (default: all)
maxResultsPerCountryCap per country for name searches
maxItemsOptional total billable cap for the whole run (empty = no total cap)
onlyActiveSkip dissolved / ceased companies
includeSoleTradersOff by default – sole traders are personal data in most EU countries

Example input:

{
"query": "Nokia",
"registrationNumbers": [
"552081317",
"923609016",
"0112038-9",
"27082440"
],
"countries": [
"FR",
"NO",
"FI",
"CZ"
],
"maxResultsPerCountry": 10
}

Output

Each result is one row in the dataset (download as JSON, CSV, Excel or via API). Example:

{
"country": "FR",
"registry": "SIRENE / RNE (INSEE, INPI) via recherche-entreprises.api.gouv.fr",
"registrationNumber": "552081317",
"vatNumber": "FR03552081317",
"name": "ELECTRICITE DE FRANCE",
"tradeNames": [
"EDF"
],
"legalFormCode": "5599",
"legalForm": "SA à conseil d'administration",
"status": "active",
"registrationDate": "1955-01-01",
"ceasedDate": null,
"address": {
"street": "22-30 22 AVENUE DE WAGRAM 75008 PARIS",
"postalCode": "75008",
"city": "PARIS",
"countryCode": "FR"
},
"addressHidden": null,
"activityCode": "35.11Z",
"activityCodeSystem": "NAF rév. 2",
"activityDescription": null,
"employees": "10000+",
"establishmentsOpen": 3549,
"website": null,
"revenue": 118690000000,
"netIncome": 11854000000,
"financialYear": "2024",
"sourceUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/552081317",
"matchedBy": "registrationNumber",
"query": null,
"fetchedAt": "2026-10-24T16:33:46+00:00"
}

Reliability – "not found" vs "source down"

Status rows are free (never charged):

  • status: "not_found" – the registry answered but has no company with that registration number (France: some companies are legally non-public and are not served by the open API).
  • status: "no_match" – the registry answered but no company matched your name query in that country.
  • status: "source_unavailable" – the registry did not answer (timeout / rate limit after retries); try again later. A per-country RUN_SUMMARY (query matches, ids requested, ids found) is written to the key-value store.

Pricing

Pay-per-event, no subscription:

EventPrice
Company record (company)$0.002 ($2.00 / 1,000)
Actor start$0.00005

Error rows and empty results are never charged. Set Max charge per run in Apify Console to cap your spend – the Actor stops cleanly when the limit is reached.

Option names (shared across our open-data Actors)

The five Actors in this pack (Prediction Markets, US Building Permits, EU Company Registry, UK Public Tenders, EU Fuel Prices) use the same names for the same job:

JobOptionNotes
Free-text filterkeywords (array)EU Company Registry uses query (one company name) + registrationNumbers
Date windowdaysBack + …From / …ToissuedFrom/To (permits), publishedFrom/To (tenders)
Total billable capmaxItemsavailable in all five; per-source caps (maxMarketsPerPlatform, maxItemsPerCity, maxResultsPerCountry, maxPagesPerSource) still work
Only new rows on schedulesonlyNewSinceLastRunEU Fuel Prices: onlyChangedSinceLastRun (prices that changed)
Which sourcesplatforms / cities / countries / sourcesthe natural unit of each source

Status rows always use the same status values: error / source_unavailable (source down), no_results / no_match / not_found (source answered, nothing matched), no_new (nothing new since last run). They are never charged.

FAQ

Where does the data come from?
Only from the official public APIs: recherche-entreprises.api.gouv.fr (Etalab Licence Ouverte 2.0), data.brreg.no (NLOD), avoindata.prh.fi (CC BY 4.0) and ares.gov.cz (open data). No scraping of commercial sites such as Pappers, Northdata or Societe.com.

Do you return directors or people?
No. Officers, shareholders and sole traders are personal data under GDPR, so the Actor deliberately returns company-level fields only. French companies that opted out of public address display (statut de diffusion partielle) are returned with addressHidden: true.

Is the VAT number official?
Norway, Czechia and Finland VAT numbers come from the registry. The French intra-EU VAT number is computed from the SIREN with the official key formula – validate on VIES if you need legal certainty.

Why do I get an error row for a broad Czech search?
ARES refuses searches with more than 1,000 matches. Narrow the query; the error row is free.

Which countries are next?
UK Companies House (bring your own free key), Denmark CVR and GLEIF LEI enrichment are on the roadmap.

This Actor only reads public data published by government bodies or by the platforms' own public APIs under open licences (each row has source/license or url fields where available). It returns organisation-level data and deliberately excludes personal data. You are responsible for using the data in line with the source licence and applicable law (e.g. GDPR).

Integrations

Schedule runs, then push results to Google Sheets, Slack, webhooks, Zapier, Make or your database with Apify integrations, or call the Actor from the Apify API / Python / JavaScript clients.