# France New Companies & BODACC Events (Official, SIRENE) (`yuvalstudios/france-new-companies`) Actor

New French companies from the official BODACC journal, enriched with SIRET, NAF industry, employees and GPS from SIRENE. Also business sales, insolvencies, removals and changes. Filter by département, NAF code, activity. New-since-last-run leads. No key.

- **URL**: https://apify.com/yuvalstudios/france-new-companies.md
- **Developed by:** [Yuval Gabay](https://apify.com/yuvalstudios) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 company results

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?

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

## France New Companies & BODACC Events (Official, SIRENE-enriched)

Get the companies that were **just created in France**, straight from the official **BODACC** (Bulletin officiel des annonces civiles et commerciales), in one clean table. Each row has the company name, legal form (SAS, SARL…), share capital, managers, declared activity, head-office address, département, registration date and a link to the official announcement. Each SIREN is then looked up in the official **SIRENE** directory to add the **SIRET, NAF industry code and label, employee range and GPS coordinates**. Works with no input, needs no API key, and costs **$1.50 per 1,000 results**.

You can also get other BODACC events: **business sales and transfers, insolvency proceedings (receivership, liquidation), removals from the register and changes** (new managers, address moves, capital changes, dissolutions).

**Who it's for:** accountants (experts-comptables), banks and insurers, payroll and HR software, web and marketing agencies, office and equipment suppliers, domiciliation and legal services, credit-risk and supplier-monitoring teams. A new company needs all of these in its first weeks, and an insolvency or a sale is a risk or sales signal.

### Why this actor

- **Official sources only:** the BODACC open data published by DILA (the French government's legal publisher) and the SIRENE directory from INSEE via the government's public API. No scraping of search pages, no proxies, no CAPTCHAs.
- **Industry filter that actually works:** filter by **NAF code** (e.g. `56` restaurants, `43` building trades, `62` IT) on top of the free-text activity search.
- **Enriched rows:** SIRET, NAF code + French label, sector, employee range and latitude/longitude come from SIRENE, so the data is ready for a CRM, a map or a mail-merge.
- **New since last run:** schedule it daily and get only announcements you haven't seen before. It's a ready-made lead feed.
- **Companies only by default:** sole traders (individuals) are excluded unless you ask for them.
- **Fast and cheap:** one bulk request to BODACC; a default run (100 companies, enriched) takes about 20 seconds. No start fee, you pay per result only.

| | This actor | Typical BODACC actors on Apify |
|---|---|---|
| Price | $1.50 / 1,000 results, no start fee | $2 / 1,000 + start fee, up to $20 / 1,000 |
| SIRET, NAF code, employees, GPS | Yes (SIRENE) | Usually no |
| NAF industry filter | Yes | Rare |
| Sales, insolvencies, removals, changes | Yes, same schema | Usually one type |
| New since last run | Yes | Rare |

### Input

| Field | Description |
|---|---|
| `eventTypes` | `creation` (default), `immatriculation`, `vente`, `collective`, `radiation`, `modification`. |
| `daysBack` | Announcements published in the last N days (default 7) when no dates are set. |
| `publishedFrom` / `publishedTo` | Exact publication date range, YYYY-MM-DD. |
| `departments` | Département numbers, e.g. `75`, `69`, `13`, `2A`, `974`. Empty = all of France. |
| `nafCodes` | NAF code prefixes, e.g. `56`, `43.22`, `62.01Z`. |
| `keyword` | Free text in the declared activity or name, e.g. `boulangerie`, `plomberie`. |
| `entityType` | `companies` (default), `soleTraders` or `all`. |
| `enrich` | Add SIRET, NAF, employees, GPS from SIRENE (default on). |
| `maxItems` | Maximum rows to output (default 100). |
| `newSinceLastRun` / `stateKey` | Output only announcements not returned before, per saved search. |

### Output example (real row, 2026-10-23)

```json
{
  "announcementId": "A202602041543",
  "eventType": "creation",
  "eventLabel": "New company / business created",
  "publishedDate": "2026-10-23",
  "siren": "131116261",
  "companyName": "e-Topia Locations - La Réunion",
  "entityType": "company",
  "legalForm": "Société par actions simplifiée",
  "capitalEur": 10000,
  "managers": "Président : Delalonde, Pierre-Étienne",
  "activity": "Location nue de logements neufs à usage de résidence principale; acquisition et construction de logements destinés à la location.",
  "address": "4 avenue du Pere Rene Payet c/o The GreenHouse Coworking",
  "postalCode": "97450",
  "city": "Saint-Louis",
  "department": "974",
  "region": "La Réunion",
  "registryCourt": "Greffe du Tribunal Mixte de Commerce de Saint-Pierre",
  "registrationDate": "2026-10-14",
  "activityStartDate": "2026-10-01",
  "bodaccUrl": "https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:A202602041543",
  "siret": "13111626100010",
  "nafCode": "68.20A",
  "nafLabel": "Location de logements",
  "sector": "Activités immobilières",
  "employees": "No employees reported",
  "latitude": -21.2897,
  "longitude": 55.4066,
  "sireneStatus": "active",
  "scrapedAt": "2026-10-23T06:49:45.201Z"
}
```

Measured fill rates on 100 new companies (2026-10-23): name, legal form, managers, address, SIREN 100%; capital 93%; activity 95%; registration date 94%; SIRET / NAF / employees 93%; GPS 89%. Companies registered in the last few days may not be in SIRENE yet (`sireneStatus: "not yet in SIRENE index"`).

### Pricing

Pay per result: **$0.0015 per row** ($1.50 per 1,000). No start fee. Set "Max cost per run" in Apify to cap spending.

### Tips

- Daily lead feed for Paris restaurants: `departments: ["75"]`, `nafCodes: ["56"]`, `daysBack: 3`, `newSinceLastRun: true`, scheduled daily.
- Credit-risk watch: `eventTypes: ["collective", "radiation"]` for your départements.
- Businesses for sale / takeovers: `eventTypes: ["vente"]`.

### FAQ

**How fresh is it?** BODACC is published every working day; the dataset usually has the day's issue the same morning.
**Why do some rows have no NAF code?** The company is newer than the SIRENE search index. Run again in a few days or use `newSinceLastRun` with a date range.
**Are emails or phone numbers included?** No. The official sources don't publish them.

### Data source & disclaimer

- **Sources:** [BODACC annonces commerciales](https://bodacc-datadila.opendatasoft.com/explore/dataset/annonces-commerciales/) published by DILA under the French Licence Ouverte / Open Licence, read through the documented OpenDataSoft API; [API Recherche d'entreprises](https://recherche-entreprises.api.gouv.fr/docs/) (SIRENE / INSEE and RNE data, Licence Ouverte), used within its public rate limit; NAF rév. 2 labels from INSEE via data.gouv.fr. Each row links to the official announcement on bodacc.fr.
- **How fresh:** every row carries `publishedDate` (BODACC issue) and `scrapedAt` (when this run fetched it).
- **Personal data:** BODACC announcements name managers and, for sole traders, the individual. Under the GDPR you are the controller of what you do with this data: have a lawful basis, respect objection rights and French direct-marketing rules (consent is required for e-mail marketing to individuals). Birth dates and home addresses from SIRENE are deliberately **not** included.
- **Disclaimer:** Data is provided **as is** from public records, without warranty of any kind. Records can contain errors, omissions or delays from the source or from processing, so check anything important against bodacc.fr or the official register. This actor and its output are **not legal, financial or credit advice**. This actor is independent and **not affiliated with or endorsed by** DILA, INSEE or the French government.
- **Last verified:** 2026-10-23.

# Changelog

This Actor's version history is a separate document: https://apify.com/yuvalstudios/france-new-companies/changelog.md

# Actor input Schema

## `eventTypes` (type: `array`):

BODACC announcement types. Default: newly created companies.

## `daysBack` (type: `integer`):

Announcements published in the BODACC in the last N days.

## `publishedFrom` (type: `string`):

Start of the publication date range (overrides days back).

## `publishedTo` (type: `string`):

End of the publication date range.

## `departments` (type: `array`):

French département numbers, e.g. 75 (Paris), 69 (Rhône), 13 (Bouches-du-Rhône), 2A. Leave empty for all of France.

## `nafCodes` (type: `array`):

Only companies whose official INSEE NAF activity code starts with one of these, e.g. 56 (restaurants), 43 (building trades), 62 (IT), 68 (real estate), 56.10A. Uses the SIRENE lookup.

## `keyword` (type: `string`):

Free-text search in the declared activity and name, e.g. boulangerie, restaurant, plomberie, conseil.

## `entityType` (type: `string`):

Companies only is the default (legal entities). Sole traders are individuals, so their records are personal data.

## `enrich` (type: `boolean`):

Look up each SIREN in the official SIRENE directory (recherche-entreprises.api.gouv.fr). Very new companies may not be indexed yet.

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

Maximum rows to output. Each row is billed as one result.

## `newSinceLastRun` (type: `boolean`):

Remember announcements already returned and output only new ones next time. Schedule daily for a lead feed.

## `stateKey` (type: `string`):

Name of the memory used by 'new since last run'. Use a different key per saved search.

## Actor input object example

```json
{
  "eventTypes": [
    "creation"
  ],
  "daysBack": 7,
  "departments": [],
  "nafCodes": [],
  "entityType": "companies",
  "enrich": true,
  "maxItems": 50,
  "newSinceLastRun": false,
  "stateKey": "default"
}
```

# Actor output Schema

## `results` (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 = {
    "eventTypes": [
        "creation"
    ],
    "departments": [],
    "nafCodes": [],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("yuvalstudios/france-new-companies").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 = {
    "eventTypes": ["creation"],
    "departments": [],
    "nafCodes": [],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("yuvalstudios/france-new-companies").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 '{
  "eventTypes": [
    "creation"
  ],
  "departments": [],
  "nafCodes": [],
  "maxItems": 50
}' |
apify call yuvalstudios/france-new-companies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,yuvalstudios/france-new-companies"
        }
    }
}
```

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/D97oc9IskDk5dpNa3/builds/9evIRMBwOtuPEB4Dl/openapi.json
