/v1/search-organizations
1 πίστωση • 60/λεπτόΑναζήτηση γερμανικών εταιρειών με προηγμένο φιλτράρισμα και υποστήριξη σελιδοποίησης.
Παράμετροι
| Όνομα | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
| api_key | string | Υπό όρους* | Το κλειδί API σας. Απαιτείται εάν δεν χρησιμοποιείτε την κεφαλίδα x-api-key ή Bearer token |
| q | string | Υπό όρους* | Ερώτημα αναζήτησης (ελάχιστο: 2 χαρακτήρες) |
| skip | integer | προαιρετικό | Αριθμός αποτελεσμάτων προς παράλειψη (προεπιλογή: 0) |
| limit | integer | προαιρετικό | Αποτελέσματα ανά σελίδα (προεπιλογή: 10, μέγιστο: 30) |
| filters | string (JSON object) | προαιρετικό | Φιλτράρισμα μόνο κατά postal_code. Μορφή: |
| sort | string | προαιρετικό | Sortierfeld: relevance (Standard), registration_date, financial_year, revenue, profit, employees, total_assets, equity, liabilities, cash, equity_ratio, share_capital, last_activity, largest_share_ratio, management_size, md_oldest_birth_date, md_youngest_birth_date, fb_entity_id oder distance (erfordert den Geo-Filter). Ein unbekanntes Feld wird mit 422 beantwortet. |
| order | string | προαιρετικό | Sortierrichtung: asc oder desc. Jedes Sortierfeld hat eine sinnvolle Voreinstellung. |
| match_context | boolean | προαιρετικό | match_context=1 ergänzt jeden Treffer um _match_context: die Einträge, die die Registerdaten-Filter erfüllt haben. Ohne den Parameter bleibt die Antwort schlank. |
Filter
Alle Filter sind optional. Bereichsfilter akzeptieren {"gte": min, "lte": max} — jede der beiden Grenzen kann entfallen — und werden in einem financial_filters-Objekt verschachtelt, z. B. {"financial_filters":{"pl_revenue":{"gte":1000000}}}.
GET /v1/search-organizations?limit=10&filters={"city":"München","industry_code":["62.10.1","62.10.3"],"industry_scheme":"WZ2025","financial_filters":{"pl_revenue":{"gte":1000000}}}
Zur Lesbarkeit unkodiert dargestellt — in echten Requests muss der filters-Wert URL-kodiert sein.
Identität & Registrierung
8-
registration_date_fromdate - Frühestes Registrierungsdatum (ISO 8601, YYYY-MM-DD).
-
registration_date_todate - Spätestes Registrierungsdatum (ISO 8601, YYYY-MM-DD).
-
legal_form_codestring - Exakter Rechtsformcode, z. B. GmbH, AG, e.V. oder UG (haftungsbeschränkt). Erlaubt ist genau ein String; Arrays werden abgelehnt.
-
industry_codestring / array - NACE-/WZ-Branchencode. Einzelner Code oder Array von Codes — ein Array findet Unternehmen aus jeder dieser Branchen, z. B. ["62.10.1","62.10.3"].
-
industry_schemestring - Klassifikationsschema zu industry_code. Standard: WZ2025.
-
activeboolean - true = nur aktive Unternehmen, false = nur inaktive. Ohne Angabe: beide.
-
statusenum - Exakter Registerstatus: ACTIVE, INACTIVE, TERMINATED, DISSOLVED oder INSOLVENT. Die Werte müssen großgeschrieben werden. Für einen konkreten Lebenszyklusstatus ist status gedacht; für die einfache Unterscheidung zwischen aktiv und inaktiv reicht active.
-
legal_form_liability_typeenum - Haftungsform: limited, unlimited oder mixed.
Standort
5-
postal_codestring - Deutsche 5-stellige Postleitzahl (PLZ).
-
citystring - Stadtname.
-
statestring - Deutsches Bundesland (z. B. Bayern, Hessen).
-
location_coordinatesobject {lat, lon} - Mittelpunkt der Umkreissuche in WGS84-Dezimalgrad, angegeben als {"lat":48.137,"lon":11.576}. Der Breitengrad muss zwischen -90 und 90 liegen, der Längengrad zwischen -180 und 180. Nur zusammen mit location_max_distance_km senden.
-
location_max_distance_kmnumber - Suchradius in Kilometern (1–100). Nur zusammen mit location_coordinates senden.
Gericht & Register
3-
registration_typestring / array - Registerart: HRA, HRB, GnR, PR oder VR. Einzelner Wert oder Array.
-
registration_authority_namestring - Registergericht (z. B. München).
-
registration_numberstring - Registernummer (z. B. HRB 12345).
Größe & Mitarbeiter
2-
company_size_categoryenum - Größenklasse: micro, small, medium oder large.
-
emp_countrange - Bereich der Mitarbeiterzahl.
Bilanz
7-
bs_assets_totalEUR range - Bilanzsumme, in EUR.
-
bs_equity_totalEUR range - Eigenkapital, in EUR.
-
bs_liabilities_totalEUR range - Gesamtverbindlichkeiten, in EUR.
-
bs_cash_and_equivalentsEUR range - Kassenbestand & Zahlungsmitteläquivalente, in EUR.
-
bs_cash_to_liabilitiesdecimal range - Liquiditätsgrad (Kassenbestand ÷ Verbindlichkeiten), Dezimalwert.
-
bs_equity_ratioratio (0–1) - Eigenkapitalquote (Eigenkapital ÷ Bilanzsumme), Dezimalwert 0–1.
-
bs_debt_to_assetsratio (0–1) - Fremdkapitalquote (Schulden ÷ Bilanzsumme), Dezimalwert 0–1.
Gewinn- und Verlustrechnung
3-
pl_revenueEUR range - Jahresumsatz, in EUR.
-
pl_net_incomeEUR range - Jahresüberschuss, in EUR.
-
pl_ebitEUR range - EBIT / Betriebsergebnis, in EUR.
Registerdaten-Filter (Eigentum, Geschäftsführung, Insolvenz)
3-
ownership_filtersconditions - Eigentums- und Nachfolgekriterien aus dem Playground: structure, owner_managed, likely_family_owned, largest_share_ratio (0–1), oldest_owner_birth_date und youngest_owner_birth_date.
-
executive_filtersconditions - Alterskriterien für die Geschäftsführung aus dem Playground: md_oldest_birth_date und md_youngest_birth_date.
-
lifecycle_filtersconditions - Insolvenzkriterien aus dem Playground: insolvency_active, insolvency_status und insolvency_opened_date.
Registerdaten-Filter im Detail
Diese Eigentums-, Geschäftsführungs- und Insolvenzkriterien stehen im aktuellen Such-Playground auf der Startseite zur Verfügung — einschließlich KI-Suche und Schnellstarts. Jede Gruppe steht als eigenes Bedingungsobjekt im filters-Objekt und lässt sich mit allen übrigen Filtern kombinieren.
ownership_filters
Eigentümerstruktur
Ein Bedingungsobjekt
-
structureenum -
Zusammensetzung des Eigentümerkreises.
Werte:
sole_personEine Person ·partnersMehrere Gesellschafter ·sole_companyEin Unternehmen ·familyFamilie ·fragmentedBreit gestreut ·corporate_groupKonzern -
owner_managedboolean - Mindestens ein Eigentümer ist zugleich in der Geschäftsführung eingetragen.
-
likely_family_ownedboolean - Mehrere Eigentümer teilen einen Familiennamen — ein Hinweis auf Familienbesitz, keine amtliche Feststellung.
-
largest_share_ratiorange - Größter Einzelanteil, Dezimalwert zwischen 0 und 1.
-
oldest_owner_birth_datedate - Geburtsdatum des ältesten Eigentümers.
-
youngest_owner_birth_datedate - Geburtsdatum des jüngsten Eigentümers.
Treffer-Kontext: _match_context.ownership
executive_filters
Führungs-Kennzahlen
Ein Bedingungsobjekt
-
md_oldest_birth_datedate - Geburtsdatum des ältesten aktiven Geschäftsführers.
-
md_youngest_birth_datedate - Geburtsdatum des jüngsten aktiven Geschäftsführers.
Treffer-Kontext: _match_context.executive
lifecycle_filters
Lebenszyklus & Insolvenz
Ein Bedingungsobjekt
-
insolvency_activeboolean - true = laufendes Verfahren. Das Feld ist nur gesetzt, wenn überhaupt ein Verfahren erfasst ist — {"exists": false} findet daher Unternehmen ganz ohne Insolvenzverfahren.
-
insolvency_statusenum -
Stand des jüngsten Verfahrens.
Werte:
openedEröffnet ·provisionalVorläufig ·discontinuedEingestellt ·concludedAbgeschlossen ·rejected_no_assetsMangels Masse abgewiesen ·plan_monitoringPlanüberwachung ·opening_rescindedEröffnung aufgehoben -
insolvency_opened_datedate - Datum der Verfahrenseröffnung.
Treffer-Kontext: _match_context.lifecycle
Jedes Feld akzeptiert einen Einzelwert, eine Liste (einer der Werte genügt) oder ein Operator-Objekt mit gte, lte, gt, lt, eq oder exists. Datumsangaben als JJJJ, JJJJ-MM oder JJJJ-MM-TT; eine Teilangabe deckt ihren gesamten Zeitraum ab. Anteile reisen als Dezimalwert zwischen 0 und 1 — 0.25 entspricht 25 %.
Mit match_context=1 nennt jeder Treffer unter _match_context die Einträge, die den Filter erfüllt haben — jede Gruppe unter ihrem eigenen Schlüssel.
GET /v1/search-organizations?limit=10&match_context=1&filters={"state":"Bayern","ownership_filters":{"owner_managed":true,"likely_family_owned":true,"oldest_owner_birth_date":{"lte":"1959"}}}
Zur Lesbarkeit unkodiert dargestellt — in echten Requests muss der filters-Wert URL-kodiert sein.
Auszug aus der Antwort
{
"name": "Muster Beteiligungs-GmbH",
"_match_context": {
"ownership": {
"owner_managed": true,
"likely_family_owned": true,
"oldest_owner_birth_date": "1948-04-29"
}
}
}
Namen und Kennungen sind im Beispiel ersetzt.
Παράδειγμα Αιτήματος
curl 'https://handelsregister.ai/api/v1/search-organizations?api_key=your_api_key_here&q=tech&limit=10&filters=%7B%22postal_code%22%3A%2280992%22%7D'
Παράδειγμα Απάντησης
{
"results": [
{
"entity_id": "65063129c1bf565e4244b943a188bbda",
"name": "m50 GmbH",
"registration": {
"court": "München",
"register_type": "HRB",
"register_number": "189767"
},
"address": {
"house_number": "20",
"street": "Gubestraße",
"postal_code": "80992",
"city": "München",
"county": "München (Stadt)",
"state": "Bayern",
"country": "DEU",
"coordinates": {
"latitude": 48.18005,
"longitude": 11.51116
}
},
"registration_date": "2011-01-04T00:00:00",
"purpose": "Film- und Fernsehproduktion..."
}
],
"total": 988,
"meta": {
"request_credit_cost": 1,
"credits_remaining": "73841333"
}
}