The Insolvenz-Radar API provides access to insolvency data with comprehensive search capabilities, authentication, and rate limiting. The API follows RESTful principles.
https://api.insolvenz-radar.de/v1
All API requests require authentication using an API key. The API key must be included in the request headers.
X-API-Key: your-api-key-here
X-API-Key headerThe API implements rate limiting on a per account basis with daily windows. Rate limits depend on your plan.
| Header | Description | Example |
|---|---|---|
X-RateLimit-Limit |
Maximum requests allowed per day | 1000 |
X-RateLimit-Remaining |
Remaining requests today | 847 |
429 Too Many Requests/health
Check account health status.
Response
{
"ok": true
}
/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") |
industry |
string | No | Filter by industry name (supports wildcards with *, e.g. *Immobilien*). Available values are listed in Industry Values. Available from the Business plan. |
discharged |
boolean | No | Filter by discharge status: true/1 for discharged (Restschuldbefreiung erteilt), false/0 for not discharged. Available from the Business plan. |
discharge_date_from |
date | No | Filter by discharge date from (YYYY-MM-DD). Available from the Business plan. |
discharge_date_to |
date | No | Filter by discharge date to (YYYY-MM-DD). Available from the Business plan. |
business_insolvencies |
boolean | No | Return only business insolvencies (Firmeninsolvenzen). Accepted values: true or 1. |
consumer_insolvencies |
boolean | No | Return only consumer insolvencies (Verbraucherinsolvenzen). Accepted values: true or 1. |
metrics_type |
string | No |
Filter by (and return) a specific financial metric type. Required to enable metrics filtering and the company_metrics output field.
Allowed values: earnings, revenue, balance, employees.
Available from the Business plan.
|
metrics_min |
integer | No | Only return entries whose metric value (for the given metrics_type) is >= this number. Available from the Business plan. |
metrics_max |
integer | No | Only return entries whose metric value (for the given metrics_type) is <= this number. Available from the Business plan. |
metrics_year |
integer | No | Restrict metric filtering to a specific year (e.g. 2023). If omitted, the most recent year available per entry is used automatically. Available from the Business plan. |
discharged and discharge_date in the fields parameter, and filter by discharged, discharge_date_from, and discharge_date_to. All of these are available from the Business plan.
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": {
"name": "Rechtsanwalt Niklas Lütcke",
"street": "Lennéstraße 7",
"zip": "10785",
"city": "Berlin",
"office": "Kanzlei Mitte",
"phone": "+49 30 1234567",
"fax": "+49 30 1234568",
"email": "kanzlei@beispiel.de",
"url": "https://www.beispiel-kanzlei.de"
},
"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",
"discharged": false,
"discharge_date": null,
"company_metrics": [
{ "type": "revenue", "year": 2021, "value": 4200000 },
{ "type": "revenue", "year": 2022, "value": 3800000 },
{ "type": "balance", "year": 2022, "value": 1200000 },
{ "type": "employees", "year": 2022, "value": 38 }
],
"message": "In dem Insolvenzverfahren über das Vermögen der Musterhandel GmbH ..."
}
],
"meta": {
"page": 1,
"per_page": 25,
"total": 1500
}
}
Most string parameters support wildcard search using the * character:
name=*GmbH* - Find companies with "GmbH" in the namefirstname=*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 purposeindustry=*Pharma* - Find entries with industry names containing "Pharma"The industry parameter accepts the following values (exact match or wildcard search with *):
| Industry Value |
|---|
Automobil |
Industrie & Produktion |
Bau & Handwerk |
Handel |
eCommerce |
Telekommunikation |
Landwirtschaft |
IT & Software |
Dienstleistungen |
Gesundheit |
Finanzen & Versicherungen |
Immobilien |
Transport & Logistik |
Energie & Umwelt |
Gastronomie |
Pharma |
Tourismus |
Bildung & Forschung |
Medien & Marketing |
Recht & Steuern |
Öffentlicher Sektor |
Sonstige |
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 parameters accept YYYY-MM-DD format:
veroeffentlicht_from / veroeffentlicht_to – Publication date range (00:00:00 to 23:59:59)discharge_date_from / discharge_date_to – Discharge date range (available from the Business plan)Pagination is handled via page and per_page parameters:
Where available, the API can return historical financial and operational metrics for insolvent companies — such as revenue, earnings, balance sheet totals, and employee counts sourced from public filings. This feature is available from the Business plan.
metrics_type to your request to enable metrics (e.g. metrics_type=revenue).metrics_min and/or metrics_max — only entries matching the range are returned.metrics_year. If omitted, the most recent year available per entry is used for filtering.company_metrics to the fields parameter (or omit fields entirely) to receive all available metric types and years for each matched entry in the response.metrics_type controls which metric is used for filtering (metrics_min/metrics_max/metrics_year).
The company_metrics field in the response always returns all types and years available for the entry — not just the filtered type.
Entries with no metrics data return an empty array [].
| Value | Description |
|---|---|
revenue | Annual revenue (Umsatz) |
earnings | Annual earnings / profit or loss (Jahresergebnis) |
balance | Balance sheet total (Bilanzsumme) |
employees | Number of employees (Mitarbeiter) |
When company_metrics is included in the response, each entry contains an array of metric objects:
"company_metrics": [
{ "type": "revenue", "year": 2021, "value": 4200000 },
{ "type": "revenue", "year": 2022, "value": 3800000 },
{ "type": "balance", "year": 2022, "value": 1200000 },
{ "type": "employees", "year": 2022, "value": 38 }
]
Values are integers (euros for financial metrics, headcount for employees). The array is ordered by type, then year ascending.
?metrics_type=revenue&metrics_min=1000000&fields=name,sitz,company_metrics
Entries with at least €1 M revenue in their most recent year. Returns all metrics for each match.
?metrics_type=revenue&metrics_min=500000&metrics_max=5000000&metrics_year=2022
Entries with 2022 revenue between €500 k and €5 M.
?metrics_type=employees&metrics_min=50&name=*GmbH*&fields=name,sitz,company_metrics
GmbH companies with at least 50 employees in their most recent year.
?metrics_type=revenue&fields=name,company_metrics
Return all entries that have any revenue data (no value filter), with full metrics in the response.
Use the fields parameter to specify which fields to return in the response. This can significantly reduce response size and improve performance.
| Field | Type | Description |
|---|---|---|
veroeffentlicht | string | Publication date (ISO 8601) |
az | string | Case number |
gericht | string | Court name |
name | string | Company name |
sitz | string | Company location |
register | string | Register information |
type | string | Entry type |
firstname | string | First name |
lastname | string | Last name |
birthday | string | Birth date (YYYY-MM-DD) |
reg_number | string | Registration number (e.g. HRB 123456) |
administrator | object | Administrator details object with fields: name, street, zip, city, office, phone, fax, email, url. |
debtor_address_street | string | Debtor street address |
debtor_address_housenumber | string | Debtor house number |
debtor_address_postcode | string | Debtor postal code |
debtor_address_city | string | Debtor city |
company_purpose | string | Company purpose (Unternehmensgegenstand) This field is only returned in pricing plans Business and Expert. |
message | string | This is the actual text of the insolvency notice. Important: This field is only returned if it is explicitly mentioned in the fields parameter. If the fields parameter is missing, it is not returned. This field is only returned in pricing plans Business and Expert. |
industry | string | Industry classification of the company (Branche) This field is only returned in pricing plans Business and Expert. |
discharged | boolean | Whether the debtor has been granted discharge (Restschuldbefreiung). You can request this in fields. Available from the Business plan. |
discharge_date | string (YYYY-MM-DD) | Date on which discharge was granted, or null if not (yet) discharged. You can request this in fields. Available from the Business plan. |
company_metrics | array |
All available financial and operational metrics for the company across all types and years.
Only returned when metrics_type is also set in the request.
Each element contains type, year (integer), and value (integer).
Returns [] if no metrics are available.
Available from the Business plan.
|
?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.
?metrics_type=revenue&fields=name,sitz,company_metrics
Returns name, location, and all available financial metrics for each entry.
All successful responses return JSON with UTF-8 encoding and include appropriate headers.
| Field | Type | Description |
|---|---|---|
veroeffentlicht | string (ISO 8601) | Publication date |
az | string | Case number |
gericht | string | Court name |
name | string | Company name |
sitz | string | Company location |
register | string | Register information |
type | string | Entry type |
firstname | string | First name |
lastname | string | Last name |
birthday | string (YYYY-MM-DD) | Birth date |
reg_number | string | Registration number |
reg_type | string | Registration type |
reg_number_number | integer | Numeric registration number |
administrator | object | Administrator details object with fields: name, street, zip, city, office, phone, fax, email, url. |
debtor_address_street | string | Debtor street address |
debtor_address_housenumber | string | Debtor house number |
debtor_address_postcode | string | Debtor postal code |
debtor_address_city | string | Debtor city |
company_purpose | string | Company purpose (Unternehmensgegenstand) This field is only returned in pricing plans Business and Expert. |
company_link | string | The URL to the Insolvenz-Radar website with the company details. |
entry_link | string | The URL to the Insolvenz-Radar website with the published text. |
message | string | This is the actual text of the insolvency notice. Important: This field is only returned if it is explicitly mentioned in the fields parameter. If the fields parameter is missing, it is not returned. This field is only returned in pricing plans Business and Expert. |
industry | string | Industry classification of the company (Branche) This field is only returned in pricing plans Business and Expert. |
discharged | boolean | Whether the debtor has been granted discharge (Restschuldbefreiung). Available from the Business plan. |
discharge_date | string (YYYY-MM-DD) or null | Date discharge was granted; null if not discharged. Available from the Business plan. |
company_metrics | array |
All financial and operational metrics for the company. Only present when metrics_type is set in the request.
Each element: { "type": "revenue", "year": 2022, "value": 3800000 }.
Returns [] if no data is available for the entry.
Available from the Business plan.
|
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request successful |
| 401 | Unauthorized | Missing or invalid API key |
| 404 | Not Found | Entry not found |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server error |
{
"error": "Error message description"
}
"Missing X-API-Key" - API key header not provided"Invalid API key" - API key not found in database"Rate limit exceeded" - Daily rate limit reached"Filtering by company metrics is available from Business plan." - metrics_* parameters used on a lower plan"Invalid parameter metrics_type. Allowed values: earnings, revenue, balance, employees." - unknown metric type"Invalid parameter metrics_min. Expected non-negative integer." - non-numeric value for metrics_min or metrics_max"Invalid parameter metrics_year. Expected a valid year (e.g. 2023)." - invalid year valuecurl -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
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?lastname=*meier*&firstname=*a*"
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"
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?fields=name,firstname,lastname,birthday"
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?gericht=*M%C3%BCnchen*&type=eroeffnung"
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"
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"
Request discharged and discharge_date in fields; filter with discharged, discharge_date_from, and discharge_date_to. Available from the Business plan.
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?discharged=true&fields=name,veroeffentlicht,discharged,discharge_date"
Entries where the debtor has been granted discharge (Restschuldbefreiung).
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?discharge_date_from=2024-01-01&discharge_date_to=2024-12-31&fields=name,discharge_date"
Entries with a discharge date in the given range.
Use metrics_type together with metrics_min/metrics_max to filter by financial figures. Add company_metrics to fields to receive all available metrics in the response. Available from the Business plan.
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?name=*GmbH*&metrics_type=revenue&metrics_min=1000000&fields=name,sitz,company_metrics"
GmbH companies with at least €1 M revenue in their most recent year — returns all metrics for each match.
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?metrics_type=revenue&metrics_min=500000&metrics_max=5000000&metrics_year=2022&fields=name,company_metrics"
Entries with 2022 revenue between €500 k and €5 M.
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/entries/search?metrics_type=employees&metrics_min=50&fields=name,sitz,company_metrics"
Companies with at least 50 employees in their most recent year.
curl -H "X-API-Key: your-api-key" "https://api.insolvenz-radar.de/v1/health"
// 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: Filter by revenue and return all metrics ---
$query = http_build_query([
'name' => '*GmbH*',
'metrics_type' => 'revenue',
'metrics_min' => '1000000',
'fields' => 'name,sitz,company_metrics',
'per_page' => '25',
]);
$data = callApi("$baseUrl?$query", $apiKey);
foreach ($data['data'] as $entry) {
echo $entry['name'] . "\n";
foreach ($entry['company_metrics'] as $metric) {
echo " {$metric['type']} {$metric['year']}: {$metric['value']}\n";
}
}
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()}")
# Search with company metrics filter
response = requests.get(
'https://api.insolvenz-radar.de/v1/entries/search',
params={
'name': '*GmbH*',
'metrics_type': 'revenue',
'metrics_min': 1000000,
'fields': 'name,sitz,company_metrics',
'per_page': 25,
},
headers={'X-API-Key': 'your-api-key'}
)
if response.status_code == 200:
data = response.json()
for entry in data['data']:
print(entry['name'])
for m in entry['company_metrics']:
print(f" {m['type']} {m['year']}: {m['value']}")
else:
print(f"Error: {response.status_code} - {response.json()}")