Gesellschafter und Beteiligungen
Wem eine Firma gehört und woran sie beteiligt ist.
Diese Seite beschreibt, wem eine Firma gehört und woran sie selbst beteiligt ist. Vier Features liefern die Daten: shareholders (Gesellschafter), shareholders_deep (Tiefe Gesellschafter), ubos (Wirtschaftlich Berechtigte) und shareholdings (Beteiligungen). Die Beispielantworten stammen aus Beispielanfragen für die Hetzner Online GmbH, Ansbach HRB 6089.
Die Daten stammen aus dem Handelsregister: aus den Gesellschafterlisten, die für eine GmbH oder UG bei jeder Änderung eingereicht werden, aus Gründungsdokumenten und aus den eingetragenen Gesellschaftern von Personengesellschaften.
Jedes Feature kostet nur, wenn es Daten liefert. Ein Feature, das dein Credit-Abo nicht enthält, lässt die API ohne Fehler weg und berechnet es nicht.
| Feature | Was es liefert | Credits | Verfügbar |
|---|---|---|---|
| shareholders | Gesellschafter: die aktuellen Gesellschafter mit Anteilen und frühere Gesellschafterlisten | 5 | jedes Konto · Beta |
| shareholders_deep | Tiefe Gesellschafter: Inhaber mit Anteilsnummern, seit wann sie beteiligt sind und was sich zuletzt geändert hat | 80 | Max |
| ubos | Wirtschaftlich Berechtigte (UBO): die Personen hinter der Firma, berechnet aus den Gesellschafterlisten | 10 | jedes Konto · Beta |
| shareholdings | Beteiligungen: Firmen, an denen die Firma selbst beteiligt ist | 5 | jedes Konto · Beta |
Gesellschafter je Rechtsform
Was über die Eigentümer im Register steht, hängt von der Rechtsform ab. Die Tabelle zeigt, was du typischerweise bekommst.
| Rechtsform | Gesellschafter in der Antwort |
|---|---|
| GmbH, UG | Alle Gesellschafter aus der Gesellschafterliste nach § 40 GmbHG, mit Nennbetrag und Anteil am Stammkapital, dazu frühere Listen. |
| AG, SE, KGaA | Nur in Einzelfällen, denn Aktionäre stehen in keinem öffentlichen Register. |
| GmbH & Co. KG | Die Kommanditisten aus dem Register mit ihrer Haftsumme, teils auch die Komplementär-GmbH. |
| KG, OHG | Die eingetragenen Gesellschafter: bei der KG Komplementäre und Kommanditisten, bei der OHG die persönlich haftenden Gesellschafter. |
| e.K. | Der Inhaber. |
| eG | Keine. Die Mitgliederliste einer Genossenschaft ist nicht öffentlich. |
| PartG | Die eingetragenen Partner. |
Gesellschafter
Das Feature shareholders liefert die aktuellen Gesellschafter: bei einer GmbH aus der neuesten Gesellschafterliste, bei Personengesellschaften und Einzelkaufleuten aus dem Register. Es kostet 5 Credits, aber nur, wenn es aktuelle Gesellschafter nennt. Liefert es nur frühere Listen, kostet es nichts.
Jeder Eintrag in entries beschreibt eine Person oder eine Firma. Eine Person hat first_name, last_name und birth_date, eine Firma entity_name, country_code und registration_reference.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: DEIN_API_SCHLUESSEL" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=shareholders'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "DEIN_API_SCHLUESSEL"}, params={ "q": "Hetzner Online GmbH", "feature": ["shareholders"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "shareholders"); const response = await fetch(url, { headers: { "x-api-key": "DEIN_API_SCHLUESSEL" }, }); const data = await response.json();
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| shareholdersobject|null |
Die Gesellschafter der Firma: aktueller Stand in entries, frühere Stände in history.Leer, wenn keine Gesellschafter bekannt sind, etwa bei einer AG oder eGshareholders · Beta |
– |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders.entriesarray | Die aktuellen Gesellschafter, ein Eintrag je Person oder Firma. | – | wie oben |
| shareholders.entries[].shareholderobject | Wer beteiligt ist: eine Person oder eine Firma, mit den Feldern darunter. | – | wie oben |
| shareholders.entries[].shareholder.entity_idstring|null | ID der Person oder Firma, für ein eigenes Personenprofil oder Firmenprofil.Leer, wenn der Gesellschafter nicht sicher zugeordnet werden konnte |
"dd1cfcd3a25b5a63d549d768e2fcaaaf" |
wie oben |
| shareholders.entries[].shareholder.first_namestring | Vorname einer Person, mit allen eingetragenen Vornamen. | – |
immer: e.K. meist: GmbH, UG, GmbH & Co. KG, KG, OHG, PartG selten: AG, SE, KGaA nie: eG |
| shareholders.entries[].shareholder.last_namestring | Nachname einer Person. | – | wie oben |
| shareholders.entries[].shareholder.birth_datestring|null | Geburtsdatum einer Person, im Format JJJJ-MM-TT.Leer, wenn das Dokument kein Geburtsdatum nennt | – | wie oben |
| shareholders.entries[].shareholder.entity_namestring | Name einer Firma, die Gesellschafter ist. |
"ENSoXX GmbH" |
meist: GmbH, UG, GmbH & Co. KG selten: AG, SE, KGaA, KG, OHG nie: e.K., eG, PartG |
| shareholders.entries[].shareholder.country_codestring|null | Land einer Firma als dreistelliger ISO-Code (ISO 3166-1 alpha-3), etwa DEU. |
"DEU" |
wie oben |
| shareholders.entries[].shareholder.registration_referencestring|null | Registereintrag einer Firma als Text, so wie er im Dokument steht.Leer, wenn das Dokument keinen Registereintrag nennt, oft bei ausländischen Firmen |
"AG Ansbach HRB 6105" |
wie oben |
| shareholders.entries[].shareholder.addressstring|null | Anschrift, Wohnort oder Sitz als Text, so wie er im Dokument steht.Leer, wenn das Dokument keine Anschrift nennt |
"Gunzenhausen" |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders.entries[].contributionobject|null | Der Betrag der Beteiligung mit amount und currency: bei einer GmbH der Nennbetrag der Anteile, bei Kommanditisten die eingetragene Haftsumme.Leer, wenn kein Betrag eingetragen ist, etwa bei persönlich haftenden Gesellschaftern oder dem Inhaber eines e.K | – |
meist: GmbH, UG, GmbH & Co. KG teils: KG, OHG selten: AG, SE, KGaA nie: e.K., eG, PartG |
| shareholders.entries[].contribution_rationumber|null | Anteil am Kapital als Dezimalzahl: 1 bedeutet 100 %, 0,245 bedeutet 24,5 %.Leer, wenn sich kein Anteil ableiten lässt, etwa bei Personengesellschaften |
0.945 |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders.entries[].roleobject | Die Rolle: label als fester Code, dazu de und en mit langer und kurzer Bezeichnung, etwa Kommanditist und Kom. | – |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders.entries[].role.labelstring |
Die Rolle als fester Code. Neue Werte können hinzukommen.Werte: SHAREHOLDER Gesellschafter laut Gesellschafterliste, LIMITED_PARTNER Kommanditist, FULLY_LIABLE_PARTNER persönlich haftender Gesellschafter, PARTNER Partner einer PartG, OWNER Inhaber eines e.K. |
"SHAREHOLDER" |
wie oben |
| shareholders.total_capitalobject|null | Das Kapital laut Gesellschafterliste mit amount und currency, die Basis für contribution_ratio.Leer, wenn die Liste kein Kapital nennt, und bei Personengesellschaften | – |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
Mit der entity_id eines Gesellschafters rufst du sein eigenes Firmenprofil oder Personenprofil ab. So verfolgst du eine Beteiligungskette Ebene für Ebene.
Gesellschafter-Historie
shareholders.history kommt ohne Aufpreis mit. Es enthält das Datum der aktuellen Liste und die früheren Gesellschafterlisten, die neueste zuerst.
Bei einer KG oder GmbH & Co. KG stehen ausgeschiedene Gesellschafter in register_ownership, mit Eintritts- und Austrittsdatum aus dem Register. Bei OHG, PartG und e.K. findest du sie in shareholders_deep.
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| shareholders.historyobject |
Frühere Stände der Gesellschafter, ohne Aufpreis.Leer, wenn keine früheren Stände vorliegen; dann fehlt das Feld, etwa bei OHG, PartG oder e.Kshareholders · Beta |
– |
meist: GmbH, UG teils: GmbH & Co. KG, KG, OHG selten: AG, SE, KGaA nie: e.K., eG, PartG |
| shareholders.history.current_as_ofstring|null | Datum der Gesellschafterliste, aus der entries stammt.Leer, wenn die Gesellschafter aus dem Register stammen |
"2015-08-21" |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders.history.pastarray | Frühere Gesellschafterlisten, die neueste zuerst.Leer, wenn erst eine Liste vorliegt | – | wie oben |
| shareholders.history.past[].as_ofstring | Datum dieser Gesellschafterliste. |
"2015-07-28" |
wie oben |
| shareholders.history.past[].data.total_capitalobject|null | Das Kapital laut dieser Liste, mit amount und currency. Ältere Listen nennen es teils in DEM. | – | wie oben |
| shareholders.history.past[].data.shareholdersarray | Die Gesellschafter laut dieser Liste, mit denselben Feldern wie entries. | – | wie oben |
| shareholders.history.register_ownershipobject | Bei KG und GmbH & Co. KG: ausgeschiedene Gesellschafter laut Register, in past. | – |
teils: GmbH & Co. KG, KG, OHG nie: GmbH, UG, AG, SE, KGaA, e.K., eG, PartG |
| shareholders.history.register_ownership.past[].shareholderobject | Der ausgeschiedene Gesellschafter, mit denselben Feldern wie in entries. | – | wie oben |
| shareholders.history.register_ownership.past[].roleobject | Seine Rolle, aufgebaut wie role in entries. | – | wie oben |
| shareholders.history.register_ownership.past[].effective_fromstring|null | Seit wann er eingetragen war, im Format JJJJ-MM-TT. |
"2022-01-07" |
wie oben |
| shareholders.history.register_ownership.past[].effective_tostring|null | Bis wann er eingetragen war. |
"2026-07-06" |
wie oben |
| shareholders.history.register_ownership.past[].effective_to_inferredboolean | true, wenn effective_to abgeleitet und nicht ausdrücklich eingetragen ist. |
false |
wie oben |
| shareholders.history.register_ownership.past[].contributionnull | Hier immer null. | – | wie oben |
| shareholders.history.register_ownership.past[].contribution_rationull | Hier immer null. | – | wie oben |
Tiefe Gesellschafter
Das Feature shareholders_deep gibt es mit dem Credit-Abo Max. Es kostet 80 Credits, aber nur, wenn das aktuelle Dokument mindestens einen Inhaber nennt.
Es liest alle Gesellschafterlisten einer Firma, nicht nur die neueste. So zeigt es, seit wann jemand beteiligt ist, wie die früheren Stände aussahen und was die letzte Liste geändert hat.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: DEIN_API_SCHLUESSEL" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=shareholders_deep'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "DEIN_API_SCHLUESSEL"}, params={ "q": "Hetzner Online GmbH", "feature": ["shareholders_deep"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "shareholders_deep"); const response = await fetch(url, { headers: { "x-api-key": "DEIN_API_SCHLUESSEL" }, }); const data = await response.json();
Das Dokument. record sagt, woher der aktuelle Stand kommt, share_capital nennt das Kapital laut diesem Dokument.
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| shareholders_deepobject|null |
Inhaber, Anteile, frühere Dokumente und die letzte Änderung.Leer, wenn kein aktuelles Dokument und kein eingetragener Gesellschafter bekannt ist, typisch bei AG, SE und eGshareholders_deep · ab Max |
– |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders_deep.recordobject | Das Dokument, aus dem der aktuelle Stand stammt: date und source. | – | wie oben |
| shareholders_deep.record.datestring|null |
Das Datum, auf das sich das Dokument bezieht. Es liegt meist kurz nach der Änderung, die das Dokument zeigt.Leer, wenn die Gesellschafter aus dem Register stammen (COMMERCIAL_REGISTER) |
"2015-08-18" |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.record.sourcestring |
Die Art des Dokuments.Werte: SHAREHOLDER_LIST Gesellschafterliste, FOUNDING_DOCUMENT Gründungsdokument, also Musterprotokoll oder Gesellschaftsvertrag, COMMERCIAL_REGISTER im Register eingetragene Gesellschafter oder Inhaber |
"SHAREHOLDER_LIST" |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders_deep.share_capitalobject|null | Das Kapital laut Dokument: value, currency und basis.Leer, wenn das Dokument kein Kapital nennt, und immer bei COMMERCIAL_REGISTER | – |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.share_capital.basisstring |
Woher der Betrag stammt.Werte: REPORTED im Dokument angegeben, CALCULATED aus Anzahl und Nennbetrag der Anteile berechnet |
"REPORTED" |
wie oben |
Die Inhaber. Jeder Eintrag in entries ist eine Zeile des Dokuments, der größte Anteil zuerst. Hat jemand mehrere Zeilen, steht er mehrfach in der Liste.
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| shareholders_deep.entriesarray |
Die aktuellen Inhaber, eine Zeile des Dokuments je Eintrag, der größte Anteil zuerst.shareholders_deep · ab Max |
– |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders_deep.entries[].holderobject | Wer den Anteil hält. type bestimmt, welche Felder folgen. | – | wie oben |
| shareholders_deep.entries[].holder.typestring |
Die Art des Inhabers.Werte: ORGANIZATION Firma oder andere Organisation, PERSON natürliche Person, JOINT gemeinsam gehaltener Anteil, etwa einer Erbengemeinschaft, mit members |
"ORGANIZATION" |
wie oben |
| shareholders_deep.entries[].holder.entity_idstring|null | ID des Inhabers, für ein eigenes Firmenprofil oder Personenprofil.Leer, wenn der Inhaber nicht sicher zugeordnet werden konnte, und immer bei JOINT |
"dd1cfcd3a25b5a63d549d768e2fcaaaf" |
wie oben |
| shareholders_deep.entries[].holder.namestring | Der Name. Bei zugeordneten Inhabern der aktuelle Name, sonst wie im Dokument. |
"ENSoXX GmbH" |
wie oben |
| shareholders_deep.entries[].holder.birth_datestring|null | Nur bei Personen: das Geburtsdatum.Leer, wenn das Dokument keines nennt | – |
immer: e.K. meist: GmbH, UG, GmbH & Co. KG, KG, OHG, PartG selten: AG, SE, KGaA nie: eG |
| shareholders_deep.entries[].holder.legal_formstring|null | Nur bei Organisationen: die Rechtsform als Text, etwa GmbH oder Ltd. |
"GmbH" |
meist: GmbH, UG, GmbH & Co. KG selten: AG, SE, KGaA, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.entries[].holder.statusstring|null |
Nur bei Organisationen: der aktuelle Status im Register.Leer, wenn der Inhaber nicht zugeordnet ist, und immer in den früheren Dokumenten in historyWerte: ACTIVE aktiv, INACTIVE nicht mehr aktiv, etwa gelöscht oder verschmolzen |
"ACTIVE" |
wie oben |
| shareholders_deep.entries[].holder.citystring|null | Sitz oder Wohnort. |
"Gunzenhausen" |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders_deep.entries[].holder.countrystring|null | Land als dreistelliger ISO-Code (ISO 3166-1 alpha-3), etwa DEU, AUT oder LUX. |
"DEU" |
wie oben |
| shareholders_deep.entries[].holder.registrationobject|null | Nur bei Organisationen: court, register_type und register_number.Leer, wenn kein Registereintrag lesbar ist, etwa bei vielen ausländischen Firmen | – |
meist: GmbH, UG, GmbH & Co. KG selten: AG, SE, KGaA, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.entries[].holder.registration_textstring|null | Nur bei Organisationen: der Registereintrag als Text, wenn registration fehlt oder kein Gericht nennt. |
null |
selten |
| shareholders_deep.entries[].rolestring |
Die Rolle des Inhabers. Neue Werte können hinzukommen.Werte: SHAREHOLDER Gesellschafter laut Gesellschafterliste oder Gründungsdokument, LIMITED_PARTNER Kommanditist, FULLY_LIABLE_PARTNER persönlich haftender Gesellschafter, PARTNER Partner einer PartG, OWNER Inhaber eines e.K. |
"SHAREHOLDER" |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders_deep.entries[].sincestring|null | Seit wann der Inhaber beteiligt ist. Bei eingetragenen Gesellschaftern das Eintragungsdatum.Leer, wenn sich kein Datum feststellen lässt, und immer bei JOINT |
"2015-08-18" |
wie oben |
| shareholders_deep.entries[].since_basisstring|null |
Wie sicher since ist.Werte: ENTRY_RECORDED ab diesem Datum belegt: die Liste davor nennt den Inhaber noch nicht, EARLIEST_RECORD steht schon im ältesten vorliegenden Dokument, also mindestens seit diesem Datum beteiligt |
"ENTRY_RECORDED" |
wie oben |
Der Anteil. ownership beschreibt, wie viel ein Inhaber hält: in Prozent, als Nennbetrag und nach den laufenden Nummern der Geschäftsanteile.
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| shareholders_deep.entries[].ownershipobject |
Der Anteil des Inhabers.shareholders_deep · ab Max |
– |
meist: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG selten: AG, SE, KGaA nie: eG |
| shareholders_deep.entries[].ownership.percentagenumber|null | Anteil am Kapital in Prozent, von 0 bis 100. Gemeint ist die direkte Beteiligung, nicht die Stimmrechte.Leer, wenn sich der Anteil nicht verlässlich bestimmen lässt, und immer bei eingetragenen Gesellschaftern von Personengesellschaften |
94.5 |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.entries[].ownership.percentage_basisstring|null |
Woher percentage stammt.Werte: REPORTED im Dokument angegeben oder aus Nennbetrag und Kapital des Dokuments, CALCULATED aus Anzahl und Nennbetrag der Anteile berechnet |
"REPORTED" |
wie oben |
| shareholders_deep.entries[].ownership.nominal_amountobject|null | Summe der Nennbeträge mit value und currency. Bei Kommanditisten die eingetragene Haftsumme.Leer, wenn kein Betrag bekannt ist | – |
meist: GmbH, UG, GmbH & Co. KG teils: KG, OHG selten: AG, SE, KGaA nie: e.K., eG, PartG |
| shareholders_deep.entries[].ownership.share_countinteger|null | Anzahl der Geschäftsanteile.Leer, wenn die Anzahl nicht für alle Anteile bekannt ist |
47250 |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.entries[].ownership.share_rangesarray | Die Anteile nach ihren laufenden Nummern in der Liste, ein Bereich je Folge gleicher Anteile. | – | wie oben |
| shareholders_deep.entries[].ownership.share_ranges[].frominteger|null | Erste laufende Nummer des Bereichs. |
1 |
wie oben |
| shareholders_deep.entries[].ownership.share_ranges[].tointeger|null | Letzte laufende Nummer des Bereichs. |
47250 |
wie oben |
| shareholders_deep.entries[].ownership.share_ranges[].countinteger|null | Anzahl der Anteile im Bereich. |
47250 |
wie oben |
| shareholders_deep.entries[].ownership.share_ranges[].nominal_valueobject|null | Nennbetrag je Anteil im Bereich, mit value und currency. | – | wie oben |
Verlauf und Änderungen. history enthält die früheren Dokumente mit denselben Feldern. Die Inhaber stehen dort so, wie sie damals im Dokument standen. changes vergleicht den aktuellen Stand mit dem vorigen.
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| shareholders_deep.historyarray |
Die früheren Dokumente, das neueste zuerst, je mit record, share_capital und entries. Ausgeschiedene eingetragene Gesellschafter stehen gesammelt im letzten Eintrag.shareholders_deep · ab Max |
– |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.history[].entries[].holder.membersarray | Bei JOINT: die gemeinsamen Inhaber vom Typ PERSON oder ORGANIZATION, mit denselben Feldern wie holder. | – | selten |
| shareholders_deep.history[].entries[].untilstring|null | Nur im Eintrag von history mit COMMERCIAL_REGISTER: wann der Gesellschafter ausgeschieden ist. | – |
teils: GmbH & Co. KG, KG, OHG, PartG selten: e.K. nie: GmbH, UG, AG, SE, KGaA, eG |
| shareholders_deep.changesobject|null | Was sich mit dem aktuellen Dokument gegenüber dem vorigen geändert hat.Leer, wenn es kein früheres Dokument gibt, und wenn der aktuelle Stand aus dem Register oder einem Gründungsdokument stammt | – |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| shareholders_deep.changes.compared_tostring|null | Datum des vorigen Dokuments. |
"2015-07-16" |
wie oben |
| shareholders_deep.changes.joinedarray | Neue Inhaber: holder mit entity_id, type und name, dazu percentage. | – | wie oben |
| shareholders_deep.changes.leftarray | Ausgeschiedene Inhaber mit dem Anteil, den sie zuletzt hatten. | – | wie oben |
| shareholders_deep.changes.changedarray | Inhaber, deren Anteil sich geändert hat. | – | wie oben |
| shareholders_deep.changes.changed[].percentage_beforenumber|null | Anteil in Prozent im vorigen Dokument. |
100 |
wie oben |
| shareholders_deep.changes.changed[].percentage_afternumber|null | Anteil in Prozent im aktuellen Dokument. |
5.5 |
wie oben |
1{2 "entity_id": "94eb910fef13f94585c48c263fa446d4",3 "name": "Hetzner Online GmbH",4 "shareholders_deep": {5 "record": {6 "date": "2015-08-18",7 "source": "SHAREHOLDER_LIST"8 },9 "share_capital": {10 "value": 50000,11 "currency": "EUR",12 "basis": "REPORTED"13 },14 "entries": [15 {16 "holder": {17 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",18 "type": "ORGANIZATION",19 "name": "ENSoXX GmbH",20 "legal_form": "GmbH",21 "status": "ACTIVE",22 "city": "Gunzenhausen",23 "country": "DEU",24 "registration": {25 "court": "Ansbach",26 "register_type": "HRB",27 "register_number": "6105"28 },29 "registration_text": null30 },31 "role": "SHAREHOLDER",32 "ownership": {33 "percentage": 94.5,34 "percentage_basis": "REPORTED",35 "nominal_amount": {36 "value": 47250,37 "currency": "EUR"38 },39 "share_count": 47250,40 "share_ranges": [41 {42 "from": 1,43 "to": 47250,44 "count": 47250,45 "nominal_value": {46 "value": 1,47 "currency": "EUR"48 }49 }50 ]51 },52 "since": "2015-08-18",53 "since_basis": "ENTRY_RECORDED"54 },55 {56 "holder": {57 "entity_id": "08ed5f967956831ca6588930fd2693ed",58 "type": "PERSON",59 "name": "Max Felix Mustermann",60 "birth_date": "1976-01-15",61 "city": "Musterheim",62 "country": "DEU"63 },64 "role": "SHAREHOLDER",65 "ownership": {66 "percentage": 5.5,67 "percentage_basis": "REPORTED",68 "nominal_amount": {69 "value": 2750,70 "currency": "EUR"71 },72 "share_count": 2750,73 "share_ranges": [74 {75 "from": 47251,76 "to": 50000,77 "count": 2750,78 "nominal_value": {79 "value": 1,80 "currency": "EUR"81 }82 }83 ]84 },85 "since": "2015-07-16",86 "since_basis": "EARLIEST_RECORD"87 }88 ],89 "history": [90 {91 "record": {92 "date": "2015-07-16",93 "source": "SHAREHOLDER_LIST"94 },95 "share_capital": {96 "value": 50000,97 "currency": "EUR",98 "basis": "REPORTED"99 },100 "entries": [101 {102 "holder": {103 "entity_id": "08ed5f967956831ca6588930fd2693ed",104 "type": "PERSON",105 "name": "Max Mustermann",106 "birth_date": "1976-01-15",107 "city": null,108 "country": null109 },110 "role": "SHAREHOLDER",111 "ownership": {112 "percentage": 100,113 "percentage_basis": "REPORTED",114 "nominal_amount": {115 "value": 50000,116 "currency": "EUR"117 },118 "share_count": 50000,119 "share_ranges": [120 {121 "from": 1,122 "to": 50000,123 "count": 50000,124 "nominal_value": {125 "value": 1,126 "currency": "EUR"127 }128 }129 ]130 },131 "since": "2015-07-16",132 "since_basis": "EARLIEST_RECORD"133 }134 ]135 }136 ],137 "changes": {138 "compared_to": "2015-07-16",139 "joined": [140 {141 "holder": {142 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",143 "type": "ORGANIZATION",144 "name": "ENSoXX GmbH"145 },146 "percentage": 94.5147 }148 ],149 "left": [],150 "changed": [151 {152 "holder": {153 "entity_id": "08ed5f967956831ca6588930fd2693ed",154 "type": "PERSON",155 "name": "Max Felix Mustermann"156 },157 "percentage_before": 100,158 "percentage_after": 5.5159 }160 ]161 }162 }163}
Gegenüber shareholders bringt shareholders_deep die Anteilsnummern, das Datum, seit dem jemand beteiligt ist, die Änderungen und gemeinsam gehaltene Anteile mit ihren Mitgliedern. Für Vergleiche über Firmen und Jahre nutzt du am besten durchgehend dasselbe Feature.
Wirtschaftlich Berechtigte
Wirtschaftlich Berechtigte sind die natürlichen Personen, denen eine Firma am Ende gehört. Das Feature ubos verfolgt dafür die Gesellschafterlisten über die Beteiligungsstufen bis zu den Personen. Die Liste nennt jede Person mit einem berechneten Anteil, ohne Mindestschwelle. Es kostet 10 Credits, wenn es Daten liefert.
Lässt sich ein Anteil nicht bis zu einer Person verfolgen, steht er mit dem Grund in unresolved_beneficial_owners. Oft hält ihn eine Firma im Ausland. Unsere Daten umfassen deutsche Firmen, die Gesellschafter einer Firma im Ausland kennen wir deshalb nicht. coverage zeigt, wie viel Prozent des Kapitals bis zu Personen verfolgt sind und wie viel offen bleibt. Beide Werte ergeben nicht immer zusammen 100. Für den Rest nennen die Gesellschafterdaten keinen Inhaber.
Berechnet wird das Feature, sobald es ein Ergebnis liefert. Das gilt auch, wenn alle Anteile in unresolved_beneficial_owners stehen.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: DEIN_API_SCHLUESSEL" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=ubos'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "DEIN_API_SCHLUESSEL"}, params={ "q": "Hetzner Online GmbH", "feature": ["ubos"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "ubos"); const response = await fetch(url, { headers: { "x-api-key": "DEIN_API_SCHLUESSEL" }, }); const data = await response.json();
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| ubosobject|null |
Die wirtschaftlich Berechtigten, berechnet aus den Gesellschafterlisten über die Beteiligungsstufen.Leer, wenn sich keine Kette aus Gesellschafterlisten bilden lässt, etwa bei AG, eG oder e.Kubos · Beta |
– |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| ubos.beneficial_ownersarray | Die Personen, denen die Firma direkt oder über andere Firmen gehört.Leer, wenn sich kein Anteil bis zu einer Person verfolgen lässt | – | wie oben |
| ubos.beneficial_owners[].personobject | Die Person mit den Feldern darunter. | – |
teils: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| ubos.beneficial_owners[].person.entity_idstring|null | ID der Person, für das Personenprofil.Leer, wenn die Person nicht sicher zugeordnet werden konnte | – | wie oben |
| ubos.beneficial_owners[].person.namestring | Vollständiger Name. | – | wie oben |
| ubos.beneficial_owners[].person.name_partsobject | Der Name in Teilen: given und family, wenn bekannt auch canonical_name. | – | wie oben |
| ubos.beneficial_owners[].person.birth_datestring|null | Geburtsdatum. | – | wie oben |
| ubos.beneficial_owners[].person.locationobject|null | Wohnort in home: city, county, state und country.Leer, wenn kein Wohnort bekannt ist | – | wie oben |
| ubos.beneficial_owners[].ownership_percentagenumber | Gesamter Anteil der Person in Prozent, über alle Wege zusammengerechnet. |
50 |
wie oben |
| ubos.beneficial_owners[].pathsarray | Jeder Weg zur Person, mit dem Anteil auf diesem Weg. | – | wie oben |
| ubos.beneficial_owners[].paths[].percentagenumber | Anteil in Prozent, der über diesen Weg ankommt. |
50 |
wie oben |
| ubos.beneficial_owners[].paths[].viaarray | Die Firmen auf diesem Weg, zuerst der direkte Gesellschafter der abgefragten Firma (depth 1). Die Felder sind dieselben wie bei via der offenen Anteile.Leer, wenn die Person direkt beteiligt ist | – | wie oben |
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| ubos.unresolved_beneficial_ownersarray |
Anteile, die sich nicht bis zu einer Person verfolgen ließen.Leer, wenn alle Anteile aufgelöst sindubos · Beta |
– |
meist: GmbH, UG selten: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nie: e.K., eG, PartG |
| ubos.unresolved_beneficial_owners[].reasonstring |
Warum die Kette hier endet. Neue Werte können hinzukommen.Werte: unlinked der Gesellschafter ist eine Firma, die wir keinem Eintrag im deutschen Register zuordnen können, meist eine Firma im Ausland. Ihre Gesellschafter kennen wir nicht, deshalb endet die Kette hier, no_further_shareholder_data der Gesellschafter ist eine deutsche Firma, die wir kennen, für die aber keine Gesellschafterliste vorliegt, etwa eine KG, cycle die Kette führt zu einer Firma zurück, die schon in ihr vorkommt, etwa wenn eine Firma eigene Anteile hält, unknown über den Gesellschafter ist nichts bekannt, weder Name noch Anteil |
"cycle" |
wie oben |
| ubos.unresolved_beneficial_owners[].namestring|null | Name des Gesellschafters, an dem die Kette endet.Leer, wenn der Grund unknown ist |
"ENSoXX Holding AG" |
wie oben |
| ubos.unresolved_beneficial_owners[].entity_idstring|null | Seine ID, für ein eigenes Firmenprofil.Leer, wenn der Gesellschafter keiner Firma in unseren Daten zugeordnet ist, also bei den Gründen unlinked und unknown |
"58d67a0bb99b2bc5644cb8daba58e6a6" |
wie oben |
| ubos.unresolved_beneficial_owners[].legal_formstring|null | Seine Rechtsform. |
"AG" |
wie oben |
| ubos.unresolved_beneficial_owners[].addressobject|array | Seine Anschrift mit street, house_number, postal_code, city, county, state, country und coordinates.Leer, wenn keine Anschrift bekannt ist; dann steht hier eine leere Liste [] | – | wie oben |
| ubos.unresolved_beneficial_owners[].registrationobject|array | Sein Registereintrag mit court, register_type und register_number, auch aus ausländischen Registern.Leer, wenn kein Eintrag bekannt ist; dann steht hier eine leere Liste [] | – | wie oben |
| ubos.unresolved_beneficial_owners[].ownership_percentagenumber | Der offene Anteil in Prozent, durchgerechnet auf die abgefragte Firma. Er kann 0 sein. |
0 |
wie oben |
| ubos.unresolved_beneficial_owners[].viaarray | Die Firmen, über die die Kette bis hierher läuft, zuerst der direkte Gesellschafter der abgefragten Firma.Leer, wenn der offene Anteil direkt an der abgefragten Firma besteht | – | wie oben |
| ubos.unresolved_beneficial_owners[].via[].depthinteger | Die Ebene: 1 ist ein direkter Gesellschafter der abgefragten Firma. Daneben stehen name und entity_id der Firma. |
1 |
wie oben |
| ubos.unresolved_beneficial_owners[].via[].step_percentagenumber | Anteil in Prozent auf dieser Ebene. |
94.5 |
wie oben |
| ubos.coverageobject | Wie viel des Kapitals bis zu Personen verfolgt ist und wie viel offen bleibt. Beide Werte ergeben nicht immer zusammen 100. | – | wie oben |
| ubos.coverage.resolved_percentagenumber | Bis zu Personen verfolgt, in Prozent. |
5.5 |
wie oben |
| ubos.coverage.unresolved_percentagenumber | Nicht bis zu Personen verfolgt, in Prozent. |
0 |
wie oben |
1{2 "entity_id": "94eb910fef13f94585c48c263fa446d4",3 "name": "Hetzner Online GmbH",4 "ubos": {5 "beneficial_owners": [6 {7 "person": {8 "entity_id": "08ed5f967956831ca6588930fd2693ed",9 "name": "Max Felix Mustermann",10 "birth_date": "1976-01-15",11 "name_parts": {12 "given": "Max Felix",13 "family": "Mustermann",14 "canonical_name": "Mustermann, Max Felix"15 },16 "location": {17 "home": {18 "city": "Musterheim",19 "county": "Musterheim (Landkreis)",20 "state": "Bayern",21 "country": "DEU"22 }23 }24 },25 "ownership_percentage": 5.5,26 "paths": [27 {28 "percentage": 5.5,29 "via": []30 }31 ]32 }33 ],34 "unresolved_beneficial_owners": [35 {36 "reason": "cycle",37 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",38 "name": "ENSoXX Holding AG",39 "legal_form": "AG",40 "address": {41 "house_number": "25",42 "street": "Industriestraße",43 "postal_code": "91710",44 "city": "Gunzenhausen",45 "county": "Weißenburg-Gunzenhausen",46 "state": "Bayern",47 "country": "DEU",48 "coordinates": {49 "latitude": 49.12483,50 "longitude": 10.7805251 }52 },53 "registration": {54 "court": "Ansbach",55 "register_type": "HRB",56 "register_number": "6211"57 },58 "ownership_percentage": 0,59 "via": [60 {61 "depth": 1,62 "name": "ENSoXX GmbH",63 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",64 "step_percentage": 94.565 },66 {67 "depth": 2,68 "name": "ENSoXX Holding AG",69 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",70 "step_percentage": 10071 }72 ]73 },74 {75 "reason": "unknown",76 "entity_id": null,77 "name": null,78 "legal_form": null,79 "address": [],80 "registration": [],81 "ownership_percentage": 0,82 "via": [83 {84 "depth": 1,85 "name": "ENSoXX GmbH",86 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",87 "step_percentage": 94.588 },89 {90 "depth": 2,91 "name": "ENSoXX Holding AG",92 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",93 "step_percentage": 10094 }95 ]96 },97 {98 "reason": "unknown",99 "entity_id": null,100 "name": null,101 "legal_form": null,102 "address": [],103 "registration": [],104 "ownership_percentage": 0,105 "via": [106 {107 "depth": 1,108 "name": "ENSoXX GmbH",109 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",110 "step_percentage": 94.5111 },112 {113 "depth": 2,114 "name": "ENSoXX Holding AG",115 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",116 "step_percentage": 100117 }118 ]119 }120 ],121 "coverage": {122 "resolved_percentage": 5.5,123 "unresolved_percentage": 0124 }125 }126}
Wir berechnen die Angaben aus den Gesellschafterlisten. Angaben zu wirtschaftlich Berechtigten aus dem Transparenzregister sind seit Ende 2022 nicht mehr öffentlich zugänglich.
Beteiligungen
Das Feature shareholdings zeigt die andere Richtung: an welchen Firmen die abgefragte Firma beteiligt ist. Die Beteiligungen stammen aus den Gesellschafterlisten dieser Firmen. Es kostet 5 Credits, wenn es Beteiligungen gibt.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: DEIN_API_SCHLUESSEL" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=shareholdings'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "DEIN_API_SCHLUESSEL"}, params={ "q": "Hetzner Online GmbH", "feature": ["shareholdings"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "shareholdings"); const response = await fetch(url, { headers: { "x-api-key": "DEIN_API_SCHLUESSEL" }, }); const data = await response.json();
| Feld | Bedeutung | Beispiel | Verfügbarkeit |
|---|---|---|---|
| shareholdingsobject|null |
Die Firmen, an denen die abgefragte Firma beteiligt ist.Leer, wenn keine Beteiligung bekannt istshareholdings · Beta |
– |
meist: AG, SE, KGaA teils: GmbH, UG selten: GmbH & Co. KG, KG, OHG, e.K., eG, PartG |
| shareholdings.holdings.currentarray | Die aktuellen Beteiligungen, eine je Firma. | – | wie oben |
| shareholdings.holdings.current[].organizationobject | Die Firma, an der die Beteiligung besteht. | – | wie oben |
| shareholdings.holdings.current[].organization.entity_idstring | ID der Firma, für ihr Firmenprofil. |
"63529c3a793e9f002196b4fd344e1241" |
wie oben |
| shareholdings.holdings.current[].organization.namestring|null | Name der Firma. |
"Hetzner Cloud GmbH" |
wie oben |
| shareholdings.holdings.current[].organization.legal_formstring|null | Rechtsform der Firma. |
"GmbH" |
wie oben |
| shareholdings.holdings.current[].organization.statusstring|null | Status der Firma im Register, etwa ACTIVE. |
"ACTIVE" |
wie oben |
| shareholdings.holdings.current[].organization.addressobject|array | Anschrift der Firma, aufgebaut wie address in den Basisdaten.Leer, wenn keine Anschrift bekannt ist; dann steht hier eine leere Liste [] | – | wie oben |
| shareholdings.holdings.current[].organization.registrationobject|array | Registereintrag der Firma mit court, register_type und register_number.Leer, wenn kein Eintrag bekannt ist; dann steht hier eine leere Liste [] | – | wie oben |
| shareholdings.holdings.current[].ownership.percentagenumber|null | Anteil in Prozent: 100 bedeutet 100 %.Leer, wenn die Liste keinen Anteil ergibt |
100 |
wie oben |
| shareholdings.holdings.current[].ownership.contributionobject | Nennbetrag der Anteile mit amount und currency. | – | wie oben |
| shareholdings.holdings.current[].as_ofstring | Datum der Gesellschafterliste, aus der die Beteiligung stammt. |
"2017-09-19" |
wie oben |
| shareholdings.summary.total_currentinteger | Anzahl der aktuellen Beteiligungen. |
2 |
wie oben |
1{2 "entity_id": "94eb910fef13f94585c48c263fa446d4",3 "name": "Hetzner Online GmbH",4 "shareholdings": {5 "holdings": {6 "current": [7 {8 "organization": {9 "entity_id": "63529c3a793e9f002196b4fd344e1241",10 "name": "Hetzner Cloud GmbH",11 "status": "ACTIVE",12 "legal_form": "GmbH",13 "address": {14 "house_number": "12A",15 "street": "Feringastraße",16 "postal_code": "85774",17 "city": "Unterföhring",18 "county": "München (Landkreis)",19 "state": "Bayern",20 "country": "DEU",21 "coordinates": {22 "latitude": 48.17815,23 "longitude": 11.6348724 }25 },26 "registration": {27 "court": "München",28 "register_type": "HRB",29 "register_number": "226782"30 }31 },32 "ownership": {33 "percentage": 100,34 "contribution": {35 "amount": 25000,36 "currency": "EUR"37 }38 },39 "as_of": "2017-09-19"40 },41 {42 "organization": {43 "entity_id": "997f1b8314b8b56573208ae2334abb1d",44 "name": "possum Projekt 1 GmbH",45 "status": "ACTIVE",46 "legal_form": "GmbH",47 "address": {48 "house_number": "169-173",49 "street": "Meisenburgstraße",50 "postal_code": "45133",51 "city": "Essen",52 "county": "Essen",53 "state": "Nordrhein-Westfalen",54 "country": "DEU",55 "coordinates": {56 "latitude": 51.40102,57 "longitude": 6.9580558 }59 },60 "registration": {61 "court": "Essen",62 "register_type": "HRB",63 "register_number": "35604"64 }65 },66 "ownership": {67 "percentage": 100,68 "contribution": {69 "amount": 25000,70 "currency": "EUR"71 }72 },73 "as_of": "2026-08-18"74 }75 ]76 },77 "summary": {78 "total_current": 279 }80 }81}
Die Beteiligungen einer Person liefert das Personenprofil mit demselben Feature.
Konzernbezüge
Konzernverbindungen setzt du aus mehreren Daten zusammen. shareholders und shareholdings zeigen die Beteiligungen eine Ebene nach oben und unten, ubos die Personen am Ende der Kette.
Das Firmen-Netzwerk verbindet Firmen und Personen über zwei Ebenen. Es enthält auch verbundene Unternehmen.
Verschmelzungen, Spaltungen und andere Umwandlungen stehen unter Fusionen & Übernahmen.