Developer API

Insolvenz-Datenbank als REST-API

Direkter Zugriff auf über 3,8 Millionen Insolvenzbekanntmachungen aus Deutschland. Einfache Integration in Ihre eigenen Anwendungen — kein Scraping, keine Wartung. Mit dem Match-Endpunkt gleichen Sie Ihren Kundenbestand direkt aus dem CRM ab — oder Sie fragen Ihren KI-Assistenten über den MCP-Server.

Pläne

API Trial — kostenlos, 30 Tage

Schlüssel sofort im Dashboard erzeugen, keine Kreditkarte. Ein Trial je Konto.

  • 30 Tage kostenlos testen
  • Schlüssel sofort im Dashboard erzeugen
  • 1.000 Anfragen insgesamt
  • 10 Anfragen/Minute
  • Bis zu 100 Ergebnisse pro Anfrage
  • Historie der letzten 24 Monate
API Standard — €149 / Monat
  • Vollzugriff auf 3,8 Mio+ Insolvenzeinträge
  • Unbegrenzte Anfragen
  • Bis zu 1.000 Ergebnisse pro Anfrage
  • 30 Anfragen/Minute (Soft-Limit)
  • JSON · jede Programmiersprache
  • Nutzungsstatistiken im Dashboard

Authentifizierung

Jede Anfrage muss einen API-Schlüssel im Authorization-Header enthalten. Schlüssel werden im Dashboard unter API-Zugang generiert.

Authorization: Bearer imk_<ihr-api-schlüssel>

Endpunkte

GET/api/v1/insolvencies

Durchsuchen Sie die Insolvenz-Datenbank mit optionalen Filtern. Gibt bis zu 1.000 Ergebnisse pro Anfrage zurück.

Query-Parameter

ParameterTypBeschreibung
qstringVolltextsuche im Schuldnernamen und Bekanntmachungstext
registration_numberstringExakte Übereinstimmung mit dem Handelsregistereintrag
courtstringGericht (Teilübereinstimmung)
case_numberstringExaktes Aktenzeichen
categorystringKategorie (z.B. Eröffnungen, Sicherungsmaßnahmen)
fromYYYY-MM-DDUntergrenze für Bekanntmachungsdatum
toYYYY-MM-DDObergrenze für Bekanntmachungsdatum
limitintegerErgebnisse pro Seite, max 1.000 (Standard: 100)
offsetintegerSeitennummerierung (Standard: 0)

Beispiel

curl -X GET "https://insolvenzmonitor.online/api/v1/insolvencies?from=2026-03-16&to=2026-03-16&limit=1000" \
  -H "Authorization: Bearer imk_ihre_api_key"

Antwort

{
  "data": [
    {
      "id": 1234567,
      "debtor_name": "Beispiel GmbH",
      "location": "München",
      "court": "Amtsgericht München",
      "case_number": "1501 IN 1234/24",
      "publication_date": "2026-03-16",
      "category": "Eröffnungen",
      "notice_text": "Über das Vermögen der Schuldnerin...",
      "hr_entry": "HRB 12345"
    }
  ],
  "pagination": {
    "total": 4832,
    "limit": 1000,
    "offset": 0,
    "has_more": true
  }
}
GET/api/v1/insolvencies/:id

Ruft eine einzelne Insolvenzbekanntmachung anhand ihrer numerischen ID ab.

curl "https://insolvenzmonitor.online/api/v1/insolvencies/1234567" \
  -H "Authorization: Bearer imk_ihre_api_key"
POST/api/v1/match

Gleichen Sie Ihren Kundenbestand gegen die Insolvenzbekanntmachungen ab — mit derselben Matching-Logik, die das Insolvenzmonitor-Monitoring nutzt. Sie senden eine Liste von Kunden (Name, optional PLZ, Handelsregisternummer, Aktenzeichen) und erhalten je Kunde die passenden Bekanntmachungen mit Trefferquote. Gedacht für die Anbindung an CRM- oder ERP-Systeme. Jeder Aufruf zählt als eine Anfrage, unabhängig von der Zahl der Kunden. Vollständige Referenz mit Matching-Verfahren →

  • Erstabgleich eines neuen Kunden: since etwa ein Jahr zurück.
  • Täglicher Abgleich: den aktiven Bestand in Paketen senden, since = heute − 5 Tage (die Überlappung fängt spät veröffentlichte Bekanntmachungen ab).

Request-Body (JSON)

FeldTypBeschreibung
customersarrayPflicht. Ihre Kunden, die abgeglichen werden sollen: bis zu 50 je Anfrage auf API Standard, 5 auf API Trial. Größere Bestände in mehreren Anfragen nacheinander senden.
customers[].namestringPflicht. Firmen- oder Personenname, wie in Ihrem System gespeichert.
customers[].refstringOptional. Ihre eigene Kennung (z.B. CRM-ID), wird im Ergebnis zurückgegeben. Ohne Angabe: Position im Array.
customers[].zipstringOptional. Fünfstellige PLZ. Ist sie angegeben, muss sie im Bekanntmachungstext vorkommen, sonst wird ein Treffer über den Namen verworfen (gleichnamige Firma an anderem Ort).
customers[].hrstringOptional. Handelsregisternummer im Format „HRB 12345“. Präzisiert Treffer, findet aber ohne passenden Namen nichts – name immer mitsenden.
customers[].courtstringOptional. Gericht, zusammen mit case_number oder hr für exakte Treffer.
customers[].case_numberstringOptional. Aktenzeichen, zusammen mit court ein exakter Treffer.
sinceYYYY-MM-DDOptional. Frühestes Bekanntmachungsdatum. Standard: heute − 30 Tage. Frühestens 01.01.2019 (API Trial: letzte 24 Monate).
min_confidencenumberOptional. Mindestsicherheit eines Namenstreffers, 0,50–1,00. Standard: 0,85.

Beispiel

curl -X POST "https://insolvenzmonitor.online/api/v1/match" \
  -H "Authorization: Bearer imk_ihre_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "since": "2026-01-01",
    "customers": [
      { "ref": "crm-1001", "name": "Muster Bau GmbH", "zip": "50667", "hr": "HRB 12345" },
      { "ref": "crm-1002", "name": "Beispiel Handel GmbH" }
    ]
  }'

Antwort

{
  "since": "2026-01-01",
  "results": [
    {
      "ref": "crm-1001",
      "status": "match",
      "matches": [
        {
          "confidence": 0.972,
          "match_basis": "fuzzy_name",
          "debtor_name": "Muster Bau GmbH",
          "location": "Köln",
          "court": "Amtsgericht Köln",
          "case_number": "71 IN 123/26",
          "category": "Eröffnungen",
          "publication_date": "2026-03-14",
          "notice_text": "Amtsgericht Köln, Aktenzeichen 71 IN 123/26 ...",
          "bundesland": "Nordrhein-Westfalen",
          "branche": "Baugewerbe & Handwerk (Inkl. Baunebengewerbe)",
          "insolvency_id": 1839201,
          "company_page_url": "https://insolvenzmonitor.online/insolvenz/muster-bau-gmbh-koeln-hrb-12345"
        }
      ]
    },
    { "ref": "crm-1002", "status": "no_match", "matches": [] }
  ]
}

results steht in derselben Reihenfolge wie customers, die Treffer je Kunde sind nach Sicherheit sortiert. since gibt das tatsächlich angewandte Datum zurück. Die Felder sind unter Antwortfelder beschrieben; bundesland und branche können null sein.

Trefferarten (match_basis)

match_basisconfidenceBedeutung
exact_case_court1,00Aktenzeichen und Gericht stimmen überein
exact_registration_court1,00Handelsregisternummer und Gericht stimmen überein
exact_registration0,95Handelsregisternummer stimmt überein
fuzzy_nameScoreUnscharfer Namensabgleich (Umlaute, Rechtsformen und Schreibweisen werden normalisiert)

Gut zu wissen

  • Gesucht wird über den Namen. Kandidaten sind Bekanntmachungen, deren Schuldnername mit einem Wort Ihres Kundennamens beginnt. „Müller Bau GmbH“ findet „Müller Bau GmbH & Co. KG“, „Bau Müller“ (umgekehrte Reihenfolge) eventuell nicht.
  • Kein Kategoriefilter: Es kommen Treffer aller Kategorien (Eröffnungen, Abweisungen, Sicherungsmaßnahmen, Verteilungsverzeichnisse …). Filtern Sie bei Bedarf über category.
  • Firmen und Personen werden nie miteinander abgeglichen. Bei Personen müssen Nachname und Vornamen passen.
  • company_page_url ist nur gesetzt, wenn es zur Firma eine öffentliche Firmenseite gibt (Firmen mit Handelsregistereintrag und Verfahren seit 2024). Für Privatpersonen, Einzelunternehmen ohne Registereintrag und ältere Fälle ist der Wert null.
  • Datenschutz: notice_text enthält den vollständigen Bekanntmachungstext — bei Privatpersonen mit Name, Anschrift und oft Geburtsdatum. Bitte DSGVO-konform verarbeiten. Die übermittelten Kundendaten verwenden wir nur für den Abgleich und speichern sie nicht. Wenn Ihre Liste das Haus nicht verlassen soll, nutzen Sie stattdessen GET /api/v1/insolvencies und gleichen selbst ab.

Paginierung

Die API gibt maximal 1.000 Ergebnisse pro Anfrage zurück. Für größere Ergebnismengen nutzen Sie offset zur Seitennavigation. Das Feld has_more zeigt an, ob weitere Seiten folgen.

# Seite 1 (Zeilen 1–1000)
GET /api/v1/insolvencies?from=2026-03-16&limit=1000&offset=0

# Seite 2 (Zeilen 1001–2000)
GET /api/v1/insolvencies?from=2026-03-16&limit=1000&offset=1000

Antwortfelder

Felder einer Bekanntmachung bei /insolvencies. Bei /match heißt die ID insolvency_id und hr_entry entfällt; dafür kommen confidence, match_basis, bundesland, branche und company_page_url hinzu.

FeldTypBeschreibung
idintegerEindeutige numerische ID des Eintrags
debtor_namestringName des Schuldners (Person oder Unternehmen)
locationstringWohnsitz oder Geschäftsadresse
courtstringZuständiges Insolvenzgericht
case_numberstringAktenzeichen des Verfahrens
publication_datestringDatum der Bekanntmachung (ISO 8601)
categorystringVerfahrenskategorie (z.B. Eröffnungen)
notice_textstringVolltext der Bekanntmachung
hr_entrystring | nullHandelsregistereintrag (falls vorhanden)

Ratenlimits

Auf API Standard ist das Minutenlimit von 30 Anfragen ein Soft-Limit — Anfragen werden nicht blockiert, aber der Response-Header X-RateLimit-Burst: limited wird gesetzt. Es gibt kein Anfragekontingent.

Auf API Trial werden die Limits durchgesetzt: 1.000 Anfragen insgesamt und 10 Anfragen/Minute. Wird eines überschritten, antwortet die API mit 429 und dem Fehlercode QUOTA_EXCEEDED bzw. RATE_LIMITED. Außerdem sind Antworten auf 100 Zeilen und die Historie auf die letzten 24 Monate begrenzt.

Fehlercodes

HTTPCodeBedeutung
401MISSING_KEYKein API-Schlüssel angegeben
401INVALID_KEYUngültiger oder widerrufener Schlüssel
400INVALID_REQUESTUngültiger Request-Body (z.B. Kunde ohne name, PLZ nicht fünfstellig, since in der Zukunft) – nur /match
400BATCH_TOO_LARGEZu viele Kunden in einer Anfrage – nur /match
403PLAN_EXPIREDKein aktiver Plan — Trial abgelaufen oder Abo beendet
429QUOTA_EXCEEDEDAnfragekontingent aufgebraucht (nur Trial)
429RATE_LIMITEDMinutenlimit überschritten (nur Trial)
400INVALID_IDUngültige ID (nur Integer erlaubt)
404NOT_FOUNDKein Eintrag mit dieser ID gefunden
500INTERNAL_ERRORDatenbankfehler