# European Company Registers: France & Norway Data (`flets_sv/empresas-europa`) Actor

Search the official company registers of France (Annuaire des Entreprises / INSEE Sirene) and Norway (Brønnøysund Enhetsregisteret) with one common schema: name, legal form, activity, address, status and registry link.

- **URL**: https://apify.com/flets_sv/empresas-europa.md
- **Developed by:** [FlEtsv](https://apify.com/flets_sv) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## European Company Registers – France & Norway Business Registry Scraper

Search the official company registers of France and Norway and get every company in one common schema.

#### What does European Company Registers do?

This Actor queries the public business registers of two countries and returns one record per company:

- **France**: Annuaire des Entreprises, built on the INSEE Sirene database and the RNE.
- **Norway**: Brønnøysundregistrene – Enhetsregisteret.

You can search by company name, or look companies up by identifier: `FR:` followed by a 9-digit SIREN, or `NO:` followed by a 9-digit organisation number (orgnr). Every record has the same fields, so you can compare the two countries directly.

Filters:

- `soloActivas`: keep only active companies (default: true).
- `excluirAutonomos`: skip sole traders (default: true).
- `codigoActividad`: NACE activity code, for example `10.71` for bakeries. Dots are ignored.

#### ¿Qué hace?

Este Actor consulta los registros mercantiles oficiales públicos de Francia y Noruega y devuelve un registro por empresa, con el mismo esquema para los dos países:

- **Francia**: Annuaire des Entreprises, basado en la base Sirene del INSEE y el RNE.
- **Noruega**: Brønnøysundregistrene – Enhetsregisteret.

Puedes buscar por nombre de empresa o consultar empresas concretas por identificador: `FR:` seguido de un SIREN de 9 cifras, o `NO:` seguido de un número de organización (orgnr) de 9 cifras. Todos los registros tienen los mismos campos, así que puedes comparar los dos países directamente.

Filtros:

- `soloActivas`: solo empresas activas (por defecto: true).
- `excluirAutonomos`: excluye los autónomos (por defecto: true).
- `codigoActividad`: código de actividad NACE, por ejemplo `10.71` para panaderías. Los puntos se ignoran.

#### Input

| Campo | Tipo | Por defecto | Descripción |
|---|---|---|---|
| `paises` | array | `["FR","NO"]` | Registros a consultar: `FR`, `NO` o ambos. |
| `nombre` | string | `bakery` | Búsqueda por nombre. Se ignora si hay identificadores. |
| `identificadores` | array | `[]` | Búsquedas exactas: `FR:552032534`, `NO:923609016`. |
| `codigoActividad` | string | `""` | Filtro NACE, por ejemplo `10.71`. |
| `soloActivas` | boolean | `true` | Excluye empresas cerradas o disueltas. |
| `excluirAutonomos` | boolean | `true` | Excluye autónomos. |
| `maxResultadosPorPais` | integer | `100` | Máximo de empresas por país y ejecución (1–5000). |
| `pausaMs` | integer | `200` | Pausa entre peticiones a los registros (0–10000 ms). |

Example input:

```json
{
  "paises": ["FR", "NO"],
  "identificadores": ["FR:552032534", "NO:923609016"]
}
```

#### Output

Each company is one item in the dataset, with these fields: `pais`, `identificador`, `tipoIdentificador` (SIREN or ORGNR), `nombre`, `formaJuridicaCodigo`, `formaJuridica`, `codigoActividad`, `actividad`, `activa`, `fechaAlta`, `direccion`, `codigoPostal`, `municipio`, `empleados`, `tramoEmpleados`, `numeroIva`, `web`, `latitud`, `longitud`, `oposicionProspeccion`, `urlRegistro`, `fuente`, `licencia` and `fechaConsulta`.

The `urlRegistro` field links to the record in the official register. The `fuente` and `licencia` fields say where each record comes from and under which licence it is published.

#### Precios (pago por evento)

You pay per company record returned, using the `empresa` event at **0.002 USD per company** (about $2.00 per 1000 companies). Identifier lookups that are malformed are not queried and not charged.

#### Pricing

You pay per company record returned, using the `empresa` event at **0.002 USD per company** ($2.00 per 1000 companies). Malformed identifiers are not queried and not charged.

#### Fuente y licencia

- **France**: Annuaire des Entreprises (INSEE Sirene / RNE), published under the **Licence Ouverte 2.0**. Field `fuente` is set to "Annuaire des Entreprises (INSEE Sirene / RNE)" and field `licencia` to "Licence Ouverte 2.0".
- **Norway**: Brønnøysundregistrene – Enhetsregisteret, published under the **NLOD 2.0** (Norsk lisens for offentlige data). Field `fuente` is set to "Brønnøysundregistrene – Enhetsregisteret" and field `licencia` to "NLOD 2.0".

This Actor only reads public registers. Check the licence terms before reusing the data, and keep the attribution in `fuente` when you publish it.

#### FAQ

**Can I look up a single company?**
Yes. Use `identificadores` with `FR:` + SIREN or `NO:` + orgnr.

**Why are some companies missing?**
By default closed companies (`soloActivas`) and sole traders (`excluirAutonomos`) are excluded. Turn those filters off to include them.

**Is there a limit?**
Yes. `maxResultadosPorPais` caps the number of companies per country and run (100 by default, 5000 at most).

**Does the Actor store personal data?**
It only copies what the official registers publish. The `oposicionProspeccion` field shows whether the company has objected to direct marketing where the register publishes it.

***

### Español (resumen)

Actor de búsqueda en los registros mercantiles oficiales de Francia y Noruega. Usa `identificadores` para consultas exactas y `nombre` para búsquedas por nombre. El precio es 0.002 USD por empresa (evento `empresa`).

# Actor input Schema

## `paises` (type: `array`):

Registers to query: `FR` (Annuaire des Entreprises) and/or `NO` (Brønnøysund).

## `nombre` (type: `string`):

Search by company name in the selected registers. Ignored when identifiers are given.

## `identificadores` (type: `array`):

Exact lookups: `FR:` + 9-digit SIREN (e.g. `FR:552032534`) or `NO:` + 9-digit organisation number (e.g. `NO:923609016`). Optional.

## `codigoActividad` (type: `string`):

NACE code filter, e.g. `10.71` (bakery). Dots are ignored. Optional.

## `soloActivas` (type: `boolean`):

Skip companies that are closed or dissolved.

## `excluirAutonomos` (type: `boolean`):

Skip sole traders (entrepreneurs individuels / enkeltpersonforetak).

## `maxResultadosPorPais` (type: `integer`):

Hard limit of companies per country and run. Protects your budget.

## `pausaMs` (type: `integer`):

Delay between requests to the public registers.

## Actor input object example

```json
{
  "paises": [
    "FR",
    "NO"
  ],
  "nombre": "bakery",
  "identificadores": [],
  "codigoActividad": "",
  "soloActivas": true,
  "excluirAutonomos": true,
  "maxResultadosPorPais": 100,
  "pausaMs": 200
}
```

# Actor output Schema

## `resultados` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "nombre": "bakery"
};

// Run the Actor and wait for it to finish
const run = await client.actor("flets_sv/empresas-europa").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "nombre": "bakery" }

# Run the Actor and wait for it to finish
run = client.actor("flets_sv/empresas-europa").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "nombre": "bakery"
}' |
apify call flets_sv/empresas-europa --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,flets_sv/empresas-europa"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/KhMmcZGFyGDqcsqQh/builds/KTRJ2igpJn7qdc5Kh/openapi.json
