# Actulegales · French Collective Procedures (`corent1robert/actulegales-scraper`) Actor

Export French collective procedures from Actulegales.fr — company, SIREN, liquidation / redressement / sauvegarde, journal URL. Companions: BODACC, French Companies. Public notices.

- **URL**: https://apify.com/corent1robert/actulegales-scraper.md
- **Developed by:** [Corentin Robert](https://apify.com/corent1robert) (community)
- **Categories:** Lead generation, Business
- **Stats:** 3 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Actulegales · French Collective Procedures

**Export collective procedures** published on [actulegales.fr](https://actulegales.fr/) — redressement, liquidation, sauvegarde, cession. Input: date range (`DD/MM/YYYY`) and optional department codes. Output: company name, SIREN, procedure type, journal, announcement URL. Companion to official [BODACC](https://apify.com/corent1robert/bodacc-announcements-scraper).

**No login. Public legal notices.**

Built for: credit / risk · KYB / compliance · M\&A distressed · French data teams

***

### Also available

The company-register suite — pick the job:

| Actor | Use when |
|-------|----------|
| **This Actor — Actulegales** | Collective procedures from actulegales.fr |
| [BODACC](https://apify.com/corent1robert/bodacc-announcements-scraper) | Official French gazette (creations, insolvency, sales) |
| [French Companies](https://apify.com/corent1robert/recherche-entreprises-scraper) | Directors / finances from a SIREN |

***

### Who is this for?

| You are… | Typical goal | Suggested setup |
|----------|--------------|-----------------|
| **Credit / risk** | Insolvency watch | Last 7 days · schedule daily |
| **KYB / compliance** | Notices to attach to a SIREN | Date window · export then enrich |
| **M\&A / distressed** | Redressement / sauvegarde pipeline | Week or month window |
| **French data team** | Gazette feed into a warehouse | Recurring Actor task |

**What you get:** `dateParution`, `nomEntreprise`, `siren`, `typeProcedure`, `departement`, `adresse`, `journal`, `urlFiche`. Missing source fields are empty strings or omitted.

***

### What does this Actor do?

Walks French departments (01–95, or a list you pass) and pulls public collective-procedure notices in the date window. One row per announcement.

| Scope | Behavior |
|-------|----------|
| **All departments** | Default when `departments` is empty — long job |
| **Selected departments** | e.g. `["75"]` — Store Try / one court area |
| **`maxResults`** | Stop after N rows. `0` = no cap |

***

### Quick start

1. Set **Start date** / **End date** (`DD/MM/YYYY`). Leave end date empty for today.
2. Click **Start**.
3. Open **Legal Announcements** in the dataset.

**Store Try** uses department **75**, **10 rows**, start **01/08/2026**, so the daily health check finishes under 5 minutes. For a real watch, clear the department list and raise `maxResults` to `0`.

Use a **short window** (2–7 days) for the first full-France run.

***

### Ready-made examples (published tasks)

| Example | Best for |
|---------|----------|
| [French collective procedures — last week](https://apify.com/corent1robert/actulegales-scraper/examples/french-collective-procedures-last-week) | Credit / KYB daily watch |
| [French liquidation watch — August 2026](https://apify.com/corent1robert/actulegales-scraper/examples/french-liquidation-watch-august-2026) | Risk teams scanning a month window |
| [Actulegales two-day legal-notice sample](https://apify.com/corent1robert/actulegales-scraper/examples/actulegales-legal-notices-two-day-sample) | First run / Store Try |
| [French redressement & sauvegarde export](https://apify.com/corent1robert/actulegales-scraper/examples/french-redressement-sauvegarde-export) | M\&A / distressed deal sourcing |

***

### Input

```json
{
  "startDate": "01/08/2026",
  "endDate": "20/08/2026",
  "departments": ["75"],
  "maxResults": 10
}
```

```json
{
  "startDate": "01/08/2026",
  "endDate": "",
  "maxResults": 0
}
```

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startDate` | string | `01/06/2025` | `DD/MM/YYYY`. Try prefill: `01/08/2026` |
| `endDate` | string | today | Empty = today |
| `departments` | string\[] | all 01–95 | e.g. `75`, `69`. Try prefill: **75** |
| `maxResults` | integer | `0` | Row cap. Try prefill: **10**. `0` = unlimited |
| `maxConcurrency` | integer | `10` | Departments in parallel. Try prefill: **2** |
| `delayBetweenRequests` | integer | `200` | Pause in ms |
| `limitNb` | integer | `50` | Page size (10–100) |
| `parallelRequests` | integer | `5` | Pagination parallelism |
| `cookies` | string | — | Optional session cookie header if blocked |

***

### Output example

Download JSON, CSV, Excel, or HTML from the Dataset tab.

```json
{
  "dateParution": "12/08/2026",
  "parutionDateISO": "2026-08-12",
  "nomEntreprise": "EXEMPLE SAS",
  "siren": "123456789",
  "typeProcedure": "Liquidation judiciaire",
  "departement": "75",
  "adresse": "75011 Paris",
  "journal": "Journal d'annonces légales",
  "urlFiche": "https://actulegales.fr/…"
}
```

***

### Performance and cost

Cost scales with **date range × departments**. Compute uses Apify CU pricing.

| Scenario | Typical size |
|----------|----------------|
| Store Try (75, 10 rows) | Under 5 minutes |
| Two-day window, all departments | Longer compute job |
| Full month, all departments | Raise timeout in Run options |

***

### Local development

```bash
npm install
## Edit input.json at the project root
apify run
```

***

### FAQ

- **Official API?** No. Public HTML/API used by actulegales.fr.
- **Empty dataset?** Widen the date range, or drop the department filter. Quiet days exist.
- **Need creations / fonds de commerce?** Use [BODACC](https://apify.com/corent1robert/bodacc-announcements-scraper).
- **Timed out on all France?** Set `departments` or a short window; increase Run timeout.

### Is it legal to scrape Actulegales?

Notices are **public legal announcements**. Follow **GDPR** if you store names for outreach. Prefer BODACC when you need the state gazette. See [Apify on scraping legality](https://blog.apify.com/is-web-scraping-legal/).

### Support

<corentin@outreacher.fr>

Ready? Keep the Try (Paris, 10 rows) or clear departments and click **Start**.

# Changelog

This Actor's version history is a separate document: https://apify.com/corent1robert/actulegales-scraper/changelog.md

# Actor input Schema

## `startDate` (type: `string`):

Start date in format DD/MM/YYYY (default: 01/06/2025)

## `endDate` (type: `string`):

End date in format DD/MM/YYYY. Leave empty for today's date.

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

French department codes, one per line (e.g. `75`, `69`). Leave empty to scrape **all** departments 01–95.

## `maxResults` (type: `integer`):

Stop after this many rows. **0** = no cap. Console Try uses **10**.

## `maxConcurrency` (type: `integer`):

How many pages to fetch in parallel. Lower this if the source slows down or blocks.

## `requestTimeout` (type: `integer`):

Maximum timeout for each request in milliseconds (default: 45000 = 45 seconds).

## `delayBetweenRequests` (type: `integer`):

Pause between requests. Increase if the source slows down.

## `limitNb` (type: `integer`):

Number of results to fetch per API request (default: 50). Higher values = fewer requests but larger payloads.

## `parallelRequests` (type: `integer`):

Number of parallel requests for pagination within each department (default: 5). Higher values = faster pagination but more server load.

## `cookies` (type: `string`):

Optional. Paste a cookie header from an already-open actulegales.fr session if runs are blocked. Leave empty otherwise.

## Actor input object example

```json
{
  "startDate": "01/08/2026",
  "endDate": "",
  "departments": [
    "75"
  ],
  "maxResults": 10,
  "maxConcurrency": 2,
  "requestTimeout": 45000,
  "delayBetweenRequests": 200,
  "limitNb": 50,
  "parallelRequests": 5,
  "cookies": ""
}
```

# Actor output Schema

## `announcements` (type: `string`):

Interactive table with all announcements. Filterable and sortable by columns (date, department, procedure type, SIREN, etc.).

## `announcementsByDepartment` (type: `string`):

Announcements grouped by department for easy browsing

## `announcementsByProcedure` (type: `string`):

Announcements grouped by procedure type (Redressement, Liquidation, Sauvegarde, etc.)

## `statistics` (type: `string`):

Statistics on extracted data (total announcements, departments, procedure types, etc.)

# 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 = {
    "startDate": "01/08/2026",
    "departments": [
        "75"
    ],
    "maxResults": 10,
    "maxConcurrency": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("corent1robert/actulegales-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 = {
    "startDate": "01/08/2026",
    "departments": ["75"],
    "maxResults": 10,
    "maxConcurrency": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("corent1robert/actulegales-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 '{
  "startDate": "01/08/2026",
  "departments": [
    "75"
  ],
  "maxResults": 10,
  "maxConcurrency": 2
}' |
apify call corent1robert/actulegales-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,corent1robert/actulegales-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/LVEVH5HyYK2SgKtpM/builds/YvYgh1q3a6DcsXmFD/openapi.json
