# InsolvencyAPI complete reference

Company insolvency cases in 23 countries across Europe, North America and South Korea, notices for the United Kingdom and France, company checks and statistics, through one REST API.

- Base URL: `https://api.insolvencyapi.com/v1`
- Authentication: `X-API-Key: YOUR_KEY`, or `Authorization: Bearer YOUR_KEY`
- Site: https://insolvencyapi.com
- Endpoints: 24
- Generated: 2026-10-21
- This file: https://insolvencyapi.com/documentation/manual.md

## Before anything else

Company insolvency in 23 countries across Europe, North America and South Korea, organised into **cases**: one company in one procedure. In the United Kingdom and France each case carries every notice published in it; in the other countries the case comes from the register and court records, with its dates.

- **Companies only.** Individuals are left out: no personal bankruptcies, no sole traders as people, no sanctions against directors. No person is ever named.
- **Our own words.** Procedures, notice steps, statuses, sectors and drivers are one vocabulary across countries (`/v1/vocabulary`); legal terms are translated.
- **Claims deadlines** come from the notice where it sets one. In France, where the law gives creditors two months from the opening's publication, that date is worked out for you.
- **Factual data only:** no scores, ratings or predictions, and nothing here is legal or financial advice.
- **The envelope.** Every answer is JSON: `data` holds the result and `meta` describes it (counts and pages for a list, and on the free plan a `note` naming the plan that fills the null fields).

The data is public and openly licensed; the publishers and their licences are listed at [https://insolvencyapi.com/licences](https://insolvencyapi.com/licences).

## Plans

| Plan | Price | Reads | Rate | Calls |
|---|---|---|---|---|
| Developer | free | yesterday back 90 days (today appears tomorrow) | 30 a minute | 100 a day |
| Professional | $149 a month | everything held | 120 a minute | 50,000 a month |
| Intel | $249 a month | everything held | 300 a minute | 100,000 a month |

Every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `X-Quota-Remaining`. A call refused for its rate or allowance is not counted. `GET /v1/usage` shows where you stand and is never counted.

## Coverage

Counted from the data, the same figures as `GET /v1/coverage`:

- United Kingdom: 717,978 cases from 1921-06-23 to 2026-10-30, 1,678,029 notices
- France: 1,254,378 cases from 1985-12-27 to 2026-10-30, 2,495,931 notices
- Austria: 988 cases from 2008-02-18 to 2026-10-30
- Switzerland: 38,606 cases from 1924-12-17 to 2026-10-30
- Czechia: 317,724 cases from 1991-11-05 to 2026-10-27
- Germany: 56,134 cases from 2004-03-23 to 2026-10-28
- Estonia: 10,314 cases from 2002-04-04 to 2026-10-28
- Spain: 104,389 cases from 2004-09-14 to 2026-10-16
- Finland: 11,096 cases from 1986-02-20 to 2026-10-28
- Croatia: 122,366 cases from 2015-09-01 to 2026-10-29
- Ireland: 9,503 cases from 1976-10-27 to 2026-10-15
- South Korea: 3,794 cases from 2026-04-22 to 2026-10-30
- Lithuania: 3,916 cases from 1997-01-20 to 2026-10-20
- Latvia: 18,052 cases from 2008-01-03 to 2026-10-28
- Norway: 13,287 cases from 2014-07-16 to 2026-10-30
- Poland: 62,581 cases from 1983-04-20 to 2026-10-28
- Portugal: 56,513 cases from 1984-11-02 to 2026-10-29
- Romania: 190,700 cases from 2018-04-30 to 2026-10-19
- Sweden: 93,687 cases from 1947-03-22 to 2026-10-23
- Slovenia: 7,597 cases from 2008-10-06 to 2026-10-29
- Slovakia: 45,760 cases from 1991-10-01 to 2026-10-29
- Ukraine: 15,854 cases from 2014-01-20 to 2026-10-29
- United States: 3,994 cases from 2003-03-06 to 2026-10-30
- Belgium: official monthly counts from 2005-01-01 to 2026-08-01
- Denmark: official monthly counts from 1979-01-01 to 2026-09-01

## Endpoints

### Cases

Cases and their published notices.

#### `GET /v1/cases`

Every case held in 18 countries, newest activity first, filtered any way you like.

Plans: Developer, Professional, Intel. MCP tool: `find_cases`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | no | One or more countries, comma separated. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr | `gb,fr` |
| `procedure` | query | list | no | One or more procedures, see /v1/vocabulary. One of: compulsory_liquidation, creditors_voluntary_liquidation, members_voluntary_liquidation, administration, administrative_receivership, receivership, moratorium, judicial_liquidation, judicial_reorganisation, safeguard, conciliation, other, bankruptcy, insolvency, liquidation, liquidation_unspecified, restructuring, forced_dissolution, external_administration | `compulsory_liquidation` |
| `status` | query | list | no | petition, open, closing, closed or dismissed. One of: petition, open, closing, closed, dismissed | `open` |
| `opened_from` | query | date | no | Proceedings opened on or after | `2026-10-01` |
| `opened_to` | query | date | no | Proceedings opened on or before | `2026-10-31` |
| `updated_since` | query | date | no | Only cases with something new on or after this day | `2026-10-13` |
| `sector` | query | list | no | One or more sector sections, A to U, see /v1/vocabulary (UK and France). One of: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U | `F` |
| `claims_open` | query | true or false | no | true for cases still taking creditors' claims (UK and France). One of: true, false | `true` |
| `register_number` | query | text | no | One company, by its number in its country's register (needs one country) |  |
| `postcode` | query | text | no | Registered office postcode, or the start of one (UK and France) | `LS1` |
| `q` | query | text | no | Part of the company name, 3 characters or more | `freight` |
| `limit` | query | number | no | Results a page: 25 if left out, up to 100 on paid plans and 25 on Developer |  |
| `page` | query | number | no | The page, from 1 |  |
| `cursor` | query | text | no | The next_cursor from the page before |  |

Errors: `bad_request` (400), `unauthorized` (401), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

> On Developer, results cover yesterday back 90 days (today appears tomorrow) and paid fields come back as `null`. Professional and Intel read the full history, back to 1921 where a country goes that far.

Filters on sector, postcode and claims work in the UK and France, where the register gives them.

```json
{
    "data": [
        {
            "id": "cs_5z3tyna7",
            "country": "gb",
            "company": {
                "register_number": "10144457",
                "name": "BOLD STRIPE SOLUTIONS LIMITED",
                "town": "BIRMINGHAM",
                "postcode": "B4 6EQ",
                "sic": "70229",
                "sector": {
                    "code": "M",
                    "label": "Professional, scientific and technical activities"
                },
                "register_status": "Active",
                "nature_of_business": null
            },
            "procedure": "members_voluntary_liquidation",
            "procedure_label": "Members' voluntary liquidation",
            "status": "open",
            "status_label": "Proceedings are open",
            "petition_on": null,
            "opened_on": "2026-10-30",
            "opened_after": null,
            "opened_precision": "day",
            "closed_on": null,
            "closed_by": null,
            "claims_deadline": null,
            "next_hearing": null,
            "last_hearing": null,
            "court": null,
            "court_case_ref": null,
            "first_notice_on": "2026-10-30",
            "last_notice_on": "2026-10-30",
            "notice_count": 2,
            "last_activity_on": "2026-10-30"
        },
        {
            "id": "cs_7tacdyz0",
            "country": "gb",
            "company": {
                "register_number": "08539599",
                "name": "FORT AMHERST HALLOWEEN LIMITED",
                "town": "CHATHAM",
                "postcode": "ME4 4UB",
                "sic": "91030",
                "sector": {
                    "code": "R",
                    "label": "Arts, entertainment and recreation"
                },
                "register_status": "Active",
                "nature_of_business": null
            },
            "procedure": "creditors_voluntary_liquidation",
            "procedure_label": "Creditors' voluntary liquidation",
            "status": "open",
            "status_label": "Proceedings are open",
            "petition_on": null,
            "opened_on": "2026-10-30",
            "opened_after": null,
            "opened_precision": "day",
            "closed_on": null,
            "closed_by": null,
            "claims_deadline": null,
            "next_hearing": null,
            "last_hearing": null,
            "court": null,
            "court_case_ref": null,
            "first_notice_on": "2026-10-30",
            "last_notice_on": "2026-10-30",
            "notice_count": 1,
            "last_activity_on": "2026-10-30"
        }
    ],
    "meta": {
        "count": 2,
        "next_cursor": "eyJvIjoyLCJwIjoyfQ",
        "page": 1,
        "limit": 2,
        "total": 100000,
        "total_exact": false,
        "total_pages": null,
        "next_page": 2,
        "prev_page": null
    }
}
```

Docs: https://insolvencyapi.com/documentation/cases

#### `GET /v1/cases/{case_id}`

One case, with every notice in it in date order where the country publishes notices.

Plans: Developer, Professional, Intel. MCP tool: `get_case`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `case_id` | path | text | yes | The case id, such as cs_7hq2lwx4, in the address |  |

Errors: `bad_request` (400), `unauthorized` (401), `not_found` (404), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

Notices are held for the UK and France. In the other countries the case comes from the register and court records, with its dates, and `notices` is empty.

```json
{
    "data": {
        "id": "cs_k54b7nzt",
        "country": "gb",
        "company": {
            "register_number": "04542915",
            "name": "KMJ VENTILATION LIMITED",
            "town": "WORCESTERSHIRE",
            "postcode": "WR9 7DQ",
            "sic": "43220",
            "sector": {
                "code": "F",
                "label": "Construction"
            },
            "register_status": "Active",
            "nature_of_business": null
        },
        "procedure": "members_voluntary_liquidation",
        "procedure_label": "Members' voluntary liquidation",
        "status": "open",
        "status_label": "Proceedings are open",
        "petition_on": null,
        "opened_on": "2026-10-30",
        "opened_after": null,
        "opened_precision": "day",
        "closed_on": null,
        "closed_by": null,
        "claims_deadline": null,
        "next_hearing": null,
        "last_hearing": null,
        "court": null,
        "court_case_ref": null,
        "first_notice_on": "2026-10-30",
        "last_notice_on": "2026-10-30",
        "notice_count": 3,
        "last_activity_on": "2026-10-30",
        "notices": [
            {
                "id": "nt_cegh63t0",
                "case_id": "cs_k54b7nzt",
                "country": "gb",
                "step": "notice_to_creditors",
                "step_label": "Notice to creditors to prove debts",
                "procedure": "members_voluntary_liquidation",
                "published_on": "2026-10-30",
                "event_on": null,
                "company": {
                    "register_number": "04542915",
                    "name": "KMJ VENTILATION LIMITED"
                },
                "claims_deadline": null,
                "hearing": null,
                "court": null,
                "court_case_ref": null,
                "details": []
            },
            {
                "id": "nt_275e60z4",
                "case_id": "cs_k54b7nzt",
                "country": "gb",
                "step": "liquidator_appointed",
                "step_label": "Liquidator appointed",
                "procedure": "members_voluntary_liquidation",
                "published_on": "2026-10-30",
                "event_on": null,
                "company": {
                    "register_number": "04542915",
                    "name": "KMJ VENTILATION LIMITED"
                },
                "claims_deadline": null,
                "hearing": null,
                "court": null,
                "court_case_ref": null,
                "details": []
            }
        ]
    },
    "meta": {}
}
```

Docs: https://insolvencyapi.com/documentation/case

#### `GET /v1/cases/{case_id}/notices`

Every notice in one case, oldest first.

Plans: Developer, Professional, Intel

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `case_id` | path | text | yes | The case id, such as cs_7hq2lwx4, in the address |  |

Errors: `bad_request` (400), `unauthorized` (401), `not_found` (404), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "id": "nt_cegh63t0",
            "case_id": "cs_k54b7nzt",
            "country": "gb",
            "step": "notice_to_creditors",
            "step_label": "Notice to creditors to prove debts",
            "procedure": "members_voluntary_liquidation",
            "published_on": "2026-10-30",
            "event_on": null,
            "company": {
                "register_number": "04542915",
                "name": "KMJ VENTILATION LIMITED"
            },
            "claims_deadline": null,
            "hearing": null,
            "court": null,
            "court_case_ref": null,
            "details": []
        },
        {
            "id": "nt_275e60z4",
            "case_id": "cs_k54b7nzt",
            "country": "gb",
            "step": "liquidator_appointed",
            "step_label": "Liquidator appointed",
            "procedure": "members_voluntary_liquidation",
            "published_on": "2026-10-30",
            "event_on": null,
            "company": {
                "register_number": "04542915",
                "name": "KMJ VENTILATION LIMITED"
            },
            "claims_deadline": null,
            "hearing": null,
            "court": null,
            "court_case_ref": null,
            "details": []
        }
    ],
    "meta": {
        "count": 3,
        "next_cursor": null,
        "page": 1,
        "limit": 25,
        "total": 3,
        "total_exact": true,
        "total_pages": 1,
        "next_page": null,
        "prev_page": null
    }
}
```

Docs: https://insolvencyapi.com/documentation/case-notices

#### `GET /v1/notices`

Every published notice, newest first, in the countries that publish notices (UK and France).

Plans: Developer, Professional, Intel. MCP tool: `latest_notices`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | no | gb, fr or both. One of: gb, fr | `fr` |
| `step` | query | list | no | One or more notice steps, see /v1/vocabulary. One of: petition_filed, petition_served, petition_dismissed, winding_up_order, resolution_to_wind_up, liquidator_appointed, liquidator_released, administrator_appointed, administration_order, receiver_appointed, creditors_meeting, notice_to_creditors, notice_to_members, deemed_consent, decision_procedure, intended_dividend, dividend, annual_meeting, final_meeting, public_examination, moratorium_started, moratorium_ended, prohibited_name, cross_border, opening_judgment, plan_adopted, conversion, closing_judgment, claims_list_filed, plan_changed, plan_cancelled, extension, distribution_plan_filed, reopened, opening_withdrawn, appeal_decision, officeholders_appointed, other | `winding_up_order` |
| `procedure` | query | list | no | One or more procedures. One of: compulsory_liquidation, creditors_voluntary_liquidation, members_voluntary_liquidation, administration, administrative_receivership, receivership, moratorium, judicial_liquidation, judicial_reorganisation, safeguard, conciliation, other | `judicial_liquidation` |
| `published_from` | query | date | no | Published on or after | `2026-10-13` |
| `published_to` | query | date | no | Published on or before | `2026-10-14` |
| `limit` | query | number | no | Results a page: 25 if left out, up to 100 on paid plans and 25 on Developer |  |
| `page` | query | number | no | The page, from 1 |  |
| `cursor` | query | text | no | The next_cursor from the page before |  |

Errors: `bad_request` (400), `unauthorized` (401), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

Every notice carries its `case_id`, so [One case](https://insolvencyapi.com/documentation/case) gives the whole story. Notices are held for the UK and France.

```json
{
    "data": [
        {
            "id": "nt_5n8e98xr",
            "case_id": "cs_6mdtsgbd",
            "country": "fr",
            "step": "claims_list_filed",
            "step_label": "List of claims filed with the court",
            "procedure": "judicial_liquidation",
            "published_on": "2026-10-30",
            "event_on": "2026-10-21",
            "company": {
                "register_number": "823797618",
                "name": "SAS MB IMPORT DISTRIBUTION LA REUNION"
            },
            "claims_deadline": null,
            "hearing": null,
            "court": "TRIBUNAL MIXTE DE COMMERCE DE SAINT-DENIS DE LA RÉUNION",
            "court_case_ref": null,
            "details": {
                "registered_office": "20 b rue Felix Guyon, 97400 Saint-Denis",
                "nature_of_business": "import export négoce distribution d'accessoires pour fumeur, narguilés, enseignes, site web, vente au détail textiles, restauration, boissons. vente d'accessoires de fumeurs et narquilés.",
                "legal_form": "Société par Actions Simplifiée"
            }
        },
        {
            "id": "nt_ghcejkph",
            "case_id": "cs_mpa8rmrk",
            "country": "fr",
            "step": "claims_list_filed",
            "step_label": "List of claims filed with the court",
            "procedure": "judicial_liquidation",
            "published_on": "2026-10-30",
            "event_on": "2026-10-09",
            "company": {
                "register_number": "895048148",
                "name": "SARL QUINCAILLERIE MAILLOT"
            },
            "claims_deadline": null,
            "hearing": null,
            "court": "TRIBUNAL MIXTE DE COMMERCE DE SAINT-DENIS DE LA RÉUNION",
            "court_case_ref": null,
            "details": {
                "registered_office": "57 rue Michel Debré, 97433 Salazie",
                "nature_of_business": "quincaillerie générale, vente d'aliments pour animaux, vente de produits phytosanitaires et agricoles, bazar, vente de matériaux de construction.",
                "legal_form": "Société à Responsabilité Limitée"
            }
        }
    ],
    "meta": {
        "count": 2,
        "next_cursor": "eyJvIjoyLCJwIjoyfQ",
        "page": 1,
        "limit": 2,
        "total": 100000,
        "total_exact": false,
        "total_pages": null,
        "next_page": 2,
        "prev_page": null
    }
}
```

Docs: https://insolvencyapi.com/documentation/notices

#### `GET /v1/claims-deadlines` (Professional and Intel)

Cases where creditors can still send their claims, soonest deadline first (France in full; UK deadlines are rare).

Plans: Professional, Intel. MCP tool: `claims_deadlines`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | no | gb, fr or both (UK deadlines are rare). One of: gb, fr | `fr` |
| `from` | query | date | no | Deadlines on or after (today if left out) | `2026-10-14` |
| `before` | query | date | no | Deadlines on or before (60 days ahead if left out) | `2026-11-30` |
| `register_number` | query | list | no | Only these companies, comma separated, such as the customers on your books | `09412377,812334905` |
| `limit` | query | number | no | Results a page: 25 if left out, up to 100 on paid plans and 25 on Developer |  |
| `page` | query | number | no | The page, from 1 |  |
| `cursor` | query | text | no | The next_cursor from the page before |  |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

A deadline comes from the notice that sets one. In France, where the law gives creditors two months from the opening’s publication, the date is worked out for you.

> UK deadlines are rare. A UK notice to creditors states its deadline further into the notice than the part open to us, so few UK cases carry one; `country=gb` still works and returns those held. France has a deadline on every opening.

```json
{
    "data": [
        {
            "id": "cs_h6wbb4yk",
            "country": "fr",
            "company": {
                "register_number": "534010293",
                "name": "RESTOALENCON",
                "town": "Saint-Barthélemy-d'Anjou",
                "postcode": "49124",
                "sic": "56.10A",
                "sector": {
                    "code": "I",
                    "label": "Accommodation and food services"
                },
                "register_status": "Active",
                "nature_of_business": "Restauration traditionnelle"
            },
            "procedure": "judicial_reorganisation",
            "procedure_label": "Judicial reorganisation",
            "status": "open",
            "status_label": "Proceedings are open",
            "petition_on": null,
            "opened_on": "2026-07-01",
            "opened_after": null,
            "opened_precision": "day",
            "closed_on": null,
            "closed_by": null,
            "claims_deadline": "2026-10-31",
            "next_hearing": null,
            "last_hearing": null,
            "court": "Tribunal de Commerce d'Angers",
            "court_case_ref": null,
            "first_notice_on": "2026-07-10",
            "last_notice_on": "2026-08-31",
            "notice_count": 2,
            "last_activity_on": "2026-08-31",
            "days_left": 0
        },
        {
            "id": "cs_b3vmygrn",
            "country": "fr",
            "company": {
                "register_number": "985296615",
                "name": "GLT BATIMENT",
                "town": "Saint-Mandé",
                "postcode": "94160",
                "sic": "41.20A",
                "sector": {
                    "code": "F",
                    "label": "Construction"
                },
                "register_status": "Active",
                "nature_of_business": "Entreprise générale du bâtiment, maçonnerie et autres travaux de construction rénovation, couverture, plomberie chauffage, travaux d'installation électrique et d'isolation."
            },
            "procedure": "judicial_reorganisation",
            "procedure_label": "Judicial reorganisation",
            "status": "open",
            "status_label": "Proceedings are open",
            "petition_on": null,
            "opened_on": "2026-07-27",
            "opened_after": null,
            "opened_precision": "day",
            "closed_on": null,
            "closed_by": null,
            "claims_deadline": "2026-10-31",
            "next_hearing": null,
            "last_hearing": null,
            "court": "Tribunal de Commerce de Meaux",
            "court_case_ref": null,
            "first_notice_on": "2026-08-12",
            "last_notice_on": "2026-08-31",
            "notice_count": 2,
            "last_activity_on": "2026-08-31",
            "days_left": 0
        }
    ],
    "meta": {
        "count": 2,
        "next_cursor": "eyJvIjoyLCJwIjoyfQ",
        "page": 1,
        "limit": 2,
        "total": 9996,
        "total_exact": true,
        "total_pages": 4998,
        "next_page": 2,
        "prev_page": null,
        "from": "2026-10-31",
        "before": "2026-12-30"
    }
}
```

Docs: https://insolvencyapi.com/documentation/claims-deadlines

#### `GET /v1/petitions` (Professional and Intel)

UK winding-up petitions filed and not yet decided, newest first.

Plans: Professional, Intel. MCP tool: `pending_petitions`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `filed_from` | query | date | no | Petitions filed on or after | `2026-10-01` |
| `hearing_from` | query | date | no | Next hearing on or after, where published |  |
| `hearing_to` | query | date | no | Next hearing on or before, where published |  |
| `q` | query | text | no | Part of the company name, 3 characters or more |  |
| `limit` | query | number | no | Results a page: 25 if left out, up to 100 on paid plans and 25 on Developer |  |
| `page` | query | number | no | The page, from 1 |  |
| `cursor` | query | text | no | The next_cursor from the page before |  |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

> A petition is not a decision: many are paid off or dismissed. When one is decided, the case moves on in [Find cases](https://insolvencyapi.com/documentation/cases).

```json
{
    "data": [
        {
            "id": "cs_kxzra32b",
            "country": "gb",
            "company": {
                "register_number": "SC649899",
                "name": "THE MILL FORFAR LTD",
                "town": "FORFAR",
                "postcode": "DD8 1XF",
                "sic": "56101",
                "sector": {
                    "code": "I",
                    "label": "Accommodation and food services"
                },
                "register_status": "Active",
                "nature_of_business": null
            },
            "procedure": "compulsory_liquidation",
            "procedure_label": "Compulsory liquidation (winding up by the court)",
            "status": "petition",
            "status_label": "A petition is pending",
            "petition_on": "2026-10-30",
            "opened_on": null,
            "opened_after": null,
            "opened_precision": "day",
            "closed_on": null,
            "closed_by": null,
            "claims_deadline": null,
            "next_hearing": null,
            "last_hearing": null,
            "court": null,
            "court_case_ref": null,
            "first_notice_on": "2026-10-30",
            "last_notice_on": "2026-10-30",
            "notice_count": 1,
            "last_activity_on": "2026-10-30"
        },
        {
            "id": "cs_7xwxv28b",
            "country": "gb",
            "company": {
                "register_number": "SC621130",
                "name": "ALI & MAC PROPERTIES LTD",
                "town": "ELGIN",
                "postcode": "IV30 1EE",
                "sic": "68100",
                "sector": {
                    "code": "L",
                    "label": "Real estate activities"
                },
                "register_status": "Active",
                "nature_of_business": null
            },
            "procedure": "compulsory_liquidation",
            "procedure_label": "Compulsory liquidation (winding up by the court)",
            "status": "petition",
            "status_label": "A petition is pending",
            "petition_on": "2026-10-30",
            "opened_on": null,
            "opened_after": null,
            "opened_precision": "day",
            "closed_on": null,
            "closed_by": null,
            "claims_deadline": null,
            "next_hearing": null,
            "last_hearing": null,
            "court": null,
            "court_case_ref": null,
            "first_notice_on": "2026-10-30",
            "last_notice_on": "2026-10-30",
            "notice_count": 1,
            "last_activity_on": "2026-10-30"
        }
    ],
    "meta": {
        "count": 2,
        "next_cursor": "eyJvIjoyLCJwIjoyfQ",
        "page": 1,
        "limit": 2,
        "total": 16575,
        "total_exact": true,
        "total_pages": 8288,
        "next_page": 2,
        "prev_page": null
    }
}
```

Docs: https://insolvencyapi.com/documentation/petitions

#### `GET /v1/feed/daily` (Intel)

Every notice published on one day, for loading in bulk, up to 1000 a page.

Plans: Intel

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `date` | query | date | yes | The publication day | `2026-10-13` |
| `country` | query | list | no | gb, fr or both. One of: gb, fr | `gb` |
| `limit` | query | number | no | Results a page: 25 if left out, up to 1,000 on paid plans and 25 on Developer |  |
| `page` | query | number | no | The page, from 1 |  |
| `cursor` | query | text | no | The next_cursor from the page before |  |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

A page of up to 1,000 notices is one call, so a whole day takes only a few.

```json
{
    "data": [
        {
            "id": "nt_pmn95kwn",
            "case_id": "cs_d1kmew6t",
            "country": "gb",
            "step": "petition_filed",
            "step_label": "Winding-up petition filed",
            "procedure": "compulsory_liquidation",
            "published_on": "2026-10-30",
            "event_on": "2026-09-23",
            "company": {
                "register_number": "07754344",
                "name": "BENFLEET PLASTIC WAREHOUSE LIMITED"
            },
            "claims_deadline": null,
            "hearing": {
                "date": "2026-11-11",
                "local_time": "10:30",
                "timezone": "Europe/London"
            },
            "court": "High Court of Justice, Business and Property Courts of England and Wales",
            "court_case_ref": "CR-2026-007229",
            "details": {
                "petitioner": "a creditor"
            }
        },
        {
            "id": "nt_0tz6yssw",
            "case_id": "cs_amhrjp4r",
            "country": "gb",
            "step": "petition_filed",
            "step_label": "Winding-up petition filed",
            "procedure": "compulsory_liquidation",
            "published_on": "2026-10-30",
            "event_on": "2026-09-24",
            "company": {
                "register_number": "04593308",
                "name": "ENVIRON AUDIO LIMITED"
            },
            "claims_deadline": null,
            "hearing": {
                "date": "2026-11-11",
                "local_time": null,
                "timezone": "Europe/London"
            },
            "court": "High Court of Justice, Business and Property Courts of England and Wales",
            "court_case_ref": "CR-2026-007423",
            "details": []
        }
    ],
    "meta": {
        "count": 2,
        "next_cursor": "eyJvIjoyLCJwIjoyfQ",
        "page": 1,
        "limit": 2,
        "total": 1832,
        "total_exact": true,
        "total_pages": 916,
        "next_page": 2,
        "prev_page": null
    }
}
```

Docs: https://insolvencyapi.com/documentation/daily-feed

### Companies

One company, a name, or a whole list.

#### `GET /v1/companies/{country}/{register_number}`

Is this company in insolvency? One company by its register number, with every case it has.

Plans: Developer, Professional, Intel. MCP tool: `lookup_company`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | path | text | yes | Two letters, in the address. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr |  |
| `register_number` | path | text | yes | Its number in that country’s register, in the address |  |

Errors: `bad_request` (400), `unauthorized` (401), `not_found` (404), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": {
        "country": "gb",
        "register_number": "10144457",
        "name": "BOLD STRIPE SOLUTIONS LIMITED",
        "register": {
            "status": "Active",
            "category": "Private Limited Company",
            "incorporated_on": "2016-04-25",
            "dissolved_on": null,
            "sic": "70229",
            "sic_label": "Management consultancy activities other than financial management",
            "town": "BIRMINGHAM",
            "postcode": "B4 6EQ",
            "filings": {
                "accounts_type": "TOTAL EXEMPTION FULL",
                "accounts_made_up_to": "2026-09-04",
                "accounts_due_on": "2028-06-04",
                "accounts_overdue": false,
                "accounts_days_late": 0,
                "confirmation_made_up_to": "2026-04-22",
                "confirmation_due_on": "2027-05-06",
                "confirmation_overdue": false
            },
            "as_of": "2026-10-01"
        },
        "accounts": {
            "currency": "GBP",
            "warning_signs": {
                "net_liabilities": false,
                "current_liabilities_exceed_assets": false,
                "net_assets_fell": true
            },
            "periods": [
                {
                    "period_end": "2026-09-04",
                    "employees": 1,
                    "turnover": null,
                    "profit_loss": null,
                    "fixed_assets": null,
                    "current_assets": 370621,
                    "cash": 369673,
                    "debtors": 948,
                    "inventories": null,
                    "creditors_within_one_year": -255,
                    "trade_creditors": null,
                    "bank_borrowings": null,
                    "tax_payable": null,
                    "net_current_assets": 370876,
                    "total_assets_less_current_liabilities": 370876,
                    "net_assets": 370876
                },
                {
                    "period_end": "2026-04-30",
                    "employees": 1,
                    "turnover": null,
                    "profit_loss": null,
                    "fixed_assets": null,
                    "current_assets": 384434,
                    "cash": 384398,
                    "debtors": 36,
                    "inventories": null,
                    "creditors_within_one_year": 12852,
                    "trade_creditors": null,
                    "bank_borrowings": null,
                    "tax_payable": null,
                    "net_current_assets": 371582,
                    "total_assets_less_current_liabilities": 371582,
                    "net_assets": 371582
                },
                {
                    "period_end": "2025-04-30",
                    "employees": 1,
                    "turnover": null,
                    "profit_loss": null,
                    "fixed_assets": null,
                    "current_assets": 352276,
                    "cash": 344341,
                    "debtors": 7935,
                    "inventories": null,
                    "creditors_within_one_year": 29677,
                    "trade_creditors": null,
                    "bank_borrowings": null,
                    "tax_payable": null,
                    "net_current_assets": 322599,
                    "total_assets_less_current_liabilities": 322599,
                    "net_assets": 322599
                }
            ]
        },
        "in_insolvency": true,
        "open_case_count": 1,
        "cases": [
            {
                "id": "cs_5z3tyna7",
                "country": "gb",
                "company": {
                    "register_number": "10144457",
                    "name": "BOLD STRIPE SOLUTIONS LIMITED",
                    "town": "BIRMINGHAM",
                    "postcode": "B4 6EQ",
                    "sic": "70229",
                    "sector": {
                        "code": "M",
                        "label": "Professional, scientific and technical activities"
                    },
                    "register_status": "Active",
                    "nature_of_business": null
                },
                "procedure": "members_voluntary_liquidation",
                "procedure_label": "Members' voluntary liquidation",
                "status": "open",
                "status_label": "Proceedings are open",
                "petition_on": null,
                "opened_on": "2026-10-30",
                "opened_after": null,
                "opened_precision": "day",
                "closed_on": null,
                "closed_by": null,
                "claims_deadline": null,
                "next_hearing": null,
                "last_hearing": null,
                "court": null,
                "court_case_ref": null,
                "first_notice_on": "2026-10-30",
                "last_notice_on": "2026-10-30",
                "notice_count": 2,
                "last_activity_on": "2026-10-30"
            }
        ],
        "checked_at": "2026-10-31T00:51:58Z"
    },
    "meta": {}
}
```

Docs: https://insolvencyapi.com/documentation/company

#### `GET /v1/companies/search`

Companies with insolvency cases whose name matches, in one country or all 18.

Plans: Developer, Professional, Intel. MCP tool: `search_companies`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `q` | query | text | yes | Part of the company name, 3 characters or more | `freight` |
| `country` | query | list | no | One or more countries, comma separated. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr | `gb,fr` |
| `limit` | query | number | no | Results a page: 25 if left out, up to 100 on paid plans and 25 on Developer |  |
| `page` | query | number | no | The page, from 1 |  |
| `cursor` | query | text | no | The next_cursor from the page before |  |

Errors: `bad_request` (400), `unauthorized` (401), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "country": "gb",
            "register_number": "06632666",
            "name": "FREIGHT LOGISTICS WAREHOUSING LTD.",
            "in_insolvency": true,
            "case_count": 1,
            "last_activity_on": "2026-10-30"
        },
        {
            "country": "gb",
            "register_number": "14393061",
            "name": "DDP FREIGHT (UK) LTD",
            "in_insolvency": true,
            "case_count": 1,
            "last_activity_on": "2026-10-22"
        }
    ],
    "meta": {
        "count": 2,
        "next_cursor": "eyJvIjoyLCJwIjoyfQ",
        "page": 1,
        "limit": 2,
        "total": 449,
        "total_exact": true,
        "total_pages": 225,
        "next_page": 2,
        "prev_page": null,
        "searched": "The 5,000 most recently active matching cases in each store"
    }
}
```

Docs: https://insolvencyapi.com/documentation/company-search

#### `POST /v1/companies/check`

Check up to 100 companies in one call, by register number or by name; each company counts as one call.

Plans: Developer, Professional, Intel. MCP tool: `check_companies`

Body:

```json
{
    "companies": [
        {
            "country": "gb",
            "register_number": "09412377"
        },
        {
            "name": "Nordvik Bygg AB"
        }
    ]
}
```

Errors: `bad_request` (400), `unauthorized` (401), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

Each company counts as one call. A name with no country is checked in every country; a UK name with its `postcode` tells two companies of the same name apart.

```json
{
    "data": [
        {
            "index": 0,
            "matched": true,
            "match": "register_number",
            "company": {
                "country": "gb",
                "register_number": "10144457",
                "name": "BOLD STRIPE SOLUTIONS LIMITED"
            },
            "in_insolvency": true,
            "cases": [
                {
                    "id": "cs_5z3tyna7",
                    "country": "gb",
                    "company": {
                        "register_number": "10144457",
                        "name": "BOLD STRIPE SOLUTIONS LIMITED",
                        "town": "BIRMINGHAM",
                        "postcode": "B4 6EQ",
                        "sic": "70229",
                        "sector": {
                            "code": "M",
                            "label": "Professional, scientific and technical activities"
                        },
                        "register_status": "Active",
                        "nature_of_business": null
                    },
                    "procedure": "members_voluntary_liquidation",
                    "procedure_label": "Members' voluntary liquidation",
                    "status": "open",
                    "status_label": "Proceedings are open",
                    "petition_on": null,
                    "opened_on": "2026-10-30",
                    "opened_after": null,
                    "opened_precision": "day",
                    "closed_on": null,
                    "closed_by": null,
                    "claims_deadline": null,
                    "next_hearing": null,
                    "last_hearing": null,
                    "court": null,
                    "court_case_ref": null,
                    "first_notice_on": "2026-10-30",
                    "last_notice_on": "2026-10-30",
                    "notice_count": 2,
                    "last_activity_on": "2026-10-30"
                }
            ]
        },
        {
            "index": 1,
            "matched": false,
            "match": "none",
            "company": null,
            "in_insolvency": false,
            "cases": [],
            "countries_checked": 23
        }
    ],
    "meta": {
        "count": 2,
        "matched": 1,
        "calls_counted": 2,
        "checked_at": "2026-10-31T00:52:20Z"
    }
}
```

Docs: https://insolvencyapi.com/documentation/company-check

### Statistics

Counts and analysis from every case.

#### `GET /v1/stats/monthly` (Professional and Intel)

Companies entering insolvency each month, by country, with the economy beside them.

Plans: Professional, Intel. MCP tool: `monthly_counts`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | yes | One or more countries, including Belgium and Denmark's official counts. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr, be, dk | `fr` |
| `from` | query | month | no | From this month, YYYY-MM | `2025-01` |
| `to` | query | month | no | To this month, YYYY-MM | `2026-09` |
| `procedure` | query | list | no | Only these procedures (countries with cases). One of: compulsory_liquidation, creditors_voluntary_liquidation, members_voluntary_liquidation, administration, administrative_receivership, receivership, moratorium, judicial_liquidation, judicial_reorganisation, safeguard, conciliation, other, bankruptcy, insolvency, liquidation, liquidation_unspecified, restructuring, forced_dissolution, external_administration |  |
| `with` | query | list | no | Figures beside the counts. One of: unemployment, inflation, interest_rate | `unemployment` |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

Belgium and Denmark are held as official national counts, not cases, and come only here, with `held_as` saying so.

```json
{
    "data": [
        {
            "country": "fr",
            "month": "2026-07",
            "held_as": "cases",
            "cases": 6657,
            "closed": 5802,
            "unemployment_rate": 8.3
        },
        {
            "country": "fr",
            "month": "2026-08",
            "held_as": "cases",
            "cases": 1933,
            "closed": 1337,
            "unemployment_rate": 8.2
        }
    ],
    "meta": {
        "count": 4,
        "with": [
            "unemployment"
        ],
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-monthly

#### `GET /v1/stats/official` (Professional and Intel)

The official counts and the official quarterly index held, by country and period, monthly, quarterly or yearly as published.

Plans: Professional, Intel. MCP tool: `official_counts`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | no | Only these countries | `fi,no` |
| `frequency` | query | text | no | M (monthly), Q (quarterly) or Y (yearly). One of: M, Q, Y |  |
| `from` | query | text | no | From this period: a month (2024-01), a quarter (2024-Q1) or a year (2024) | `2020` |
| `to` | query | text | no | To this period, in the same forms |  |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

Each figure as its publisher gives it: monthly, quarterly or yearly. The index is quarterly, with 2021 as 100. Where a country’s own monthly count from cases agrees with these, it is on [Monthly counts](https://insolvencyapi.com/documentation/stats-monthly).

```json
{
    "data": [
        {
            "country": "fi",
            "measure": "corporate_insolvencies_index",
            "frequency": "Q",
            "period": "2023-Q1",
            "value": 1462,
            "unit": "index, 2021 = 100"
        },
        {
            "country": "fi",
            "measure": "corporate_insolvencies_index",
            "frequency": "Q",
            "period": "2023-Q2",
            "value": 1236,
            "unit": "index, 2021 = 100"
        }
    ],
    "meta": {
        "countries": [
            "at",
            "au",
            "be",
            "ca",
            "ch",
            "cz",
            "de",
            "dk",
            "ee",
            "es",
            "fi",
            "fr",
            "gb",
            "gf",
            "gp",
            "hk",
            "hr",
            "is",
            "it",
            "jp",
            "lu",
            "lv",
            "mq",
            "nl",
            "no",
            "nz",
            "pl",
            "pt",
            "re",
            "ro",
            "se",
            "sg",
            "si",
            "sj",
            "sk",
            "us",
            "za"
        ],
        "note": "Official counts and the official quarterly index, as published. Our own monthly counts from cases are on /v1/stats/monthly."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-official

#### `GET /v1/stats/sectors` (Intel)

Cases by sector, with the companies on the register in each and a rate for every 10,000.

Plans: Intel. MCP tool: `sector_stats`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | text | yes | gb or fr. One of: gb, fr | `gb` |
| `months` | query | number | no | How many months back, 1 to 60 (12 if left out) | `12` |
| `procedure` | query | list | no | Only these procedures. One of: compulsory_liquidation, creditors_voluntary_liquidation, members_voluntary_liquidation, administration, administrative_receivership, receivership, moratorium, judicial_liquidation, judicial_reorganisation, safeguard, conciliation, other |  |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "sector": "F",
            "label": "Construction",
            "cases": 4931,
            "closed": 5001,
            "companies": 571869,
            "per_10000_companies": 86.2,
            "share_of_cases": 0.148
        },
        {
            "sector": "G",
            "label": "Wholesale and retail trade, repair of motor vehicles",
            "cases": 4229,
            "closed": 4278,
            "companies": 747054,
            "per_10000_companies": 56.6,
            "share_of_cases": 0.127
        }
    ],
    "meta": {
        "country": "gb",
        "months": {
            "from": "2025-11",
            "to": "2026-10",
            "count": 12
        },
        "register": "UK company register, live companies today",
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-sectors

#### `GET /v1/stats/regions` (Intel)

Cases by UK postcode area or French department.

Plans: Intel

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | text | yes | gb or fr. One of: gb, fr | `fr` |
| `months` | query | number | no | How many months back, 1 to 60 (12 if left out) | `12` |
| `sector` | query | text | no | One sector section, A to U. One of: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U |  |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "region": "75",
            "cases": 5128,
            "closed": 4443,
            "share_of_cases": 0.069
        },
        {
            "region": "13",
            "cases": 3118,
            "closed": 3208,
            "share_of_cases": 0.042
        }
    ],
    "meta": {
        "country": "fr",
        "region_is": "French department",
        "months": {
            "from": "2025-11",
            "to": "2026-10",
            "count": 12
        },
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-regions

#### `GET /v1/stats/drivers` (Intel)

Who started the cases (directors, the tax authority, another creditor, a lender, the court), by month, region or sector.

Plans: Intel. MCP tool: `case_drivers`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | yes | gb, fr or both. One of: gb, fr | `gb` |
| `by` | query | text | no | Split by month, region or sector (month if left out). One of: month, region, sector | `month` |
| `months` | query | number | no | How many months back, 1 to 60 (12 if left out) | `12` |
| `from` | query | month | no | From this month, YYYY-MM (instead of months) |  |
| `to` | query | month | no | To this month, YYYY-MM |  |
| `region` | query | text | no | One UK postcode area (LS) or French department (75) |  |
| `sector` | query | text | no | One sector section, A to U. One of: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U |  |
| `driver` | query | list | no | Only these drivers, see /v1/vocabulary. One of: directors_resolution, tax_authority_petition, public_interest_petition, creditor_petition, petitioner_not_given, administration_by_directors, administration_by_lender, administration_by_court, administration_other, receiver_by_lender, directors_moratorium, solvent_wind_up, early_protection, court_rescue, liquidation, other |  |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

> In the UK a winding-up petition notice rarely names who presented it, so most court cases there show as `petitioner_not_given`, and administrations without the appointer as `administration_other`. Only who started a case is counted; the reasons a company failed are not published, so they are not given.

```json
{
    "data": [
        {
            "country": "gb",
            "month": "2026-10",
            "driver": "directors_resolution",
            "driver_label": "The directors and shareholders decided to wind up (creditors' voluntary liquidation)",
            "cases": 1808,
            "share": 0.556
        },
        {
            "country": "gb",
            "month": "2026-10",
            "driver": "solvent_wind_up",
            "driver_label": "Solvent winding up by the members (members' voluntary liquidation)",
            "cases": 969,
            "share": 0.298
        }
    ],
    "meta": {
        "count": 18,
        "next_cursor": null,
        "page": 1,
        "limit": 25,
        "total": 18,
        "total_exact": true,
        "total_pages": 1,
        "next_page": null,
        "prev_page": null,
        "by": "month",
        "months": {
            "from": "2026-08",
            "to": "2026-10"
        },
        "drivers": "Who started each case, from its procedure and the party its notices name. Not why it failed: no source records that.",
        "region_is": "UK postcode area or French department",
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-drivers

#### `GET /v1/stats/durations` (Intel)

How long cases last, opening to closing: the median and quartiles by year closed.

Plans: Intel

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | no | One or more countries, comma separated. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr | `gb,fr` |
| `procedure` | query | list | no | Only these procedures. One of: compulsory_liquidation, creditors_voluntary_liquidation, members_voluntary_liquidation, administration, administrative_receivership, receivership, moratorium, judicial_liquidation, judicial_reorganisation, safeguard, conciliation, other, bankruptcy, insolvency, liquidation, liquidation_unspecified, restructuring, forced_dissolution, external_administration |  |
| `from` | query | year | no | Closed in or after this year, YYYY | `2020` |
| `to` | query | year | no | Closed in or before this year, YYYY | `2026` |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "country": "fr",
            "procedure": "judicial_liquidation",
            "closed_in": 2008,
            "cases": 2034,
            "median_days": 231,
            "quarter_days": 151,
            "three_quarters_days": 280
        },
        {
            "country": "fr",
            "procedure": "judicial_liquidation",
            "closed_in": 2009,
            "cases": 12455,
            "median_days": 365,
            "quarter_days": 283,
            "three_quarters_days": 464
        }
    ],
    "meta": {
        "count": 19,
        "counts": "Cases with their opening and closing both held to the day; years with fewer than 5 cases are left out",
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-durations

#### `GET /v1/stats/outcomes` (Intel)

How the cases opened each year have ended so far.

Plans: Intel

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | no | One or more countries, comma separated. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr | `gb,fr` |
| `procedure` | query | list | no | Only these procedures. One of: compulsory_liquidation, creditors_voluntary_liquidation, members_voluntary_liquidation, administration, administrative_receivership, receivership, moratorium, judicial_liquidation, judicial_reorganisation, safeguard, conciliation, other, bankruptcy, insolvency, liquidation, liquidation_unspecified, restructuring, forced_dissolution, external_administration |  |
| `from` | query | year | no | Opened in or after this year, YYYY | `2020` |
| `to` | query | year | no | Opened in or before this year, YYYY | `2026` |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "country": "fr",
            "procedure": "judicial_liquidation",
            "opened_in": 1988,
            "cases": 1,
            "still_open": 0,
            "closed": 1,
            "converted": 0,
            "ended_on_register": 0,
            "dismissed": 0
        },
        {
            "country": "fr",
            "procedure": "judicial_liquidation",
            "opened_in": 1994,
            "cases": 1,
            "still_open": 1,
            "closed": 0,
            "converted": 0,
            "ended_on_register": 0,
            "dismissed": 0
        }
    ],
    "meta": {
        "count": 29,
        "shares": "Each outcome as a share of the cases opened that year, 0 to 1. Converted, ended on the register and dismissed are known for the UK and France.",
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-outcomes

#### `GET /v1/stats/trends` (Intel)

What is rising faster than usual: the last 3 months against the same months in the 3 years before.

Plans: Intel. MCP tool: `rising_trends`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | yes | One or more countries. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr | `gb,fr,cz` |
| `sector` | query | list | no | Split by these sector sections (UK and France). One of: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U |  |
| `min_change` | query | number | no | Only changes at least this big either way, such as 0.2 for 20% | `0.1` |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "country": "fr",
            "sector": null,
            "sector_label": null,
            "last_3_months": 16307,
            "usual": 14907,
            "years_compared": 3,
            "change": 0.094,
            "direction": "steady"
        },
        {
            "country": "cz",
            "sector": null,
            "sector_label": null,
            "last_3_months": 3697,
            "usual": 4159,
            "years_compared": 3,
            "change": -0.111,
            "direction": "falling"
        }
    ],
    "meta": {
        "count": 3,
        "months": {
            "from": "2026-07",
            "to": "2026-09"
        },
        "compared_with": "the same three months in each of the three years before",
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-trends

#### `GET /v1/stats/compare` (Intel)

Countries side by side: cases in a span of months, and for every 10,000 companies where the register is held.

Plans: Intel. MCP tool: `compare_countries`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | yes | Two or more countries. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr | `gb,fr` |
| `months` | query | number | no | How many months back, 1 to 60 (12 if left out) | `12` |

Errors: `bad_request` (400), `unauthorized` (401), `upgrade_required` (403), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

```json
{
    "data": [
        {
            "country": "fr",
            "name": "France",
            "cases": 74148,
            "cases_per_month": 6179,
            "companies": 8296553,
            "per_10000_companies": 89.4
        },
        {
            "country": "gb",
            "name": "United Kingdom",
            "cases": 33721,
            "cases_per_month": 2810.1,
            "companies": 5472974,
            "per_10000_companies": 61.6
        }
    ],
    "meta": {
        "months": {
            "from": "2025-11",
            "to": "2026-10",
            "count": 12
        },
        "rates": "per_10000_companies is given where the company register is held (the UK and France); elsewhere it is null and cases_per_month compares them.",
        "built_at": "2026-10-31T00:50:40Z",
        "note": "Counted from the cases held, rebuilt every day. The latest month fills in as late publications arrive."
    }
}
```

Docs: https://insolvencyapi.com/documentation/stats-compare

### Reference

Coverage, vocabulary and your usage.

#### `GET /v1/coverage`

Every country held: how many cases, how far back, and when it was last read.

Plans: Developer, Professional, Intel. MCP tool: `coverage`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | query | list | no | Only these countries. One of: gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr, be, dk |  |

Errors: `bad_request` (400), `unauthorized` (401), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

The same list as [the Coverage page](https://insolvencyapi.com/coverage), counted afresh every hour.

```json
{
    "data": [
        {
            "country": "gb",
            "name": "United Kingdom",
            "held_as": "cases",
            "cases": 717978,
            "active_cases": 237084,
            "earliest_on": "1921-06-23",
            "latest_on": "2026-10-30",
            "notices": 1678029,
            "court_case_ref": true,
            "claims_deadlines": true,
            "opened_precision": "day",
            "sample": false,
            "last_read": "2026-10-30T18:05:20Z"
        },
        {
            "country": "fr",
            "name": "France",
            "held_as": "cases",
            "cases": 1254378,
            "active_cases": 258080,
            "earliest_on": "1985-12-27",
            "latest_on": "2026-10-30",
            "notices": 2495931,
            "court_case_ref": false,
            "claims_deadlines": true,
            "opened_precision": "day",
            "sample": false,
            "last_read": "2026-10-30T06:53:35Z"
        }
    ],
    "meta": {
        "count": 2,
        "counted_at": "2026-10-31T00:51:09Z"
    }
}
```

Docs: https://insolvencyapi.com/documentation/coverage

#### `GET /v1/gaps`

Every place in the world: what is held, what is missing and what we are doing about it. Free, no key needed, never counted.

Plans: Developer, Professional, Intel. MCP tool: `data_gaps`

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `kind` | query | text | no | Only places of this kind. One of: complete, missing, behind, unchecked, nomonth, none |  |

Errors: `bad_request` (400), `unknown_parameter` (422), `rate_limited` (429)

> No key needed and never counted: a call without a key works, at up to 60 a minute from one address. Every place is in the list, including those we hold nothing for yet.

The same list as [the Data gaps page](https://insolvencyapi.com/data-gaps) and the open issues on [the Status page](https://insolvencyapi.com/status), checked every night.

```json
{
    "data": [
        {
            "country": "bl",
            "name": "Saint Barthelemy",
            "kind": "missing",
            "frequency": "M",
            "first": "2024-11",
            "last": "2026-09",
            "held": 18,
            "missing": 5,
            "detail": "5 months missing: Mar 2025, May 2025, Feb 2026 and 2 more",
            "action": "Looking for the missing months at the publisher and in a second official source.",
            "checked_at": "2026-10-30T03:21:31Z"
        },
        {
            "country": "gp",
            "name": "Guadeloupe",
            "kind": "missing",
            "frequency": "M",
            "first": "2020-06",
            "last": "2026-09",
            "held": 75,
            "missing": 1,
            "detail": "1 month missing: Aug 2021",
            "action": "Looking for the missing months at the publisher and in a second official source.",
            "checked_at": "2026-10-30T03:21:31Z"
        }
    ],
    "meta": {
        "places": 243,
        "complete": 30,
        "missing": 3,
        "behind": 1,
        "unchecked": 5,
        "nomonth": 5,
        "none": 199,
        "checked_at": "2026-10-30T03:21:31Z",
        "page": "https://insolvencyapi.com/data-gaps"
    }
}
```

Docs: https://insolvencyapi.com/documentation/gaps

#### `GET /v1/gaps/{country}`

One country in full: every month missing, not published or withheld, and its open issue. Free, no key needed, never counted.

Plans: Developer, Professional, Intel

| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
| `country` | path | text | yes | Two letters, in the address |  |

Errors: `bad_request` (400), `not_found` (404), `unknown_parameter` (422), `rate_limited` (429)

> No key needed and never counted.

A month is `missing` when the publisher released it and we do not hold it, `not_published` when the publisher never released it, and `withheld` when we hold it but do not serve it.

```json
{
    "data": {
        "country": "bl",
        "name": "Saint Barthelemy",
        "series": [
            {
                "measure": "corporate_insolvencies",
                "frequency": "M",
                "held_as": "counted_from_cases",
                "first": "2024-11",
                "last": "2026-09",
                "held": 18,
                "missing": [
                    "2025-03",
                    "2025-05",
                    "2026-02",
                    "2026-07",
                    "2026-08"
                ],
                "not_published": [],
                "withheld": [],
                "checked_at": "2026-10-30T03:21:31Z"
            }
        ],
        "issue": {
            "kind": "missing",
            "detail": "5 months missing: Mar 2025, May 2025, Feb 2026 and 2 more",
            "action": "Looking for the missing months at the publisher and in a second official source.",
            "checked_at": "2026-10-30T03:21:31Z"
        }
    },
    "meta": {
        "page": "https://insolvencyapi.com/data-gaps/bl"
    }
}
```

Docs: https://insolvencyapi.com/documentation/gap-country

#### `GET /v1/vocabulary`

Every country, procedure, notice step, case status and sector, with its label in plain English.

Plans: Developer, Professional, Intel

Errors: `bad_request` (400), `unauthorized` (401), `unknown_parameter` (422), `rate_limited` (429), `quota_exceeded` (429)

The same words are used for every country. Fetch the list once and keep it; it only grows.

```json
{
    "data": {
        "countries": [
            {
                "code": "gb",
                "label": "United Kingdom",
                "held_as": "cases",
                "notices": true
            },
            {
                "code": "fr",
                "label": "France",
                "held_as": "cases",
                "notices": true
            },
            {
                "code": "at",
                "label": "Austria",
                "held_as": "cases",
                "notices": false
            }
        ],
        "procedures": [
            {
                "code": "compulsory_liquidation",
                "label": "Compulsory liquidation (winding up by the court)"
            },
            {
                "code": "creditors_voluntary_liquidation",
                "label": "Creditors' voluntary liquidation"
            },
            {
                "code": "members_voluntary_liquidation",
                "label": "Members' voluntary liquidation"
            }
        ],
        "notice_steps": [
            {
                "code": "petition_filed",
                "label": "Winding-up petition filed"
            },
            {
                "code": "petition_served",
                "label": "Winding-up petition served"
            },
            {
                "code": "petition_dismissed",
                "label": "Winding-up petition dismissed"
            }
        ],
        "case_statuses": [
            {
                "code": "petition",
                "label": "A petition is pending"
            },
            {
                "code": "open",
                "label": "Proceedings are open"
            },
            {
                "code": "closing",
                "label": "Final steps under way"
            }
        ],
        "sectors": [
            {
                "code": "A",
                "label": "Agriculture, forestry and fishing"
            },
            {
                "code": "B",
                "label": "Mining and quarrying"
            },
            {
                "code": "C",
                "label": "Manufacturing"
            }
        ],
        "drivers": [
            {
                "code": "directors_resolution",
                "label": "The directors and shareholders decided to wind up (creditors' voluntary liquidation)"
            },
            {
                "code": "tax_authority_petition",
                "label": "Wound up by the court on a petition from the tax authority"
            },
            {
                "code": "public_interest_petition",
                "label": "Wound up by the court on a public interest petition from the government"
            }
        ]
    },
    "meta": {}
}
```

Docs: https://insolvencyapi.com/documentation/vocabulary

#### `GET /v1/usage`

Your plan, the calls you have used and when they reset. Never counted.

Plans: Developer, Professional, Intel. MCP tool: `my_usage`

Errors: `bad_request` (400), `unauthorized` (401), `unknown_parameter` (422), `rate_limited` (429)

```json
{
    "data": {
        "key": {
            "prefix": "ik_live_4f9c"
        },
        "plan": "intel",
        "plan_name": "Intel",
        "calls": {
            "today": 0,
            "this_month": 2
        },
        "limits": {
            "per_minute": 300,
            "per_day": null,
            "per_month": 100000,
            "limit_max": 100
        },
        "resets": {
            "day": "2026-11-01T00:00:00Z",
            "month": "2026-11-01T00:00:00Z"
        },
        "reads_from": null,
        "reads_to": null,
        "paid_fields": true,
        "includes": null,
        "held_back": null,
        "countries": [
            "gb",
            "fr",
            "at",
            "cz",
            "ee",
            "fi",
            "hr",
            "ie",
            "lv",
            "no",
            "pt",
            "ro",
            "sk",
            "es",
            "se",
            "pl",
            "us",
            "lt",
            "de",
            "ch",
            "ua",
            "si",
            "kr"
        ]
    },
    "meta": {}
}
```

Docs: https://insolvencyapi.com/documentation/usage

## MCP server

`https://insolvencyapi.com/mcp`, with your own key: the plan and limits apply as usual. Tools:

- `find_cases`: Every case held in 18 countries, newest activity first, filtered any way you like (`GET /v1/cases`)
- `get_case`: One case, with every notice in it in date order where the country publishes notices (`GET /v1/cases/{case_id}`)
- `latest_notices`: Every published notice, newest first, in the countries that publish notices (UK and France) (`GET /v1/notices`)
- `claims_deadlines`: Cases where creditors can still send their claims, soonest deadline first (France in full; UK deadlines are rare) (`GET /v1/claims-deadlines`)
- `pending_petitions`: UK winding-up petitions filed and not yet decided, newest first (`GET /v1/petitions`)
- `lookup_company`: Is this company in insolvency? One company by its register number, with every case it has (`GET /v1/companies/{country}/{register_number}`)
- `search_companies`: Companies with insolvency cases whose name matches, in one country or all 18 (`GET /v1/companies/search`)
- `check_companies`: Check up to 100 companies in one call, by register number or by name; each company counts as one call (`POST /v1/companies/check`)
- `monthly_counts`: Companies entering insolvency each month, by country, with the economy beside them (`GET /v1/stats/monthly`)
- `official_counts`: The official counts and the official quarterly index held, by country and period, monthly, quarterly or yearly as published (`GET /v1/stats/official`)
- `sector_stats`: Cases by sector, with the companies on the register in each and a rate for every 10,000 (`GET /v1/stats/sectors`)
- `case_drivers`: Who started the cases (directors, the tax authority, another creditor, a lender, the court), by month, region or sector (`GET /v1/stats/drivers`)
- `rising_trends`: What is rising faster than usual: the last 3 months against the same months in the 3 years before (`GET /v1/stats/trends`)
- `compare_countries`: Countries side by side: cases in a span of months, and for every 10,000 companies where the register is held (`GET /v1/stats/compare`)
- `coverage`: Every country held: how many cases, how far back, and when it was last read (`GET /v1/coverage`)
- `data_gaps`: Every place in the world: what is held, what is missing and what we are doing about it. Free, no key needed, never counted (`GET /v1/gaps`)
- `my_usage`: Your plan, the calls you have used and when they reset. Never counted (`GET /v1/usage`)

## Agent skill

https://insolvencyapi.com/skill.md, also at https://insolvencyapi.com/.well-known/agent-skills/insolvencyapi/SKILL.md with its index at https://insolvencyapi.com/.well-known/agent-skills/index.json.

## Guides

### Quick start

A key, the first call, and how to read the answer, in two minutes. https://insolvencyapi.com/documentation/quick-start

#### Three steps

1. Get a free key: Sign in with Google on [the sign-in page](https://insolvencyapi.com/login). Your key is made at once and shown once; it is also saved in this browser for Try it.
2. Make the first call: Press Run below. It lists this month’s UK cases, two to a page.
3. Read the answer: Every answer is `data` plus `meta`. A list’s `meta` says how many there are and how to get the next page.



#### Next

Read [Authentication](https://insolvencyapi.com/documentation/authentication) for the two ways to send your key, [Pagination](https://insolvencyapi.com/documentation/pagination) to walk every page, and [Insolvency cases](https://insolvencyapi.com/documentation/about-cases) for the common jobs.

### Authentication

Your key, the two headers that carry it, and replacing it. https://insolvencyapi.com/documentation/authentication

#### Send your key in a header

Every call carries your key in one of two headers. Both work the same.

| Header | Example |
|---|---|
| `X-API-Key` | `X-API-Key: ik_live_4f9c…` |
| `Authorization` | `Authorization: Bearer ik_live_4f9c…` |

> A key in the address, such as `?key=`, is refused with `400 bad_request`, so keys never land in anyone’s logs.

```
$ curl "https://api.insolvencyapi.com/v1/usage" \
    -H "X-API-Key: $INSOLVENCY_KEY"
```

#### One key, following your plan

Each account has one key, made when you first sign in. The plan is read from your account on every call, so when you change plan the next call already has it.

To replace the key, open [Your key](https://insolvencyapi.com/account/keys) in your account. The new key works at once, and the old one keeps working for 24 hours, so you can update your code without anything stopping.

#### Your key on these pages

Try it keeps your key in this browser, under `insolvencyapi.com.api_key`, and fills it in on every documentation page. A key made or replaced in your account is saved there too. Forget clears it. In your own product, keep the key on your server, never in a public page.

#### Times and formats

Times are UTC, written as `2026-10-14T09:14:07Z`. Dates are `YYYY-MM-DD`. Countries are two lower-case letters, such as `gb`, `fr` or `cz`. Every id is our own, with its type in front: `cs_` for a case, `nt_` for a notice.

### Plans and limits

What each plan reads, its two limits, and the headers that say where you stand. https://insolvencyapi.com/documentation/plans-and-limits

#### Each plan

| Plan | Per minute | Calls | History | Per page |
|---|---|---|---|---|
| Developer, free | 30 | 100 a day | 90 days | 25 |
| Professional, $149 a month | 120 | 50,000 a month | Full | 100 |
| Intel, $249 a month | 300 | 100,000 a month | Full | 100 |

Every plan reads all 23 countries. On every plan: [Find cases](https://insolvencyapi.com/documentation/cases), [One case](https://insolvencyapi.com/documentation/case), [Notices for a case](https://insolvencyapi.com/documentation/case-notices), [Every notice](https://insolvencyapi.com/documentation/notices), [Look up a company](https://insolvencyapi.com/documentation/company), [Search by name](https://insolvencyapi.com/documentation/company-search), [Check a list](https://insolvencyapi.com/documentation/company-check), [Coverage](https://insolvencyapi.com/documentation/coverage), [Data gaps](https://insolvencyapi.com/documentation/gaps), [Data gaps, one country](https://insolvencyapi.com/documentation/gap-country), [Vocabulary](https://insolvencyapi.com/documentation/vocabulary), [Your usage](https://insolvencyapi.com/documentation/usage).

Professional adds the full history, the paid fields (the court, its case number, claims deadlines, hearings, and the company’s town, postcode and sector) and [Claims deadlines](https://insolvencyapi.com/documentation/claims-deadlines), [UK petitions](https://insolvencyapi.com/documentation/petitions), [Monthly counts](https://insolvencyapi.com/documentation/stats-monthly), [Official counts](https://insolvencyapi.com/documentation/stats-official).

Intel adds [Daily feed](https://insolvencyapi.com/documentation/daily-feed), [Sectors](https://insolvencyapi.com/documentation/stats-sectors), [Regions](https://insolvencyapi.com/documentation/stats-regions), [Who started them](https://insolvencyapi.com/documentation/stats-drivers), [How long cases last](https://insolvencyapi.com/documentation/stats-durations), [How cases end](https://insolvencyapi.com/documentation/stats-outcomes), [Rising trends](https://insolvencyapi.com/documentation/stats-trends), [Country against country](https://insolvencyapi.com/documentation/stats-compare). The prices are on [the Pricing page](https://insolvencyapi.com/pricing).

#### Two limits

- Calls a minute: a burst over it answers `429 rate_limited`, with `Retry-After`. Slow down and try again.
- Calls a day or a month: once used, calls answer `429 quota_exceeded`, with when they reset.

A page of results is one call. In a list check, each company is one call. A call refused for its rate or allowance is not counted, and [Your usage](https://insolvencyapi.com/documentation/usage) is never counted.

#### Where you stand

Every answer carries these headers:

```
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117
X-RateLimit-Reset: 1792615124
X-Quota-Remaining: 33916
```

#### Fields your plan does not have

On Developer, the paid fields are still there with the value `null`, and `meta.note` names the plan that fills them, with `meta.history_from` and `meta.history_to` the first and last day your plan reads. Code you write on the free key keeps working when you move up.

Your free key holds
- Every country we cover, cases and notices from yesterday back 90 days
- For each case: the company name and register number, the procedure, its status and its dates (opened, closed, first and last notice)
- Notices: the date, the step (petition, order, appointment, closure...) and the company
- Company lookup and check: is this company in insolvency, from the same 90 days
- 100 calls a day, 30 a minute, 25 results a page
- Coverage, data gaps, vocabulary and your own usageHeld back for paid plans
- Anything published today: it appears on this plan tomorrow
- History older than 90 days
- Court, court case number, hearings and claims deadlines
- Company address (town, postcode), sector, register status and nature of business
- UK filings: accounts and confirmation statements overdue, balance sheets and warning signs
- The pending UK petitions list and the claims deadlines list
- Monthly statistics and every breakdown
- The daily bulk feed

`/v1/usage` gives the same two lists, as `includes` and `held_back`.

### Pagination

Lists come a page at a time: by page number, or by cursor for long runs. https://insolvencyapi.com/documentation/pagination

#### By page or by cursor

Every list takes a `page` from 1 and a `cursor`. Send one; if both are sent, `page` wins. `limit` sets the page size: 25 if left out, up to 25 on Developer and 100 on paid plans.

A page call returns in `meta`: `count`, `page`, `limit`, `total`, `total_exact`, `total_pages`, `next_page`, `prev_page` and `next_cursor`. A cursor call returns only `count` and `next_cursor`, so long runs stay fast. When `next_cursor` is `null`, you have everything.

Totals are counted up to 100,000. Past that, `total` is 100,000, `total_exact` is `false` and `total_pages` is `null`; `next_page` and `next_cursor` still take you on.

```
# The first page, then follow next_cursor until it is null
$ curl "https://api.insolvencyapi.com/v1/cases?country=gb&limit=100" \
    -H "X-API-Key: $INSOLVENCY_KEY"
$ curl "https://api.insolvencyapi.com/v1/cases?country=gb&cursor=NEXT_CURSOR" \
    -H "X-API-Key: $INSOLVENCY_KEY"
```

#### Only what changed

To keep your own copy current, send `updated_since` with the day of your last run. You get new cases and every case with something new since, and nothing else.

> Lists are ordered by each case’s latest step, newest first. A case that moves on during a long walk can shift by a place, so finish with one more run using `updated_since`.

### Errors

Every error code, what it means and what to do. https://insolvencyapi.com/documentation/errors

#### Every code

| Status | Code | What to do |
|---|---|---|
| 400 | `bad_request` | A value is wrong, such as a date in another format. The message says which. |
| 401 | `unauthorized` | The key is missing, wrong or no longer valid. |
| 403 | `upgrade_required` | Your plan does not include this. The answer names the plan that does. |
| 404 | `not_found` | No record with that id. An empty list is never a 404. |
| 422 | `unknown_parameter` | A parameter this endpoint does not take. The answer lists the ones it does. |
| 429 | `rate_limited` | Too many calls in one minute. Wait for the seconds in Retry-After. |
| 429 | `quota_exceeded` | Your calls for the day or month are used. The answer says when they reset. |
| 500 | `server_error` | Our side. It is logged; try again in a minute, and see the Status page. |

The code is fixed forever, so your program can test it. The message is for people and may be reworded.

#### The shape

Every error has the same shape. A refusal for your plan adds `plan`, the plan that would answer.

```json
{
  "error": {
    "code": "upgrade_required",
    "message": "This endpoint needs the Intel plan or above. See https://insolvencyapi.com/pricing",
    "plan": "intel",
    "docs": "https://insolvencyapi.com/documentation/errors"
  }
}
```

### One shape for every country

A case is one company in one insolvency procedure, in the same shape for all 23 countries. https://insolvencyapi.com/documentation/case-shape

#### Every field

| Field | Type | What it holds |
|---|---|---|
| `id` | text | The case id, cs_ followed by 8 characters. |
| `country` | text | One of gb, fr, at, cz, ee, fi, hr, ie, lv, no, pt, ro, sk, es, se, pl, us, lt, de, ch, ua, si, kr. |
| `company` | object | The company in the case: register_number, name, town, postcode, sic, sector, register_status, nature_of_business. |
| `procedure` | text | The procedure, see [/v1/vocabulary](https://insolvencyapi.com/documentation/vocabulary). |
| `procedure_label` | text | The procedure in plain English. |
| `status` | text | petition, open, closing, closed or dismissed (open or closed outside the UK and France). |
| `status_label` | text | The status in plain English. |
| `petition_on` | date, or null | When a winding-up petition was presented. |
| `opened_on` | date, or null | When the proceedings opened; where opened_precision is window, the day by which they had opened. |
| `opened_after` | date, or null | Where opened_precision is window: the day before which they had not opened. |
| `opened_precision` | text | day, or window where a country's records date a start only to a month-long window. |
| `closed_on` | date, or null | When the proceedings closed or a petition was dismissed. |
| `closed_by` | text, or null | What closed it: notice, conversion (a French reorganisation or safeguard converted into liquidation) or register (the register shows the company dissolved or ceased). |
| `claims_deadline` | date, or null | The last day creditors can send their claims (UK and France, paid plans). |
| `next_hearing` | object, or null | A pending petition's next hearing: date, local_time, timezone, where published (paid plans). |
| `last_hearing` | object, or null | The latest hearing any of the case's notices set, past or still ahead, in the same shape (paid plans). |
| `court` | text, or null | The court (paid plans). |
| `court_case_ref` | text, or null | The court's case number, where the country publishes one (paid plans). |
| `first_notice_on` | date, or null | The first notice held for the case (UK and France). |
| `last_notice_on` | date, or null | The latest notice held for the case (UK and France). |
| `notice_count` | number | Notices held for the case. |
| `last_activity_on` | date | The case's latest step: what lists are ordered by. |

> Company data only. Sole traders are counted in statistics but never listed, and no person is ever named.

#### The company in a case

Fields marked paid plans are `null` on Developer. Town, postcode and sector are given in the UK and France. The court’s case number comes in 14 of the 23 countries.

| Field | Type | What it holds |
|---|---|---|
| `company.register_number` | text, or null | The company's number in its country's register (UK company number, French SIREN and the like); null for a US court case found by the debtor's name. |
| `company.name` | text | The company's name as published. |
| `company.town` | text, or null | Registered office town (UK and France, paid plans). |
| `company.postcode` | text, or null | Registered office postcode (UK and France, paid plans). |
| `company.sic` | text, or null | Main activity code: UK SIC 2007, or French NAF rev. 2 (paid plans). |
| `company.sector` | object, or null | The activity's section, the same 21 for both countries: code (A to U) and label (UK and France, paid plans). |
| `company.register_status` | text, or null | Status on the national company register, as the register words it (paid plans). |
| `company.nature_of_business` | text, or null | What the company did, as published (paid plans). |

#### A case, in full

A real case from this morning’s data.

```json
{
  "data": {
    "id": "cs_k54b7nzt",
    "country": "gb",
    "company": {
      "register_number": "04542915",
      "name": "KMJ VENTILATION LIMITED",
      "town": "WORCESTERSHIRE",
      "postcode": "WR9 7DQ",
      "sic": "43220",
      "sector": {
        "code": "F",
        "label": "Construction"
      },
      "register_status": "Active",
      "nature_of_business": null
    },
    "procedure": "members_voluntary_liquidation",
    "procedure_label": "Members' voluntary liquidation",
    "status": "open",
    "status_label": "Proceedings are open",
    "petition_on": null,
    "opened_on": "2026-10-30",
    "opened_after": null,
    "opened_precision": "day",
    "closed_on": null,
    "closed_by": null,
    "claims_deadline": null,
    "next_hearing": null,
    "last_hearing": null,
    "court": null,
    "court_case_ref": null,
    "first_notice_on": "2026-10-30",
    "last_notice_on": "2026-10-30",
    "notice_count": 3,
    "last_activity_on": "2026-10-30"
  },
  "meta": {}
}
```

### Insolvency cases

What a case is, how cases and notices link, and the jobs people do with them. https://insolvencyapi.com/documentation/about-cases

#### Cases and notices

A case is one company in one procedure: a liquidation, an administration, a bankruptcy, a reorganisation. In the UK and France, a notice is one published step in it: the petition, the order, the appointment, the call for claims, the closing. Each notice carries its `case_id`, and [One case](https://insolvencyapi.com/documentation/case) lists every notice in it, oldest first.

In the other 21 countries the case comes from the register and court records, with its dates. Every country is read on its own timetable and given back in [one shape](https://insolvencyapi.com/documentation/case-shape). The [Status page](https://insolvencyapi.com/status) shows when each was last read.

#### Common jobs

- [New cases in a country since a day](https://insolvencyapi.com/documentation/cases): `GET /v1/cases?country=gb&opened_from=2026-10-01`
- [Follow one case, notice by notice](https://insolvencyapi.com/documentation/case): `GET /v1/cases/{case_id}`
- [Every notice as it is published](https://insolvencyapi.com/documentation/notices): `GET /v1/notices?published_from=2026-10-31`
- [Keep your own copy current](https://insolvencyapi.com/documentation/pagination): `GET /v1/cases?updated_since=2026-10-30`
- [Claims you can still make](https://insolvencyapi.com/documentation/claims-deadlines): `GET /v1/claims-deadlines`
- [The earliest UK warning](https://insolvencyapi.com/documentation/petitions): `GET /v1/petitions`
- [Load a whole day](https://insolvencyapi.com/documentation/daily-feed): `GET /v1/feed/daily?date=2026-10-30`

### Company checks

Is this company in insolvency? Three ways to ask, depending on what you have. https://insolvencyapi.com/documentation/about-companies

#### Pick the call by what you have

| You have | Use |
|---|---|
| Its register number | [Look up a company](https://insolvencyapi.com/documentation/company): one exact answer, with every case it has. |
| Only its name | [Search by name](https://insolvencyapi.com/documentation/company-search): every match, with its number. |
| A list of companies | [Check a list](https://insolvencyapi.com/documentation/company-check): up to 100 in one call. |

A register number is the one its own country gives: a UK company number, a French SIREN, a Czech IČO. Send it as the country writes it.

#### Common jobs

- [Check a new customer at onboarding](https://insolvencyapi.com/documentation/company): `GET /v1/companies/gb/{register_number}`
- [Check your whole book each night](https://insolvencyapi.com/documentation/company-check): `POST /v1/companies/check`
- [Find a company you only know by name](https://insolvencyapi.com/documentation/company-search): `GET /v1/companies/search?q=freight`

### Statistics

Monthly counts on Professional; sectors, regions, drivers, durations, outcomes, trends and comparisons on Intel. https://insolvencyapi.com/documentation/about-statistics

#### What is counted

Statistics are worked out from every case held and rebuilt every hour. Monthly counts also carry Belgium and Denmark, held as official national counts. Rates are for every 10,000 companies on the register, where the register is held, so a big country and a small one compare fairly.

#### The calls

- [Monthly counts, with the economy beside them](https://insolvencyapi.com/documentation/stats-monthly): `GET /v1/stats/monthly`
- [Where it is happening, by sector](https://insolvencyapi.com/documentation/stats-sectors): `GET /v1/stats/sectors`
- [Where it is happening, by region](https://insolvencyapi.com/documentation/stats-regions): `GET /v1/stats/regions`
- [Who started the cases](https://insolvencyapi.com/documentation/stats-drivers): `GET /v1/stats/drivers`
- [How long cases last](https://insolvencyapi.com/documentation/stats-durations): `GET /v1/stats/durations`
- [How cases end](https://insolvencyapi.com/documentation/stats-outcomes): `GET /v1/stats/outcomes`
- [What is rising faster than usual](https://insolvencyapi.com/documentation/stats-trends): `GET /v1/stats/trends`
- [One country against another](https://insolvencyapi.com/documentation/stats-compare): `GET /v1/stats/compare`

### Connect an assistant with MCP

Give Claude, ChatGPT or Cursor the API as tools, with your own key. https://insolvencyapi.com/documentation/mcp

#### The server

The MCP server is at `https://insolvencyapi.com/mcp`. It offers 17 tools, each calling the API with your own key, so your plan and limits apply as usual.

| Assistant | How to add it |
|---|---|
| Claude | Settings, Connectors, Add custom connector, and paste the address. You sign in once and press Allow. |
| ChatGPT | Settings, Connectors, Create, and paste the address. You sign in once and press Allow. |
| Cursor | Add a server with the address and the header `X-API-Key` set to your key. |
| Claude Code | `claude mcp add --transport http insolvencyapi https://insolvencyapi.com/mcp --header "X-API-Key: YOUR_KEY"` |

#### Signing in

Claude and ChatGPT connect with your account: you sign in with Google once and press Allow. No new key is made and none is copied; the assistant calls the API with your account’s key and plan, so a new plan or a replaced key applies at once. Each tool call counts as one API call and shows in Activity as Assistants. You can disconnect an assistant at any time under [Your key](https://insolvencyapi.com/account/keys).

#### An example

Ask: *“Which UK construction companies went into liquidation this week, and are any still taking claims?”* The assistant calls `find_cases` with `country=gb`, `sector=F` and this week’s date, then `claims_deadlines` for the companies it found, and answers with names, dates and deadlines.

Every tool and its parameters are on [MCP tools](https://insolvencyapi.com/documentation/mcp-tools).

### Agent skill

One file that teaches an agent how to use the API well. https://insolvencyapi.com/documentation/agent-skill

#### What it is

[https://insolvencyapi.com/skill.md](https://insolvencyapi.com/skill.md) is a short guide for agents: what the API holds, which call answers which question, the case shape, the limits and the errors. It is also published at `/.well-known/agent-skills/insolvencyapi/SKILL.md`, with its index at `/.well-known/agent-skills/index.json`, where agents look for skills by themselves.

To install it in Claude Code, save it as `~/.claude/skills/insolvencyapi/SKILL.md`; in Claude, upload it as a skill in Settings. It is kept with these pages, so it is always current.

### Changelog

What has changed, newest first. Version 1 only ever gains fields. https://insolvencyapi.com/documentation/changelog

#### Our promise

Within version 1 we only ever add: a new field, a new filter, a new endpoint, a new country. A field is never renamed, retyped or removed. If a version 2 is ever needed, version 1 keeps running beside it.

#### Changes

- 15 Oct 2026: Claims deadlines: the UK is marked as rare, because UK notices state the deadline past the part open to us. France is unchanged. Labs opened: six tools, each with its own page.
- 15 Oct 2026: Lithuania added: companies in bankruptcy, restructuring or liquidation, from the legal entities register, read every day.
- 15 Oct 2026: Data gaps, free and with no key: `/v1/gaps` for every place in the world and `/v1/gaps/{country}` for one. Official counts as published: `/v1/stats/official`.
- 14 Oct 2026: Who started the cases: `/v1/stats/drivers`, by month, region or sector, for the UK and France.
- 14 Oct 2026: Version 1: cases in 17 countries, notices for the UK and France, company checks, coverage, and statistics on Professional and Intel.

## Errors

Errors come as `{"error": {"code", "message", "docs"}}`, with `plan` added when your plan is the reason. The code is for your program and never changes; the message is for people. Every code: https://insolvencyapi.com/documentation/errors

## About this document

Generated from the endpoint registry, the guides and the plans. The date above tells a stale copy apart. Machine-readable: https://insolvencyapi.com/openapi.json. Tools for assistants: https://insolvencyapi.com/mcp.
