shareholders_deep
MaxTiefe Gesellschafter (shareholders_deep) zeigt, wer an einem Unternehmen beteiligt ist: mit welchem Anteil, mit welchen Geschäftsanteilen und deren Nummern, seit wann jemand verzeichnet ist und was sich mit der jüngsten Gesellschafterliste geändert hat, dazu die früheren Listen. Grundlage sind die beim Handelsregister eingereichten Gesellschafterlisten und Gründungsdokumente.
Nur mit Max: 80 Credits pro Abruf, zusätzlich zum Grundpreis von 5 Credits. Die 80 Credits fallen nur an, wenn aktuelle Gesellschafter geliefert werden. Im API-Playground ausprobieren →
Abruf
Ergänze Deinen Abruf von fetch-organization um feature=shareholders_deep und übergib als q die entity_id des Unternehmens.
curl -G 'https://handelsregister.ai/api/v1/fetch-organization' \
-H 'x-api-key: YOUR_API_KEY' \
--data-urlencode 'q=b4a3c2d1e5f697887a6b5c4d3e2f1a0b' \
--data-urlencode 'feature=shareholders_deep'
| Situation | Antwort | Credits für das Feature |
|---|---|---|
| Nicht angefragt oder Dein Plan ist nicht Max | kein Schlüssel shareholders_deep | 0 |
| Keine aktuellen Angaben zu Gesellschaftern, etwa bei einer AG | "shareholders_deep": null | 0 |
| Sonst | der Block wie unten beschrieben | 80, bei leerem entries 0 |
Beispiel
{
"entity_id": "b4a3c2d1e5f697887a6b5c4d3e2f1a0b",
"name": "Beispielwerk Analytics GmbH",
"shareholders_deep": {
"record": {"date": "2025-03-15", "source": "SHAREHOLDER_LIST"},
"share_capital": {"value": 50000, "currency": "EUR",
"basis": "REPORTED"},
"entries": [
{
"holder": {
"entity_id": "d4c3b2a1f6e5a7b8c9d0e1f2a3b4c5d6",
"type": "ORGANIZATION",
"name": "Beispielwerk Holding GmbH",
"legal_form": "GmbH",
"status": "ACTIVE",
"city": "München",
"country": "DEU",
"registration": {"court": "München",
"register_type": "HRB",
"register_number": "12345"},
"registration_text": null
},
"role": "SHAREHOLDER",
"ownership": {
"percentage": 75,
"percentage_basis": "REPORTED",
"nominal_amount": {"value": 37500, "currency": "EUR"},
"share_count": 2,
"share_ranges": [
{"from": 2, "to": 2, "count": 1,
"nominal_value": {"value": 12500, "currency": "EUR"}},
{"from": 3, "to": 3, "count": 1,
"nominal_value": {"value": 25000, "currency": "EUR"}}
]
},
"since": "2025-03-15",
"since_basis": "ENTRY_RECORDED"
},
{
"holder": {
"entity_id": "f1e2d3c4b5a69788a7b6c5d4e3f2a1b0",
"type": "PERSON",
"name": "Max Mustermann",
"birth_date": "1985-07-14",
"city": "München",
"country": "DEU"
},
"role": "SHAREHOLDER",
"ownership": {
"percentage": 25,
"percentage_basis": "REPORTED",
"nominal_amount": {"value": 12500, "currency": "EUR"},
"share_count": 1,
"share_ranges": [
{"from": 1, "to": 1, "count": 1,
"nominal_value": {"value": 12500, "currency": "EUR"}}
]
},
"since": "2019-06-03",
"since_basis": "EARLIEST_RECORD"
}
],
"history": [
{
"record": {"date": "2019-06-03",
"source": "SHAREHOLDER_LIST"},
"share_capital": {"value": 25000, "currency": "EUR",
"basis": "REPORTED"},
"entries": [
{
"holder": {
"entity_id": "f1e2d3c4b5a69788a7b6c5d4e3f2a1b0",
"type": "PERSON",
"name": "Max Mustermann",
"birth_date": "1985-07-14",
"city": "München",
"country": null
},
"role": "SHAREHOLDER",
"ownership": {
"percentage": 100,
"percentage_basis": "REPORTED",
"nominal_amount": {"value": 25000,
"currency": "EUR"},
"share_count": 2,
"share_ranges": [
{"from": 1, "to": 2, "count": 2,
"nominal_value": {"value": 12500,
"currency": "EUR"}}
]
},
"since": "2019-06-03",
"since_basis": "EARLIEST_RECORD"
}
]
}
],
"changes": {
"compared_to": "2019-06-03",
"joined": [
{
"holder": {
"entity_id": "d4c3b2a1f6e5a7b8c9d0e1f2a3b4c5d6",
"type": "ORGANIZATION",
"name": "Beispielwerk Holding GmbH"
},
"percentage": 75
}
],
"left": [],
"changed": [
{
"holder": {
"entity_id": "f1e2d3c4b5a69788a7b6c5d4e3f2a1b0",
"type": "PERSON",
"name": "Max Mustermann"
},
"percentage_before": 100,
"percentage_after": 25
}
]
}
}
}Felder
shareholders_deep
| Schlüssel | Typ | Beschreibung |
|---|---|---|
| record | object | Woher der aktuelle Stand stammt: {date, source}. date ist das Datum des Dokuments, bei COMMERCIAL_REGISTER null. |
| share_capital | object | null | Stammkapital laut diesem Dokument: {value, currency, basis}. null, wenn es sich weder ablesen noch berechnen lässt, und bei COMMERCIAL_REGISTER. |
| entries | array<object> | Die aktuellen Gesellschafter, der größte Anteil zuerst. Ein Eintrag je Zeile des Dokuments: Wer mehrere Zeilen hat, erscheint mehrfach. |
| history | array<object> | Die übrigen Dokumente, das jüngste zuerst, jeweils mit record, share_capital und entries. Gesellschafter aus Dokumenten stehen darin so, wie sie damals gedruckt waren (status null). |
| changes | object | null | Was sich gegenüber dem vorherigen Dokument geändert hat. null, wenn es keines gibt oder record.source nicht SHAREHOLDER_LIST ist. |
entries[]
| Schlüssel | Typ | Beschreibung |
|---|---|---|
| holder | object | Wer den Anteil hält, siehe holder. |
| role | enum | In welcher Rolle, siehe Werte. |
| ownership | object | Wie viel, siehe ownership. |
| since | string | null | Ab wann der Gesellschafter ohne Unterbrechung verzeichnet ist. Ändert sich nur sein Anteil, bleibt since gleich. Bei JOINT immer null. |
| since_basis | enum | null | Wie sicher since ist, siehe Werte. null, wenn since null ist. |
| until | string | null | Nur im COMMERCIAL_REGISTER-Eintrag von history: der Tag des Ausscheidens, soweit eingetragen. Sonst fehlt der Schlüssel. |
holder
| Schlüssel | Typ | Beschreibung |
|---|---|---|
| entity_id | string | null | Stabile ID, wenn der Gesellschafter eindeutig zugeordnet ist, sonst null. Bei JOINT immer null. |
| type | enum | ORGANIZATION, PERSON oder JOINT. Bestimmt, welche der folgenden Felder es gibt. |
| name | string | null | Der Name; in entries der aktuelle, wenn bekannt, sonst wie gedruckt. null nur bei JOINT ohne Namen der Gemeinschaft. |
| city | string | null | ORGANIZATION und PERSON: Sitz oder Wohnort. |
| country | string | null | ORGANIZATION und PERSON: Land als ISO-3166-1-alpha-3-Code, z. B. DEU. |
| legal_form | string | null | Nur ORGANIZATION: Rechtsform als Kurzform, z. B. GmbH. Freitext. |
| status | enum | null | Nur ORGANIZATION: der aktuelle Registerstatus, ACTIVE oder INACTIVE. null, wenn nicht zugeordnet. |
| registration | object | null | Nur ORGANIZATION: {court, register_type, register_number}. court kann null sein, register_number ist ein String. null, wenn kein Registerverweis lesbar ist. |
| registration_text | string | null | Nur ORGANIZATION: der Registerverweis wie gedruckt, wenn registration null ist oder kein court hat, etwa bei ausländischen Registern. Sonst null. |
| birth_date | string | null | Nur PERSON: Geburtsdatum. |
| members | array<object> | Nur JOINT: die Mitberechtigten als PERSON- oder ORGANIZATION-Objekte; ihr name kann null sein. |
ownership
| Schlüssel | Typ | Beschreibung |
|---|---|---|
| percentage | number | null | Anteil am Kapital in Prozent, 0 bis 100. null, wenn er nicht verlässlich bekannt ist. |
| percentage_basis | enum | null | Woher percentage stammt, siehe Werte. null, wenn percentage null ist. |
| nominal_amount | object | null | Summe der Nennbeträge {value, currency}. |
| share_count | integer | null | Zahl der Anteile. null, wenn sie nicht vollständig bekannt ist. |
| share_ranges | array<object> | Die Anteile nach laufender Nummer, ein Bereich je fortlaufender Folge mit gleichem Nennbetrag. Leer, wenn das Dokument keine einzelnen Anteile nennt. |
| share_ranges[].from / to | integer | null | Erste und letzte Anteilsnummer. null, wenn das Dokument keine Nummern nennt. |
| share_ranges[].count | integer | null | Zahl der Anteile im Bereich. |
| share_ranges[].nominal_value | object | null | Nennbetrag je Anteil {value, currency}. |
changes
| Schlüssel | Typ | Beschreibung |
|---|---|---|
| compared_to | string | null | record.date des vorherigen Dokuments. |
| joined | array<object> | Dazugekommen: {holder, percentage}. |
| left | array<object> | Ausgeschieden: {holder, percentage}, mit dem bisherigen Anteil. |
| changed | array<object> | Anteil geändert: {holder, percentage_before, percentage_after}. |
holder ist hier ein Kurzverweis {entity_id, type, name}, und Anteile können null sein. Wer mehrere Zeilen hat, zählt einmal. Ändern sich nur Nennbeträge oder Anteilsnummern, bleiben joined, left und changed leer.
Werte
| Feld | Wert | Bedeutung |
|---|---|---|
| record.source | SHAREHOLDER_LIST | Gesellschafterliste. |
| FOUNDING_DOCUMENT | Gründungsdokument (Musterprotokoll oder Gesellschaftsvertrag). | |
| COMMERCIAL_REGISTER | Im Handelsregister eingetragene Gesellschafter. | |
| share_capital.basis | REPORTED | Im Dokument angegeben. |
| CALCULATED | Zahl mal Nennbetrag der Anteile, weil das Dokument keine Summe nennt. | |
| ownership.percentage_basis | REPORTED | Im Dokument abgedruckt oder aus Nennbetrag und angegebenem Stammkapital berechnet. |
| CALCULATED | Aus Zahl und Nennbetrag der Anteile berechnet, ohne Bestätigung im Dokument. | |
| since_basis | ENTRY_RECORDED | Ab diesem Datum verzeichnet: Das Dokument davor nennt den Gesellschafter nicht, oder es ist der Tag der Eintragung. |
| EARLIEST_RECORD | Mindestens seit diesem Datum verzeichnet, vielleicht länger. | |
| role | SHAREHOLDER | Gesellschafter laut Liste oder Gründungsdokument. |
| LIMITED_PARTNER | Kommanditist. | |
| FULLY_LIABLE_PARTNER | Komplementär, persönlich haftend. | |
| PARTNER | Gesellschafter laut Handelsregister. | |
| PROPRIETOR | Inhaber laut Handelsregister. | |
| OWNER | Sonstiger eingetragener Eigentümer. | |
| registration.register_type | HRB | Handelsregister B: GmbH, UG, AG, SE, KGaA. |
| HRA | Handelsregister A: KG, OHG, e. K. | |
| GnR | Genossenschaftsregister. | |
| PR | Partnerschaftsregister. | |
| VR | Vereinsregister. | |
| GsR | Gesellschaftsregister (eGbR). |
Neue Werte können hinzukommen; behandle unbekannte Werte robust.
Gut zu wissen
- Unbekannte Werte sind null. Datumsangaben haben das Format YYYY-MM-DD, Beträge die Form {value, currency} mit currency als ISO-4217-Code oder null.
- percentage ist der direkt gehaltene Anteil am Kapital, nicht der Anteil an den Stimmrechten. Die Anteile eines Dokuments ergeben zusammen nicht immer genau 100. Die wirtschaftlich Berechtigten über alle Ebenen liefert das Feature ubos.
- Ein JOINT-Anteil gehört der Gemeinschaft als Ganzes, etwa einer Erbengemeinschaft. Teile ihn nicht auf die members auf und rechne ihn nicht zu deren eigenen Anteilen.
- Ist entity_id gesetzt, erkennst Du daran denselben Gesellschafter in entries, history und changes; Namen in history können anders geschrieben sein. Mit der entity_id eines Unternehmens als q rufst Du dessen eigene Gesellschafter ab.
Unterschied zu shareholders
Das reguläre Feature shareholders (5 Credits) liefert die aktuellen Gesellschafter und frühere Listen. Tiefe Gesellschafter ergänzt die einzelnen Geschäftsanteile mit ihren Nummern (share_ranges), seit wann jemand verzeichnet ist (since) und was sich zuletzt geändert hat (changes).