New Company Registrations: France, Norway, Finland, UK avatar

New Company Registrations: France, Norway, Finland, UK

Pricing

$3.00 / 1,000 new companies

Go to Apify Store
New Company Registrations: France, Norway, Finland, UK

New Company Registrations: France, Norway, Finland, UK

Daily feed of newly registered companies in France (BODACC), Norway (Brreg), Finland (PRH) and the UK (Companies House). Filter by sector, city, postal code and legal form, and skip companies already delivered on a previous scheduled run. Pay per new company.

Pricing

$3.00 / 1,000 new companies

Rating

0.0

(0)

Developer

Yahya Nouali

Yahya Nouali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

A daily feed of companies that have just been registered in France, Norway, Finland and the United Kingdom. One dataset row per company, then a run_summary row. You pay for a company only when it is delivered.

Built for lead generation and prospecting. A scheduled run with onlyNew remembers what it already sent, so the same company is not delivered or billed twice.

Use cases

  • Lead generation. Pull yesterday's new SAS in Paris, new AS in Oslo, new Oy in Helsinki and new Ltd in London, then load them into a sheet or a CRM.
  • Prospecting. Restrict the feed with activity-code prefixes (NAF, NACE, TOL or SIC), cities, postal-code prefixes and legal forms. Sole traders can be left out.
  • Scheduled daily runs. Run every morning. The overlap in lookbackDays catches a publication that landed after the previous run, and onlyNew drops the companies you already have.

Input

{
"countries": ["FR", "NO", "FI", "UK"],
"lookbackDays": 2,
"naceCodes": ["62"],
"cities": ["Paris", "Oslo", "Helsinki", "London"],
"postalCodePrefixes": ["75"],
"legalForms": ["SAS", "AS", "OY", "ltd"],
"excludeSoleTraders": true,
"onlyNew": true,
"stateStoreName": "new-company-registrations-state",
"maxItems": 1000
}
FieldDefaultWhat it does
countriesFR, NO, FI, UKFR France, NO Norway, FI Finland, UK Companies House.
lookbackDays2Civil days ending today in Europe/Paris, including today. 1 is today only. 2 is yesterday and today. Maximum 31.
dateFrom, dateToemptyInclusive YYYY-MM-DD window. When both are set they replace lookbackDays. Maximum span 31 days.
naceCodesemptyPrefixes. 62 matches French 62.01Z, Norwegian 62.010, Finnish 62100 and UK 62012.
citiesemptyCity name. Accents and case are ignored. Paris matches Paris 2, not Parisot. Norway also matches the municipality.
postalCodePrefixesempty750 matches 75002. SW1 matches SW1A 1AA.
legalFormsemptyCode or label: SARL, 5710, SAS, AS, ENK, OY, ltd, plc.
maxCompanyAgeDays60France only in practice. BODACC creation notices also announce a new branch, a purchased business or a re-registered sole trader. A company whose SIRENE creation date is more than this many days before the window start is skipped and not charged. 0 keeps every notice.
excludeSoleTradersfalseDrops French entrepreneurs individuels, Norwegian ENK and Finnish toiminimi. UK sole traders are not on Companies House.
onlyNewtrueSkip a company already stored in the named key-value store. Not charged.
stateStoreNamenew-company-registrations-stateStore used when onlyNew is on. Keep the same name on every scheduled run.
maxItems1000Delivered companies only. Filtered, duplicate and failed items do not count. Maximum 20,000.
companiesHouseApiKeyemptySecret override of COMPANIES_HOUSE_API_KEY. Leave it empty and set the Actor secret instead.

A French row is included when the BODACC publication date falls in the window. registrationDate is the SIRENE creation date when that call succeeds, which can be a few days earlier. announcementDate is the BODACC date. Norway filters on registreringsdatoEnhetsregisteret. Finland filters on the business-id registration date (businessIdRegistrationStart / businessIdRegistrationEnd). The PRH registrationDate query also returns older companies whose name or form changed, so it is not the window. The UK calls advanced search with incorporated_from and incorporated_to, one day at a time.

Output

Filter recordType = company when you export. The last row is run_summary.

The fragment below is the field layout. Names, dates and addresses come from the registers when you run the Actor.

{
"recordType": "company",
"country": "FR",
"id": "123456789",
"name": "EXAMPLE SAS",
"legalForm": "SAS, société par actions simplifiée",
"legalFormCode": "5710",
"registrationDate": "2026-10-20",
"registeredAt": "2026-10-20",
"announcementDate": "2026-10-23",
"address": "1 rue de la Paix, 75002 Paris",
"city": "Paris",
"postalCode": "75002",
"activityCode": "62.01Z",
"activityLabel": "Programmation informatique",
"activityScheme": "NAF",
"soleTrader": false,
"source": "BODACC + Recherche d'entreprises",
"sourceUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/123456789",
"sourceAnnouncementUrl": "https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:A000000000",
"licence": "Licence Ouverte 2.0",
"firstSeenAt": "2026-10-25T05:00:00.000Z",
"charged": true,
"billingEvents": "new-company"
}

registeredAt is the same date as registrationDate. activityScheme is NAF, NACE, TOL or SIC. sourceAnnouncementUrl is set for BODACC and null otherwise. firstSeenAt is when this actor delivered the company. With onlyNew, that value is what the next run uses to skip it.

run_summary has delivered, deliveredFr, deliveredNo, deliveredFi, deliveredUk, duplicatesSkipped, filteredOut, errors, chargedNewCompany, dateFrom, dateTo, stoppedReason and notes. The same object is stored as the key-value record RUN_SUMMARY.

A company that fails (for example Recherche d'entreprises returns an error) is counted in errors, is not written as a company row, and is not charged. The next run can try it again. A SIREN that BODACC has announced but SIRENE does not list yet is still delivered, with warnings set and activityCode null, because the announcement itself is the lead.

Pricing

Pay per event. There is no start fee and no per-row dataset fee.

EventPriceWhen
new-company$0.003A new company is delivered. This is the primary event.

Not charged:

  • a company already stored from an earlier run (onlyNew)
  • the same SIREN appearing twice in one BODACC day
  • an older French company whose BODACC creation notice is for a new branch or a purchased business (SIRENE creation date more than maxCompanyAgeDays before the window)
  • a company outside the sector, city, postal-code or legal-form filter, including a sole trader when excludeSoleTraders is on
  • a register error

1,000 delivered companies cost $3.00. A later run that only sees duplicates costs $0 in event fees.

Do not enable the synthetic events apify-actor-start or apify-default-dataset-item on this Actor. The full pricing document is in PUBLISHING.md.

Schedule it

In the Apify Console, open Schedules, create a schedule, and attach this Actor.

  • Cron: 0 7 * * *
  • Timezone: Europe/Paris
  • Input: examples/input.daily.json

lookbackDays defaults to 2 (yesterday and today), because 1 is often too short at 07:00: BODACC is a morning publication and it does not come out every calendar day. Keep 2 so a company published after the previous run is still inside the window. onlyNew keeps the overlap from being billed again. On Monday, 3 covers Friday through Monday when you do not run at the weekend.

Keep stateStoreName stable. A new name starts a fresh memory and will deliver companies you have already paid for.

France can publish more than 1,000 creations on a busy day. Raise maxItems if you want the whole country. Sector and city filters are applied before the French enrichment call when the announcement already has a city or postal code, which keeps the run smaller.

The UK needs the secret COMPANIES_HOUSE_API_KEY on the Actor. Without it, France, Norway and Finland still run and the summary says the UK was skipped. A UK-only run stops with an error instead of returning an empty success.

Automate with Make, Zapier or n8n

Put the Apify token in the integration credentials. Never paste it into the Actor input. Put the Companies House key in the Actor secret, not in the scenario.

The synchronous "run and return dataset items" calls time out at 300 seconds. A full unfiltered French day, with one Recherche d'entreprises call per company, can take longer. For that volume, schedule the Actor in Apify (the schedule above) and use Get dataset items afterwards, or keep maxItems modest for the sync call. A city and sector filter usually finishes inside the limit.

Make

App Apify, module Run an Actor.

  1. Watch new rows in Google Sheets (or start from a Make scheduled scenario).
  2. Run an Actor, synchronous, Actor new-company-registrations-europe, input from examples/input.sector-city.json.
  3. Get dataset items. Keep rows where recordType is company.
  4. Add or update a row in the sheet, or create the lead in the CRM.

Map name, country, city, activityCode and sourceUrl. Leave the Apify token in the Make connection.

Zapier

App Apify.

  1. Trigger: Schedule, or New Company in HubSpot if you want to enrich a market you already track.
  2. Action: Run Actor with the same JSON input.
  3. Formatter: keep recordType = company.
  4. Action: Create or update the lead. A second Zap can use the trigger Finished Actor Run when the run is longer than the sync timeout, then Get Dataset Items.

n8n

Official node: @apify/n8n-nodes-apify. Authentication is an Apify API token or OAuth2 on n8n Cloud. Credentials stay in n8n.

Operations used here:

  • Run actor when the run should be asynchronous
  • Run actor synchronously with input and get dataset items (shown in the node as Run an Actor and Get Dataset) when you want the rows in the same execution and the run will finish within 300 seconds
  • Get items on the Datasets resource when you already have a dataset id from a finished run

A starter workflow is in examples/n8n-daily.json: a weekday 07:00 schedule, then the Apify node with resource Actors and an operation that runs the Actor and returns dataset items. Import it, select your Apify credential, and set the Actor id to the id this Actor has on your account (the name new-company-registrations-europe works as username~new-company-registrations-europe).

Typical continuation: IF recordType equals company, then Google Sheets or Slack. The example input caps maxItems at 200 so the sync call stays inside the timeout. For the full morning feed, use the Apify schedule and Get items.

Sources and licences

This Actor is not an official service of DILA, INSEE, Brønnøysundregistrene, PRH or Companies House. Do not present the output as a registry extract, and do not use those organisations' logos.

CountrySourceWhat is readLicence
FranceBODACC dataset annonces-commerciales, familleavis=creation, then Recherche d'entreprises for NAF, address and legal formImmatriculations announced in the windowLicence Ouverte 2.0 / Etalab
NorwayBrønnøysundregistrene Enhetsregisteret fraRegistreringsdatoEnhetsregisteretEntities registered in the windowNLOD 2.0
FinlandPRH open data, YTJ API v3 businessIdRegistrationStart and businessIdRegistrationEndBusiness ids registered in the windowCC BY 4.0
United KingdomCompanies House Public Data API advanced search, incorporated_from / incorporated_toCompanies incorporated in the windowCompanies House API terms. Register information includes public-sector information used under the Open Government Licence v3.0 where that licence applies.

French NAF and legal-form labels are bundled from INSEE under the Licence Ouverte 2.0. See src/data/SOURCES.md. Attribute the upstream register when you republish the rows.

Companies House allows 600 requests in 5 minutes. This Actor uses a shared token bucket at that limit and pages advanced search in slices of at most 5,000, split by day. Recherche d'entreprises is called at about 6 requests per second. PRH calls are at least 300 ms apart.

En français

Cet acteur publie les nouvelles immatriculations en France, en Norvège, en Finlande et au Royaume-Uni. Une ligne par société, puis une ligne run_summary.

La France vient du BODACC (familleavis création) sur l'API ouverte de la DILA, enrichie par l'API Recherche d'entreprises (NAF, adresse, forme juridique). La Norvège vient de Brreg, filtré sur la date d'inscription à l'enhetsregisteret. La Finlande vient de l'API PRH YTJ v3, filtrée sur la date d'attribution du Y-tunnus. Le Royaume-Uni vient de Companies House (recherche avancée, incorporated_from / incorporated_to) et demande la clé secrète COMPANIES_HOUSE_API_KEY.

Les filtres portent sur le secteur (préfixes NAF, NACE, TOL ou SIC), la ville, le préfixe de code postal et la forme juridique. excludeSoleTraders écarte les entrepreneurs individuels, les ENK norvégiens et les toiminimi finlandais. maxCompanyAgeDays (60 par défaut) écarte, sans les facturer, les avis BODACC de création d'établissement ou d'achat de fonds d'une société plus ancienne.

onlyNew (activé par défaut) mémorise les sociétés déjà livrées dans le key-value store nommé stateStoreName. Une société déjà vue n'est pas renvoyée et n'est pas facturée. C'est le mode à garder pour une planification quotidienne.

Tarif : 0,003 $ par société nouvelle livrée (événement new-company). Les doublons, les sociétés hors filtre et les erreurs ne sont pas facturés. Il n'y a pas de frais de démarrage.

Planification conseillée : cron 0 7 * * *, fuseau Europe/Paris, lookbackDays à 2 (3 le lundi) et onlyNew à true. Le BODACC ne paraît pas tous les jours calendaires ; la fenêtre qui se recouvre sert à ne rien manquer, le dédoublonnage sert à ne pas payer deux fois.

Les données sont des données publiques. Licence Ouverte 2.0 pour la France, NLOD 2.0 pour la Norvège, CC BY 4.0 pour la Finlande, conditions d'utilisation de Companies House pour le Royaume-Uni. Cet acteur n'est pas un service officiel.

Local development

Node.js 20 or newer.

npm install
npm test
npm run smoke
npm run build
npm start

npm test uses mocked HTTP only. npm run smoke calls the live French, Norwegian and Finnish registers for the last two civil days in Europe/Paris. It does not call Companies House. If BODACC has not published inside that window, the script parses the latest publication day within the previous week and prints both results.

The UK path is covered by mocked tests (test/run.test.ts). A live UK check needs COMPANIES_HOUSE_API_KEY in the environment and is left to the publisher.