Dokumente
Welche Dokumente es gibt und in welchem Format.
Mit fetch-document lädst du amtliche Dokumente aus dem Register als Datei herunter. Dazu gibst du die entity_id der Firma in company_id an und wählst einen document_type. Jedes gelieferte Dokument kostet 15 Credits.
Dokumenttypen
Es gibt fünf Dokumenttypen. Schreib die Werte für document_type genau wie in der Tabelle, auch in Groß- und Kleinschreibung. Die Beispielanfrage ruft den Aktuellen Abdruck der Hetzner Online GmbH ab, Ansbach HRB 6089.
| document_type | Dokument | Format |
|---|---|---|
| AD | Aktueller AbdruckAlle Eintragungen, die heute gelten. Der klassische Registerauszug. | |
| CD | Chronologischer AbdruckAlle Eintragungen in zeitlicher Reihenfolge, auch die gelöschten, seit das Register elektronisch geführt wird. | |
| SI | Strukturierter RegisterinhaltDer Registerinhalt als XML im Standard XJustiz, gut für die maschinelle Verarbeitung. | XML |
| shareholders_list | GesellschafterlisteDie Liste der Gesellschafter mit ihren Geschäftsanteilen, wie die GmbH sie beim Register einreicht. | |
| articles_of_association | Gesellschaftsvertrag bzw. SatzungDer Vertrag, der die Firma regelt. Bei der GmbH heißt er Gesellschaftsvertrag, bei AG und eG Satzung. |
curl -G "https://handelsregister.ai/api/v1/fetch-document" \ -H "x-api-key: DEIN_API_SCHLUESSEL" \ --data-urlencode 'company_id=94eb910fef13f94585c48c263fa446d4' \ --data-urlencode 'document_type=AD'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-document", headers={"x-api-key": "DEIN_API_SCHLUESSEL"}, params={ "company_id": "94eb910fef13f94585c48c263fa446d4", "document_type": "AD", }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-document"); url.searchParams.append("company_id", "94eb910fef13f94585c48c263fa446d4"); url.searchParams.append("document_type", "AD"); const response = await fetch(url, { headers: { "x-api-key": "DEIN_API_SCHLUESSEL" }, }); const data = await response.json();
Dokumente je Rechtsform
Aktueller Abdruck, Chronologischer Abdruck und Strukturierter Registerinhalt gibt es für jede eingetragene Firma. Welche eingereichten Dokumente es darüber hinaus gibt, hängt von der Rechtsform ab.
| Rechtsform | AD, CD, SI | Gesellschafterliste | Gesellschaftsvertrag bzw. Satzung |
|---|---|---|---|
| GmbH, UG | ja | ja, Pflicht | ja, der Gesellschaftsvertrag |
| AG, SE, KGaA | ja | nein | ja, die Satzung |
| eG | ja | nein | ja, die Satzung |
| KG, GmbH & Co. KG, OHG | ja | nein | in der Regel nicht |
| PartG, PartG mbB | ja | nein | in der Regel nicht |
| e.K. | ja | nein | in der Regel nicht |
Eine Gesellschafterliste gibt es nur für GmbH und UG. Für andere Rechtsformen und fehlende Dokumente antwortet die API mit 404 und berechnet nichts.
Formate
Die Antwort ist die Datei selbst, kein JSON. Den Typ erkennst du am Header Content-Type, den Dateinamen am Header Content-Disposition.
Der Dateiname enthält die entity_id, den Dokumenttyp und das Abrufdatum, etwa document_94eb910fef13f94585c48c263fa446d4_AD_2026-11-01.pdf.
Gesellschafterlisten und Verträge sind oft eingescannte Seiten, manche ohne Textebene. Für den Text brauchst du dann eine Texterkennung.
Manche Dokumente liefert das Register nur als TIFF-Bild. Dann antwortet die API mit 415 und berechnet nichts.
In unserem Beispiel der Hetzner Online GmbH waren die Dateien so groß: Aktueller Abdruck etwa 35 KB, Strukturierter Registerinhalt etwa 14 KB, Gesellschaftsvertrag etwa 450 KB.
async=true im Hintergrund ab. Antwortet das Register nicht rechtzeitig, bekommst du 504 mit Retry-After. Berechnet wird dann nichts.