# EU Company Registry Scraper – France, Norway, Finland (`anxuanng/company-registry-scraper`) Actor

Search the official open company registries of France (SIRENE), Norway (Brønnøysund) and Finland (PRH) in one schema: legal form, status, registration date, NACE code, address, workforce and French revenue. Daily lists of newly registered companies. Company data only.

- **URL**: https://apify.com/anxuanng/company-registry-scraper.md
- **Developed by:** [Xuan An Nguyen](https://apify.com/anxuanng) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 company scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## EU Company Registry Scraper – France, Norway, Finland

Company data straight from three official open registries: **France (INSEE SIRENE / RNE), Norway
(Brønnøysundregistrene) and Finland (PRH)**, in one schema. Search by name or activity code, look up companies by
their registry id, or pull a daily list of newly registered companies in Norway and Finland.

Rows describe companies only. Directors, owners and other people are not collected, and sole proprietorships
(usually named after a person) are left out unless you turn them on.

### What data can I get?

| Field | Example |
|---|---|
| `country`, `registryId` | `FR`, `403052111` (SIREN · org. nr · Y-tunnus) |
| `name`, `legalForm`, `legalFormCode` | `BOULANGERIES PAUL`, `Aksjeselskap`, `5710` |
| `status` | `active`, `closed`, `bankrupt` or `liquidation` |
| `registeredAt`, `foundedAt`, `closedAt` | `1995-12-07` |
| `activityCode`, `activityDescription` | `10.71A`; `43.320 Snekkerarbeid` |
| `employees`, `companySize` | `500-999`, `ETI` (France) |
| `street`, `postalCode`, `city`, `latitude`, `longitude` | registered address; coordinates in France |
| `revenue`, `netIncome`, `financialYear` | `75869141`, `-5022746`, `2023` (France, when filed publicly) |
| `website` | Norway and Finland, when registered |
| `registryUrl`, `source` | the company's page on the registry, and the registry and licence to credit |

### How much does it cost?

**$2 per 1,000 companies.** You pay only for companies delivered. A daily feed of 300 new Norwegian and Finnish
companies costs $0.60 a day.

### How do I use it?

- **Search:** a name (`bakery`, `Equinor`) and optionally an activity code and countries.
- **Look up:** paste ids like `FR:552081317`, `NO:923609016`, `FI:0112038-9` into Registry ids.
- **New companies:** set Registered within (days), e.g. `1` or `7`, pick Norway and Finland, and schedule it daily
  with Only new companies on.

```json
{ "countries": ["NO", "FI"], "registeredWithinDays": 1, "onlyNew": true, "maxItems": 1000 }
```

### Where does the data come from, and can I reuse it?

| Country | Registry | Licence |
|---|---|---|
| France | INSEE SIRENE and the national business register (RNE), via the government's API Recherche d'entreprises | Licence Ouverte 2.0 (Etalab) |
| Norway | Enhetsregisteret, Brønnøysundregistrene | NLOD 2.0 |
| Finland | YTJ open data, Finnish Patent and Registration Office | CC BY 4.0 |

All three allow commercial reuse and ask you to credit the source; each row's `source` field names it. Don't use
PRH's or YTJ's logos. Companies that asked INSEE not to be listed are not in the French API.

### FAQ

**Why can't I list new French companies?** The French API has no registration-date filter, so France needs a name
or an activity code. Norway and Finland filter by registration date at the registry.

**How current is it?** Norway updates continuously, Finland daily, France daily.

**Do I need a proxy?** No. It runs at 256 MB without one. France limits requests per network, so the Actor paces
itself and retries politely when asked to slow down.

### More scrapers by the same developer

- [ATS Jobs Scraper](https://apify.com/anxuanng/ats-jobs-scraper): Job postings straight from company career boards on Greenhouse, Lever, Ashby, Workday, Workable, Recruitee and SmartRecruiters in one schema, with salary ranges and an only-new mode.
- [Chotot Scraper](https://apify.com/anxuanng/chotot-scraper): Scrape Chợ Tốt (chotot.com), Vietnam's largest classifieds site: cars, motorbikes, real estate, phones, laptops and more, with prices in VND, location and all item attributes. Pay per listing.
- [Events Scraper](https://apify.com/anxuanng/events-scraper): Upcoming events in any city from Eventbrite, Meetup and Luma in one schema: time in UTC, venue, online or in person, organizer, price and attendance.
- [Prediction Markets Scraper](https://apify.com/anxuanng/prediction-markets-scraper): Kalshi and Polymarket markets in one schema: yes/no probabilities, bid/ask, volume, liquidity, close time and results, with keyword and category filters and an only-changed mode for monitoring.
- [Remote Jobs Scraper](https://apify.com/anxuanng/remote-jobs-scraper): Remote job listings from Himalayas, Remote OK, We Work Remotely, Jobicy and Arbeitnow in one schema, deduplicated across boards, with salaries and an only-new mode.
- [SEEK, JobStreet & JobsDB Jobs Scraper](https://apify.com/anxuanng/seek-jobs-scraper): Job listings from SEEK (Australia, New Zealand), JobStreet (Malaysia, Singapore, Philippines, Indonesia) and JobsDB (Hong Kong, Thailand) in one schema, with salary, work type, classification and an only-new mode.
- [Substack Scraper](https://apify.com/anxuanng/substack-scraper): Posts from any Substack newsletter with likes, comments, word count, free or paid flag and the full text of free posts. Search publications by keyword; only-new mode for monitoring.
- [Telegram Channel Scraper](https://apify.com/anxuanng/telegram-channel-scraper): Scrape public Telegram channels: posts, views, reactions, media, links, forwards, plus channel stats. Incremental mode for daily monitoring. Pay per post.
- [Vietnam Jobs Scraper](https://apify.com/anxuanng/vietnam-jobs-scraper): Scrape job postings from VietnamWorks, TopCV and ITviec in one unified schema. Extract title, company, salary in VND/USD, location, level, skills, deadline and full description. Pay per job, JSON/CSV export, API and MCP access.

# Actor input Schema

## `countries` (type: `array`):

Which registries to search. Leave empty for all three.

## `query` (type: `string`):

Name or words in the name, e.g. 'bakery', 'Equinor'. Optional in Norway and Finland when you list new registrations.

## `registryIds` (type: `array`):

Look up specific companies instead of searching: 'FR:552081317' (SIREN), 'NO:923609016' (org. nr) or 'FI:0112038-9' (Y-tunnus). Bare Finnish ids and 9-digit numbers are also accepted.

## `activityCode` (type: `string`):

Only companies with this main activity code, in each registry's format: France '62.01Z', Norway '62.010', Finland '62010'.

## `registeredWithinDays` (type: `integer`):

Only companies registered in the last N days. Norway and Finland filter this at the registry, so it works without a name: a daily list of new companies. France has no date filter; there it only narrows a name or activity search.

## `activeOnly` (type: `boolean`):

Leave out closed, bankrupt and liquidating companies.

## `includeSoleProprietors` (type: `boolean`):

Sole proprietorships usually trade under the owner's own name, which is personal data. Off by default; turn on only if you have a lawful reason to process it.

## `onlyNew` (type: `boolean`):

Return only companies you have not received in earlier runs of this Actor. Combine with 'Registered within' and a daily schedule for a feed of new companies.

## `maxItems` (type: `integer`):

Stop after this many companies, taking from each selected country in turn. You are only charged per company delivered.

## Actor input object example

```json
{
  "countries": [],
  "query": "software",
  "activeOnly": true,
  "includeSoleProprietors": false,
  "onlyNew": false,
  "maxItems": 500
}
```

# Actor output Schema

## `listings` (type: `string`):

All company rows as JSON; append ?format=csv for CSV or ?format=xlsx for Excel.

## `runSummary` (type: `string`):

Counts of pushed/skipped/failed rows and whether the budget limit was hit.

# 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 = {
    "query": "software"
};

// Run the Actor and wait for it to finish
const run = await client.actor("anxuanng/company-registry-scraper").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 = { "query": "software" }

# Run the Actor and wait for it to finish
run = client.actor("anxuanng/company-registry-scraper").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 '{
  "query": "software"
}' |
apify call anxuanng/company-registry-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anxuanng/company-registry-scraper"
        }
    }
}

```

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/T97Q3IZSsoZf7o0Rp/builds/75G1ApkSTgNHsg6ka/openapi.json
