# Centraal Insolventieregister Scraper (`dariomory/centraal-insolventieregister-scraper`) Actor

Search the Dutch Centraal Insolventieregister for bankruptcies, surseances, and debt-restructurings. Export insolvente persons and companies, case detail, curators and administrators, addresses, trade names, full publication history, and approved case reports.

- **URL**: https://apify.com/dariomory/centraal-insolventieregister-scraper.md
- **Developed by:** [Dario Mory](https://apify.com/dariomory) (community)
- **Categories:** Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 insolventie 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/platform/actors/running/actors-in-store#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

## Centraal Insolventieregister Scraper

Search the Dutch Centraal Insolventieregister (insolventies.rechtspraak.nl) for bankruptcies (faillissementen), moratoriums (surseances van betaling), and debt-restructurings (schuldsaneringen natuurlijke personen). Export the insolvente person or company, case detail, curators and administrators, addresses, trade names, the full publication history, and approved case reports.

The Actor uses the structured JSON services that power the public CIR website. It needs no browser, proxy, or CIR account.

### Who is this for

Credit insurers, debt collectors, and B2B risk teams who need to monitor Dutch insolvency proceedings daily and to enrich their CRM with full case detail. Recommended usage: schedule the kenmerk search with `periode: "Vandaag"` every working day to catch new publications, then use the rechtspersoon search to back-check a portfolio of counterparty names or KvK numbers.

### What can you extract?

- Matched publication mark and description (`publicatiekenmerk`, `publicatieomschrijving`)
- Case identifiers: `landelijkUniekZaaknummer` (e.g. `R.05/26/1239`), `toezichtZaaknummer`, `ssrNummer`, `vorigInsolventienummer`
- Insolvente subject: name, prefix, date/place of birth, KvK number
- Trade names the debtor operates under (`handelendOnderDeNamen`) with KvK and branch addresses
- Home, branch, and correspondence addresses
- Curators (`curators`) and administrators/bewindvoerders (`bewindvoerders`)
- Handling court (`behandelendeInstantieNaam`) and examining judge (`rechtercommissaris`)
- Full publication history per case (`publicatiegeschiedenis`) with dates and descriptions
- Approved case reports (`verslagen`) when available

### Input

#### Daily monitoring (kenmerk, default)

```json
{
  "searchType": "kenmerk",
  "periode": "Vandaag",
  "rechtbank": ["all"],
  "publicatiesoort": ["all"],
  "includeDetails": true,
  "includeVerslagen": true,
  "maxItems": 200
}
```

#### Company / trade-name search (rechtspersoon)

```json
{
  "searchType": "rechtspersoon",
  "naam": "Visser",
  "kvk": "",
  "includeDetails": true,
  "maxItems": 50
}
```

#### Private-person search (natuurlijkpersoon)

```json
{
  "searchType": "natuurlijkpersoon",
  "achternaam": "Hamoen",
  "geboortedatum": "22-06-1966",
  "includeDetails": true,
  "maxItems": 50
}
```

- `periode`: `Vandaag`, `Laatste week`, or `Laatste maand` (kenmerk only).
- `rechtbank`: one or more court slugs (e.g. `amsterdam`, `den haag`, `gelderland`, `limburg`, `midden-nederland`, `noord-holland`, `noord-nederland`, `oost-brabant`, `overijssel`, `rotterdam`, `zeeland-west-brabant`). Use `all` for every court.
- `publicatiesoort`: publication-type slugs (`overig`, `einde surseances`, `einde schuldsaneringen`, `einde faillissementen`, `uitspraken schuldsanering`, `uitspraken surseance`, `uitspraken faillissement`). Use `all` for every type.
- `publicatiekenmerk` (e.g. `05.gel.26.1239.R.2301.1.26`) or `insolventienummer` (e.g. `R.05/26/1239`) for direct lookups.
- `naam` is the company / trade name for rechtspersoon, or the last name (achternaam) for natuurlijkpersoon.
- `kvk` is the Chamber of Commerce number for rechtspersoon.
- For natuurlijkpersoon the valid search combinations are `achternaam + geboortedatum`, `achternaam + postcode + huisnummer`, or `geboortedatum + postcode + huisnummer`.
- `includeDetails` fetches the full case record per matched publication. `includeVerslagen` adds approved administrator reports when present.

### Output

```json
{
  "searchType": "kenmerk",
  "publicatiekenmerk": "05.gel.26.1239.R.2301.1.26",
  "publicatieomschrijving": "Uitspraak schuldsanering op 30 juli 2026",
  "persoonType": null,
  "naam": "Mirjam Hamoen",
  "voornaam": "Mirjam",
  "voorvoegsel": null,
  "achternaam": "Hamoen",
  "geboortedatum": "1966-06-22",
  "geboorteplaats": "Zeist",
  "kvkNummer": "64478386",
  "rechtbank": "Rechtbank Gelderland",
  "behandelendeInstantieNaam": "Rechtbank Gelderland",
  "rechtercommissaris": "mr. O. Nijhuis",
  "landelijkUniekZaaknummer": "R.05/26/1239",
  "toezichtZaaknummer": "NL:TZ:0000539566:R001",
  "geheimAdres": false,
  "woonadressen": [{ "adresType": "WOON", "straat": "Kerkweg", "huisnummer": "2", "huisnummerToevoeging1": "A", "postcode": "6905AW", "plaats": "Zevenaar" }],
  "vestigingsadressen": [],
  "correspondentieadressen": [],
  "handelendOnderDeNamen": [
    {
      "kvkNummer": "64478386",
      "handelsnaam": "Gewoon Mirjam Uitvaartbegeleiding",
      "voorheen": false,
      "vestigingsadressen": [{ "adresType": "VEST", "straat": "Romei", "huisnummer": "22", "postcode": "6901AV", "plaats": "Zevenaar" }]
    }
  ],
  "bewindvoerders": [
    { "voorletters": "P.J.S.", "achternaam": "Ramakers", "adres": { "straat": "Postbus", "huisnummer": "3155", "postcode": "6802DD", "plaats": "Arnhem", "telefoonnummer": "026-3777111" } }
  ],
  "curators": [],
  "publicatiegeschiedenis": [
    { "publicatieDatum": "2026-07-30T22:00:00.000Z", "publicatieKenmerk": "05.gel.26.1239.R.2301.1.26", "publicatieOmschrijving": "Uitspraak schuldsanering op 30 juli 2026" }
  ],
  "verslagen": [],
  "detailUrl": "https://insolventies.rechtspraak.nl/details/05.gel.26.1239.R.2301.1.26",
  "source": "CIR public website REST API",
  "scrapedAt": "2026-08-02T00:32:30.498Z"
}
```

One dataset row is produced per matched publication, enriched with the full case detail. Multiple publications that belong to the same case (same `landelijkUniekZaaknummer`) appear as separate rows so you can filter on publication type and date.

### Pay-per-event pricing

Configure these events in Apify Console:

| Event name | Title | Description | Recommended price |
| --- | --- | --- | --- |
| `insolventie-result` | Insolventie result | One matched publication enriched with full case detail, addresses, curators, publication history, and reports. | `$0.005` |

Keep `apify-actor-start` at `$0.00005`. Remove `apify-default-dataset-item` to avoid charging twice for the same record. A daily `Vandaag` run typically returns a handful of records (a few cents per day).

### API

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("dariomory/centraal-insolventieregister-scraper").call(run_input={
    "searchType": "kenmerk",
    "periode": "Vandaag",
    "includeDetails": True,
    "includeVerslagen": True,
    "maxItems": 200,
})

print(run["defaultDatasetId"])
```

### Limits

- The kenmerk search returns all matched publications in one request; the Actor then paginates detail and report lookups per matched publication up to `maxItems`.
- Publication dates follow Netherlands court-time (CET/CEST). The Actor computes the periode start date in UTC.
- CIR publishes insolvencies from 1 January 2005 onward and keeps records available until six months after the case ends.
- The CIR site uses an anti-CSRF token plus cookie pairing. The Actor fetches a fresh pairing each run and refreshes it automatically if a request is rejected mid-run.
- Be considerate of this public judiciary service when running large back-fill jobs.

This Actor is independent and is not affiliated with or endorsed by the Dutch Council for the Judiciary (Raad voor de Rechtspraak).

# Actor input Schema

## `searchType` (type: `string`):

Kenmerk = daily monitoring by date, court, and publication type. Rechtspersoon = search companies / trade names / KvK. Natuurlijkpersoon = search private persons.

## `periode` (type: `string`):

Publication date window for the kenmerk search. The Actor computes the matching start date itself.

## `rechtbank` (type: `array`):

One or more court slugs. Use 'all' (default) to search every court.

## `publicatiesoort` (type: `array`):

Filter by type of publication. Use 'all' (default) for every type.

## `publicatiekenmerk` (type: `string`):

Direct lookup of a single publication mark, e.g. 05.gel.26.1239.R.2301.1.26.

## `insolventienummer` (type: `string`):

Case number such as R.05/26/1239 (landelijk uniek zaaknummer).

## `naam` (type: `string`):

Rechtspersoon: company name, trade name, or part of it. Natuurlijkpersoon: last name (achternaam).

## `voorvoegsel` (type: `string`):

Prefix such as 'van', 'de', 'van der'.

## `kvk` (type: `string`):

Chamber of Commerce number, 8 or 12 digits.

## `postcode` (type: `string`):

Dutch postcode, e.g. 6905AW.

## `huisnummer` (type: `string`):

House number or PO-box number required in combination with postcode.

## `geboortedatum` (type: `string`):

DOB as dd-MM-yyyy.

## `includeDetails` (type: `boolean`):

Call the CIR detail endpoint for each publication to add person/company data, addresses, curators, administrators, and the full publication history.

## `includeVerslagen` (type: `boolean`):

Add goedgekeurde verslagen (administrator reports) for each case when available.

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

Maximum number of matched publications saved across all searches.

## Actor input object example

```json
{
  "searchType": "kenmerk",
  "periode": "Vandaag",
  "rechtbank": [
    "all"
  ],
  "publicatiesoort": [
    "all"
  ],
  "includeDetails": true,
  "includeVerslagen": true,
  "maxItems": 200
}
```

# 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 = {
    "rechtbank": [
        "all"
    ],
    "publicatiesoort": [
        "all"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("dariomory/centraal-insolventieregister-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 = {
    "rechtbank": ["all"],
    "publicatiesoort": ["all"],
}

# Run the Actor and wait for it to finish
run = client.actor("dariomory/centraal-insolventieregister-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "rechtbank": [
    "all"
  ],
  "publicatiesoort": [
    "all"
  ]
}' |
apify call dariomory/centraal-insolventieregister-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=dariomory/centraal-insolventieregister-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3bD9p025msEbhwG13/builds/Dw9Cmwgznt69JpfBn/openapi.json
