EU Company Registry Search: France SIREN & Norway Brreg avatar

EU Company Registry Search: France SIREN & Norway Brreg

Pricing

from $4.00 / 1,000 company records

Go to Apify Store
EU Company Registry Search: France SIREN & Norway Brreg

EU Company Registry Search: France SIREN & Norway Brreg

Search official open European company registers with one schema: France (Sirene, 26M companies) and Norway (Brreg). Filter by name, NAF/NACE code, postcode, legal form, size and date. Organisations only, no API keys, no scraping.

Pricing

from $4.00 / 1,000 company records

Rating

0.0

(0)

Developer

MB AISolution

MB AISolution

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Security

Limited permissions

Share

EU Company Registry Search: France SIREN & Norway Brreg (One Schema, Open Data)

Search official company registers of France (INSEE Sirene, about 26 million companies) and Norway (Brreg Enhetsregisteret) and get the same JSON schema for both. The Actor uses the open government APIs of the two registries: no scraping, no proxies, no API keys. Each result is one organisation with registry ID, name, legal form, status, creation date, activity code (NAF / NACE), address, size (employees or band), VAT status and, for France, the latest published revenue and net result. Built for B2B lead generation, KYB / supplier checks, market analysis and AI agents. Organisations only: sole traders, directors and owners are never returned.

More registers on the same schema (Czech Republic, Poland) are planned once their terms of use are verified.

What you can do

  • Industry lead lists: activityCodes = ["62.01Z"] + departments = ["75"] returns active French software companies in Paris (with revenue where published).
  • New Norwegian companies: incorporatedFrom = 2026-09-01 + activityCodes = ["62.1"] returns newly registered IT companies, newest first.
  • KYB / supplier check: look up a company by name or by SIREN / organisasjonsnummer and read its legal form, status, address and VAT status.
  • Cross-border comparison: countries = ["FR","NO"] and one name returns matches from both registers in one dataset.
  • Feed AI agents / RAG: one schema, stable field names, official record link on every result.

Input

{
"countries": ["FR", "NO"],
"nameQueries": ["ovh"],
"activityCodes": [],
"postalCodes": [],
"onlyActive": true,
"maxItems": 50,
"maxItemsPerCountry": 25
}
FieldDescription
countriesFR, NO. Default ["FR"].
nameQueries, nameMatchCompany names (any matches). FR: all words must appear in the company name / trade name / acronym. NO: startsWith (default) or contains.
registryIdsSIREN (FR) or organisasjonsnummer (NO).
activityCodesFR: full NAF rev.2 code with letter (62.01Z). NO: NACE code or prefix (62, 62.1, 62.100).
postalCodesFR 5 digits, NO 4 digits.
departments (FR), municipalities (NO)Department codes (75, 2A) or kommunenummer (0301).
legalFormsFR: INSEE legal-category codes (5710 SAS, 5499 SARL, 9220 association). NO: form codes (AS, ASA, NUF, STI).
companySizes, onlyAssociationsFR: PME, ETI, GE; associations only.
minEmployeesNO: minimum number of employees (0, 1 or more than 4).
onlyActiveDefault true: skips ceased (FR) and bankrupt / dissolving (NO) companies.
incorporatedFrom, incorporatedToYYYY-MM-DD. NO: registration date, newest first. FR: creation date, applied to the up to 10,000 results returned for your other filters.
maxItems, maxItemsPerCountryHard caps on billed results.

Each country needs at least one filter (a name, ID, activity code, postal code, ...) - the Actor will not dump a whole register.

Output

{
"recordType": "company",
"country": "FR",
"registryId": "424761419",
"registryIdType": "SIREN",
"name": "OVH",
"tradeName": "OVHCLOUD",
"legalFormCode": "5710",
"legalForm": "SAS",
"status": "active",
"incorporationDate": "1999-10-15",
"activityCode": "63.11Z",
"activityCodes": ["63.11Z", "63.10Y"],
"employeesBand": "1,000-1,999",
"companyCategory": "ETI",
"addressLine1": "2 RUE KELLERMANN",
"postalCode": "59100",
"city": "ROUBAIX",
"region": "59",
"countryCode": "FR",
"latitude": 50.691629331,
"longitude": 3.202261085,
"vatNumber": "FR22424761419",
"vatRegistered": true,
"establishmentCount": 33,
"headquartersId": "42476141900045",
"financialYear": 2025,
"revenue": 976044000,
"netResult": 23558000,
"currency": "EUR",
"url": "https://annuaire-entreprises.data.gouv.fr/entreprise/424761419",
"source": "INSEE Sirene via recherche-entreprises.api.gouv.fr (DINUM)",
"license": "Licence Ouverte / Open Licence 2.0 (Etalab). Source: INSEE Sirene via API Recherche d'entreprises (DINUM)",
"scrapedAt": "2026-10-02T12:00:34.701Z"
}

Fields a register does not publish are null (for example employees, website, shareCapital are Norwegian fields; employeesBand, revenue, latitude are French). Dataset views Companies and Errors are available in Apify Console. Problems (a register is down, missing filter) are written as free error records.

How much does it cost?

Pay per event: 0.004 USD per company (4.00 USD per 1,000) plus a start fee of 0.00005 USD per run. Error records are free. Platform usage is included in the event price.

ScenarioResultsApprox. cost
Test run (maxItems 5)50.02 USD
Name check of one company in both registersabout 50.02 USD
Weekly list of new Norwegian IT companies; if 40 per week40 per run0.16 USD/run, about 0.70 USD/month
Industry list: French companies with NAF 62.01Z in 2 departments5002.00 USD
Large export10,00040.00 USD
One run with default settings (maxItems 25)max 25max 0.10 USD

Cost control: maxItems is a hard cap on billed results per run; the Actor also stops at your run's maximum cost per run setting. Records withheld for privacy (sole traders) and error records are never billed.

Why this Actor (vs. alternatives)

Other Store Actors cover single registers (for example dltik/pappers-sirene-scraper, seemuapps/pappers-sirene-scraper, studio-amba/recherche-entreprises-scraper for France). This one puts France and Norway on one schema (and more registers are planned), uses the official open-data APIs (no scraping, no proxies), adds filters that matter for sales and KYB (activity code, postcode, size, legal form, creation date), includes French revenue and net result where published, and is deliberately privacy-first: sole traders, directors and role holders are not returned. It does not offer director data, financial statements or filings - use a paid Actor or the registers' own services for that. Check each Actor's Store page for its current price and fields. (Based on public Store listings, 2026-10-02.)

Use it from n8n, Make, code and AI agents

  • n8n / Make: schedule "Run Actor" weekly with incorporatedFrom set dynamically, then send each item to Google Sheets, Slack or your CRM.
  • API:
curl -X POST "https://api.apify.com/v2/acts/ai_solution~eu-company-registry-search/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"countries":["NO"],"activityCodes":["62.1"],"incorporatedFrom":"2026-09-01","maxItems":20}'
  • MCP / AI agents: available through the Apify MCP server (https://mcp.apify.com, tool ai_solution/eu-company-registry-search). The fully described input schema lets an agent answer "which IT companies were registered in Norway this month?" in one call.

Scheduling and webhooks

  1. In Apify Console open Schedules, create e.g. 0 7 * * 1 (Mondays 07:00 UTC) and add this Actor with your filters.
  2. Add a webhook for ACTOR.RUN.SUCCEEDED (Actor Integrations tab) to your endpoint or an n8n/Make Webhook node; the payload contains resource.defaultDatasetId.
  3. Read GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?token=... and forward new registryIds. A schedule uses a fixed input, so set incorporatedFrom dynamically (n8n expression or API) for "since last week".

Changelog

  • 1.0.0 - First release: France (Sirene) and Norway (Brreg).
  • 1.0.3 - Fix: starting the Actor with the default input (no filter) no longer ends as FAILED; it finishes with a clear message and no charge. Console prefill now searches "ovh".

Support / Issues

Found a bug or want another register? Open a ticket in this Actor's Issues tab in Apify Console.

Data sources, licences and attribution

CountrySourceLicence / terms
FRINSEE Sirene database via API Recherche d'entreprises (recherche-entreprises.api.gouv.fr, DINUM)Open access; data under Licence Ouverte / Open Licence 2.0 (Etalab). Please cite the source: INSEE (Sirene). The API allows at most 7 requests per second per IP.
NOBronnoysundregistrene, Enhetsregisteret open data API (data.brreg.no)Norsk lisens for offentlige data (NLOD) 2.0. Please cite the source: Bronnoysundregistrene.

Each record carries source and license. The Actor identifies itself in the User-Agent with a contact address and keeps to about 2.5 requests per second. It is not affiliated with or endorsed by INSEE, DINUM or the Bronnoysund Register Centre. Registers are provided "as is"; use the official services for legal certificates. You are responsible for complying with data-protection and marketing law (GDPR, e-privacy) when you use company data.

Limitations and privacy

  • Two countries today. Czech ARES and Polish KRS are not included yet (terms of use / lookup-only API still to be verified).
  • Organisation-level data only. France: sole traders (legal category 1xxx), indivision and de-facto partnerships (21xx, 22xx), entities flagged as sole proprietorships and units that are not fully publicly diffusible are withheld; the dirigeants (directors) data of the API is never read. Norway: sole proprietorships (ENK) and single-person registrations (PERS) are excluded; roles (board members, managers) and founders are never requested. A company's own name can still contain a person's name (for example "Dupont Conseil SARL").
  • Both APIs return at most 10,000 results per query. Narrow the filters (postal code, department, activity code, date) to get the rest. French sole traders are removed after the query, so a French query can scan more API results than it returns.
  • French activityCodes must be exact NAF codes with the letter; Norwegian codes follow the current Brreg classification (for example 62.100).
  • Data freshness is that of the registers (France: Sirene daily updates with some delay; Norway: daily).