Insolvenz-Radar API Documentation

Overview

The Insolvenz-Radar API provides access to insolvency data with comprehensive search capabilities, authentication, and rate limiting. The API follows RESTful principles.

Base URL

https://api.insolvenz-radar.de/v1

API Version

v1

Features

  • RESTful API design
  • API Key authentication
  • Rate limiting per company
  • Comprehensive search functionality
  • Field selection for optimized responses
  • Wildcard search support
  • Pagination support
  • CORS enabled
  • JSON responses

Authentication

All API requests require authentication using an API key. The API key must be included in the request headers.

Get your API Key

  1. Sign up for a free account or log in.
  2. Go To API Settings and copy the API Key.
  3. Without a paid plan, your rate limit is set to 5 requests per hour. Upgrade now

Header Format

X-API-Key: your-api-key-here

Authentication Flow

  1. Include your API key in the X-API-Key header
  2. If valid, the request proceeds; if invalid, returns 401 Unauthorized
Note: API keys are account specific and determine rate limiting and access permissions.

Rate Limiting

The API implements rate limiting on a per account basis with hourly windows. Rate limits depend on your plan.

Rate Limit Headers

Header Description Example
X-RateLimit-Limit Maximum requests allowed per hour 1000
X-RateLimit-Remaining Remaining requests in current hour 847

Rate Limit Behavior

  • Rate limits reset every hour
  • When rate limit is exceeded, API returns 429 Too Many Requests

Endpoints

GET

Health Check

/health

Check account health status.

Response

{
  "ok": true
}
GET

Search Entries

/entries/search

Search and filter insolvency entries with pagination support, field selection, and wildcard search.

All values need to be URL encoded.

Query Parameters

Parameter Type Required Description
page integer No Page number (default: 1)
per_page integer No Items per page (1-100, default: 25)
sort string No Sort field: veroeffentlicht (default: veroeffentlicht)
order string No Sort order: asc or desc (default: desc)
fields string No Comma-separated list of fields to return (see Field Selection section)
veroeffentlicht_from date No Filter by publication date from (YYYY-MM-DD)
veroeffentlicht_to date No Filter by publication date to (YYYY-MM-DD)
type string No Exact match on entry type
name string No Exact match on company name (supports wildcards with *)
firstname string No Exact match on first name (supports wildcards with *)
lastname string No Exact match on last name (supports wildcards with *)
birthday string No Exact match on birth date (YYYY-MM-DD format, supports wildcards with *)
sitz string No Exact match on debtor location (supports wildcards with *)
gericht string No Exact match on court name
reg_number string No Exact match on registration number (e.g. HRB 16674)
reg_type string No Exact match on registration type (e.g. HRB)
register string No Exact match on register (e.g. 16674)
debtor_address_street string No Exact match on debtor street address (supports wildcards with *)
debtor_address_housenumber string No Exact match on debtor house number (supports wildcards with *)
debtor_address_postcode string No Exact match on debtor postal code (supports wildcards with *)
debtor_address_city string No Exact match on debtor city (supports wildcards with *)
company_purpose string No Exact match on company purpose (supports wildcards with *, e.g. "An- und Verkauf von Immobilien")

Response

{
  "data": [
    {
      "veroeffentlicht": "2024-01-15T10:30:00+00:00",
      "az": "AZ 123/24",
      "gericht": "Amtsgericht München",
      "name": "Example GmbH",
      "sitz": "München",
      "register": "München, HRB 266691",
      "type": "eroeffnung",
      "firstname": "Max",
      "lastname": "Mustermann",
      "birthday": "1980-05-15",
      "reg_number": "HRB 266691",
      "reg_type": "HRB",
      "reg_number_number": 266691,
      "administrator": "Dr. Max Mustermann",
      "debtor_address_street": "Hauptstraße",
      "debtor_address_housenumber": "123",
      "debtor_address_postcode": "80331",
      "debtor_address_city": "München",
      "company_purpose": "Handel mit Waren aller Art",
      "administrator": "Dr. Max Mustermann, Musterstraße 123, 80331 München, +49 123 4567890, max.mustermann@example.com, https://www.example.com"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1500
  }
}

Search Parameters Details

Wildcard Search

Most string parameters support wildcard search using the * character:

  • name=*GmbH* - Find companies with "GmbH" in the name
  • firstname=*i*m* - Find first names containing "i" and "m"
  • lastname=Meyer - Exact match (no wildcards)
  • debtor_address_street=*Hauptstraße* - Find debtors on streets containing "Hauptstraße"
  • debtor_address_city=*München* - Find debtors in cities containing "München"
  • debtor_address_postcode=144* - Find debtors with postal codes starting with "144"
  • company_purpose=*Software* - Find companies with "Software" in their purpose

Entry Types

The type parameter accepts specific values for different insolvency procedures and decisions:

Type Value
sicherungsmassnahme
abweisung_mangels_masse
eroeffnung
entscheidung_im_verfahren
sonstiges
entscheidung_nach_aufhebung_des_verfahrens
verteilungsverzeichnisse
entscheidung_im_restschuldbefreiungsverfahren
ueberwachte_insolvenzplaene

Note: Type values are case-sensitive.

Date Filtering

Date parameters accept YYYY-MM-DD format and are automatically converted to full datetime ranges:

  • veroeffentlicht_from - From 00:00:00 of the specified date
  • veroeffentlicht_to - To 23:59:59 of the specified date

Pagination

Pagination is handled via page and per_page parameters:

  • Page numbers start at 1
  • Maximum 100 items per page
  • Default: 25 items per page

Field Selection

Use the fields parameter to specify which fields to return in the response. This can significantly reduce response size and improve performance.

Available Fields

Field Type Description
veroeffentlichtstringPublication date (ISO 8601)
azstringCase number
gerichtstringCourt name
namestringCompany name
sitzstringCompany location
registerstringRegister information
typestringEntry type
firstnamestringFirst name
lastnamestringLast name
birthdaystringBirth date (YYYY-MM-DD)
reg_numberstringRegistration number (e.g. HRB 123456)
administratorstringAdministrator name (Verwalter)
debtor_address_streetstringDebtor street address
debtor_address_housenumberstringDebtor house number
debtor_address_postcodestringDebtor postal code
debtor_address_citystringDebtor city
company_purposestringCompany purpose (Unternehmensgegenstand)

Usage Examples

?fields=name,firstname,lastname,birthday

Returns only company name, first name, last name, and birthday fields.

?fields=veroeffentlicht,gericht,type

Returns only publication date, court, and type fields.

Note: If no fields are specified, all available fields are returned. Invalid field names are ignored.

Response Format

Success Responses

All successful responses return JSON with UTF-8 encoding and include appropriate headers.

Data Fields

Field Type Description
veroeffentlichtstring (ISO 8601)Publication date
azstringCase number
gerichtstringCourt name
namestringCompany name
sitzstringCompany location
registerstringRegister information
typestringEntry type
firstnamestringFirst name
lastnamestringLast name
birthdaystring (YYYY-MM-DD)Birth date
reg_numberstringRegistration number
reg_typestringRegistration type
reg_number_numberintegerNumeric registration number
administratorstringAdministrator name (Verwalter)
debtor_address_streetstringDebtor street address
debtor_address_housenumberstringDebtor house number
debtor_address_postcodestringDebtor postal code
debtor_address_citystringDebtor city
company_purposestringCompany purpose (Unternehmensgegenstand)

Error Handling

HTTP Status Codes

Code Status Description
200OKRequest successful
401UnauthorizedMissing or invalid API key
404Not FoundEntry not found
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer error

Error Response Format

{
  "error": "Error message description"
}

Common Error Messages

  • "Missing X-API-Key" - API key header not provided
  • "Invalid API key" - API key not found in database
  • "Rate limit exceeded" - Hourly rate limit reached

Examples

Basic Search

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?name=GALERIA%20Karstadt%20Kaufhof%20GmbH&page=1&per_page=10"

Exact search for name

Wildcard Search

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?lastname=*meier*&firstname=*a*"

Date Range Search

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?veroeffentlicht_from=2024-01-01&veroeffentlicht_to=2024-01-31"

Field Selection

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?fields=name,firstname,lastname,birthday"

Filter by Court and Type

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?gericht=*M%C3%BCnchen*&type=eroeffnung"

Complex Search with Multiple Filters

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?lastname=*meier*&veroeffentlicht_from=2023-01-01&type=entscheidung_im_verfahren&fields=name,firstname,lastname,birthday,gericht&page=1&per_page=50"

Debtor Address Search

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?debtor_address_city=*Berlin*&debtor_address_street=*Hauptstra%C3%9Fe*&fields=name,firstname,lastname,debtor_address_street,debtor_address_city"

Health Check

curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/health"

PHP Example


// Your API key
$apiKey = 'your-api-key';

// Base URL
$baseUrl = 'https://api.insolvenz-radar.de/v1/entries/search';

// Helper function to perform the API request with curl
function callApi($url, $apiKey) {
    $ch = curl_init();

    curl_setopt_array($ch, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'X-API-Key: ' . $apiKey,
            'Content-Type: application/json'
        ],
        CURLOPT_TIMEOUT => 30,
    ]);

    $response = curl_exec($ch);
    $error = curl_error($ch);
    curl_close($ch);

    if ($error) {
        echo "cURL error: $error\n";
        return null;
    }

    $data = json_decode($response, true);
    return $data;
}

// --- Example: Search with wildcard and field selection ---
$query = http_build_query([
    'name' => 'Galeria*',
    'fields' => 'veroeffentlicht,name,register, administrator'
]);

$data = callApi("$baseUrl?$query", $apiKey);

var_dump($data);
Python Example
import requests

# Search with field selection
response = requests.get(
    'https://api.insolvenz-radar.de/v1/entries/search',
    params={
        'name': 'GALERIA%20Karstadt%20Kaufhof%20GmbH',
        'fields': 'name,firstname,lastname,birthday',
        'page': 1,
        'per_page': 10
    },
    headers={'X-API-Key': 'your-api-key'}
)

if response.status_code == 200:
    data = response.json()
    print(f"Found {data['meta']['total']} entries")
    for entry in data['data']:
        print(f"Name: {entry['name']}, Person: {entry['firstname']} {entry['lastname']}")
else:
    print(f"Error: {response.status_code} - {response.json()}")