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.

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)
q string No Full-text search across multiple fields
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 (supports wildcards with *)
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 company location (supports wildcards with *)
gericht string No Exact match on court name (supports wildcards with *)
reg_number string No Exact match on registration number (supports wildcards with *)
reg_type string No Exact match on registration type (supports wildcards with *)
register string No Exact match on register (supports wildcards with *)
verwalter string No Exact match on administrator name (supports wildcards with *)
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 *)
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",
      "message": "Eröffnung des Insolvenzverfahrens",
      "firstname": "Max",
      "lastname": "Mustermann",
      "birthday": "1980-05-15",
      "reg_number": "HRB 266691",
      "reg_type": "HRB",
      "reg_number_number": 266691,
      "verwalter": "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"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1500
  }
}

Search Parameters Details

Full-Text Search

The q parameter performs a full-text search across the following fields:

  • name - Company name
  • sitz - Company location
  • message - Insolvency message
  • verwalter - Administrator name
  • firstname - First name
  • lastname - Last name
  • register - Register information
  • company_purpose - Company purpose (Unternehmensgegenstand)
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
messagestringInsolvency message
firstnamestringFirst name
lastnamestringLast name
birthdaystringBirth date (YYYY-MM-DD)
reg_numberstringRegistration number (e.g. HRB 123456)
verwalterstringAdministrator name
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
messagestringInsolvency message
firstnamestringFirst name
lastnamestringLast name
birthdaystring (YYYY-MM-DD)Birth date
reg_numberstringRegistration number
reg_typestringRegistration type
reg_number_numberintegerNumeric registration number
verwalterstringAdministrator name
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
  • "Not found" - Entry with specified ID not found
  • "Rate limiter error" - Internal rate limiting error

Examples

Basic Search
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?q=GmbH&page=1&per_page=10"
Wildcard Search
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?lastname=*müller*&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ünchen*&type=eroeffnung"
Complex Search with Multiple Filters
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?lastname=*müller*&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=*München*&debtor_address_street=*Hauptstraße*&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"
JavaScript Example
// Search for entries with field selection
fetch('https://api.insolvenz-radar.de/v1/entries/search?q=GmbH&fields=name,firstname,lastname,birthday', {
    headers: {
        'X-API-Key': 'your-api-key',
        'Content-Type': 'application/json'
    }
})
.then(response => response.json())
.then(data => {
    console.log('Found entries:', data.data);
    console.log('Total:', data.meta.total);
})
.catch(error => {
    console.error('Error:', error);
});

// Wildcard search example
fetch('https://api.insolvenz-radar.de/v1/entries/search?lastname=*müller*&firstname=*a*', {
    headers: {
        'X-API-Key': 'your-api-key',
        'Content-Type': 'application/json'
    }
})
.then(response => response.json())
.then(data => {
    console.log('Wildcard search results:', data.data);
});
Python Example
import requests

# Search with field selection
response = requests.get(
    'https://api.insolvenz-radar.de/v1/entries/search',
    params={
        'q': 'GmbH',
        '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()}")