Handelsregister Scraper avatar
Handelsregister Scraper

Pricing

from $30.00 / 1,000 results

Go to Apify Store
Handelsregister Scraper

Handelsregister Scraper

Leistungsstarker Actor zur Identifikation von Firmen und Entscheidungsträgern aus dem deutschen Handelsregister. Zugriff auf Geschäftsführer, Vorstände und vertretungsberechtigte Personen per Echtzeit-API — ideal für Lead-Enrichment, Marktanalysen, KYC und Due-Diligence.

Pricing

from $30.00 / 1,000 results

Rating

0.0

(0)

Developer

Dominic M. Quaiser

Dominic M. Quaiser

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Share

Ein leistungsstarker Apify Actor zur Extraktion von Unternehmensdaten aus dem deutschen Handelsregister. Dieser Actor läuft im Standby-Modus und bietet Echtzeit-Zugriff auf Handelsregisterdaten über eine HTTP-Schnittstelle mit Antwortzeiten unter einer Sekunde.

English version ↓

Funktionen

  • Echtzeit-API: HTTP-Server im Standby-Modus mit Antwortzeiten unter einer Sekunde
  • Flexible Suchoptionen: Suche nach Firmennamen oder Registernummern mit Suchoptionen, um das bestmögliche Ergebnis zu erzielen.
  • Phonetische Suche: Optional ähnlich klingende Begriffe einbeziehen (z.B. "Meyer" findet auch "Meier")
  • Automatische Datenspeicherung: Alle Ergebnisse werden automatisch im Apify-Dataset gespeichert
  • Raw XML Zugriff: Optional können die originalen XJustiz-XML-Dateien im Key-Value Store gespeichert werden
  • Umfassende Daten: Vollständige Unternehmensinformationen inklusive Entscheidungsträger wie Geschäftsführer, Prokuristen, Gesellschafter, Kommanditisten mit Hafteinlagen, Adresse und mehr
  • Skalierbar: Automatische Skalierung für gleichzeitige Anfragen

Verwendung

Dieser Actor kann im Standby-Modus verwendet werden, was bedeutet, dass er wie eine Standard-API funktioniert. Sie müssen den Actor nicht manuell starten. Senden Sie einfach HTTP-Anfragen an den Endpunkt des Actors und erhalten Sie sofortige Ergebnisse. Nach einer ersten Startphase, steht der Endpoint für directe Anfragen zur verfügung und bleibt aktiv für die dauer, die sie eingestellt haben.

Endpunkt

Senden Sie eine POST-Anfrage an die Standby-URL Ihres Actors im folgenden Format:

https://dominic-quaiser--handelsregister-scraper.apify.actor?token=IHR_API_TOKEN

Anfrageformat

Sie benötigen ein Apify-Konto und einen API-Token, um diesen Actor zu verwenden. Ihren Token finden Sie unter Settings → API & Integrations in der Apify Console.

Empfohlene Methode - Token im Authorization-Header übergeben:

curl -X POST https://dominic-quaiser--handelsregister-scraper.apify.actor \
-H "Authorization: Bearer IHR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"firma_schlagwoerter": "SAP Deutschland SE & Co. KG",
"schlagwoerter_suchoptionen": "alle Schlagwörter enthalten.",
"aehnlich_lautende_schlagwoerter": false
}'

Alternative Methode - Token als Query-Parameter:

curl -X POST https://dominic-quaiser--handelsregister-scraper.apify.actor?token=IHR_API_TOKEN \
-H "Content-Type: application/json" \
-d '{
"registernummer": "350654",
"registerart": "HRA",
"registergericht": "Mannheim"
}'

Anfrageparameter

Suche nach Firmennamen/Schlagwörtern

Wenn Sie nach Firmennamen oder Schlagwörtern suchen, sind folgende Parameter verfügbar:

ParameterTypErforderlichBeschreibungGültige Werte
firma_schlagwoerterStringJaFirmenname oder Schlagwörter (mehrere Begriffe durch Leerzeichen trennen)Beliebiger Text
schlagwoerter_suchoptionenStringJa (wenn firma_schlagwoerter angegeben)Wie die Schlagwörter verwendet werden sollen"alle Schlagwörter enthalten.", "mindestens ein Schlagwort enthalten.", "den genauen Firmennamen enthalten."
aehnlich_lautende_schlagwoerterBooleanNeinPhonetisch ähnliche Begriffe einbeziehentrue, false
niederlassung_sitzStringNeinOrt oder Stadt der Niederlassung/des FirmensitzesBeliebiger Ortsname
zusaetzliche_suchoptionenStringNeinErweiterte Suchoptionen"Auch geschlossene Registerblätter oder gelöschte Zweigniederlassungen finden.", "Nur nach Zweigniederlassungen neuen Rechts suchen."

Suche nach Registernummer

Wenn Sie nach einer Registernummer suchen, sind folgende Parameter erforderlich:

ParameterTypBeschreibungGültige Werte
registernummerStringDie eindeutige Registernummer (max. 10 Zeichen)Beliebige Nummer
registerartStringArt des Registers"alle", "HRA", "HRB", "GnR", "PR", "VR", "GsR"
registergerichtStringStadt oder Ort des Registergerichts oder "alle"Beliebiger Gerichtsstandort (z.B. "München", "Berlin")

Optionale Parameter

ParameterTypBeschreibungStandardwert
xml_im_key_value_store_speichernBooleanSpeichert die originale XML-Datei (Strukturierter Registerinhalt) im Key-Value Storefalse

Registerarten

Wählen Sie die passende Registerart basierend auf dem gesuchten Unternehmenstyp:

  • alle: Alle Registerarten durchsuchen
  • HRA (Handelsregister Abteilung A): Einzelkaufleute, OHG, KG
  • HRB (Handelsregister Abteilung B): GmbH, AG, KGaA
  • GnR (Genossenschaftsregister): Genossenschaften
  • PR (Partnerschaftsregister): Partnerschaftsgesellschaften
  • VR (Vereinsregister): Vereine
  • GsR (Gesellschaftsregister): Europäische Gesellschaften

Suchoptionen für Schlagwörter

  • "alle Schlagwörter enthalten.": Findet nur Einträge, die alle eingegebenen Begriffe enthalten
  • "mindestens ein Schlagwort enthalten.": Findet Einträge, die mindestens einen der Begriffe enthalten
  • "den genauen Firmennamen enthalten.": Sucht nach exakten Übereinstimmungen des Firmennamens

Phonetische Suche

Wenn aehnlich_lautende_schlagwoerter auf true gesetzt ist, werden auch phonetisch ähnliche Begriffe gefunden:

  • "Meyer" findet auch "Meier", "Mayer", "Maier"
  • "Schmidt" findet auch "Schmitt", "Schmid"
  • Besonders nützlich bei unsicherer Schreibweise

Antwortformat

Erfolgreiche Antwort (200 OK)

{
"bezeichnung": "Beispieltechnik AG",
"rechtsform": {
"lang": "Aktiengesellschaft",
"kurz": "AG"
},
"register_eintrag": {
"gericht": "Amtsgericht München",
"register": "HRB",
"laufende_nummer": "987654"
},
"sitz": "München",
"anschrift": {
"strasse": "Innovationsallee",
"hausnummer": "42",
"postleitzahl": "80999",
"ort": "München",
"staat": "Deutschland"
},
"gegenstand": "Entwicklung, Herstellung und Vertrieb von Softwarelösungen für industrielle Automatisierungssysteme",
"stammkapital": {
"zahl": 500000.0,
"waehrung": "EUR"
},
"daten": {
"erste_eintragung": "2018-06-12",
"satzungsdatum": "2018-05-15",
"letzte_aenderung": "2024-10-10",
"letzte_eintragung": "2024-10-12",
"abrufdatum": "2025-12-21"
},
"geschaeftsfuehrer": [
{
"rolle": "Vorstandsvorsitzender",
"vorname": "Johannes",
"nachname": "Keller",
"ort": "München"
},
{
"rolle": "Vorständin",
"vorname": "Eva",
"nachname": "Schneider",
"ort": "Augsburg"
}
],
"prokuristen": [
{
"rolle": "Prokurist",
"vorname": "Lukas",
"nachname": "Bernhardt",
"ort": "Freising"
}
],
"komplementaere": [
{
"rolle": "Persönlich haftender Gesellschafter",
"typ": "juristische Person",
"bezeichnung": "Management GmbH",
"sitz": "München",
"register_eintrag": {
"gericht": "Amtsgericht München",
"registernummer": "HRB 123456"
}
}
],
"kommanditisten": [
{
"rolle": "Kommanditist",
"typ": "natürliche Person",
"vorname": "Anna",
"nachname": "Weber",
"ort": "München",
"hafteinlage": {
"zahl": 50000.0,
"waehrung": "EUR"
}
}
]
}

Antwortfelder

FeldTypBeschreibung
bezeichnungStringFirmenname
rechtsformObjectRechtsform mit Langform (lang) und Kurzform (kurz)
register_eintragObjectRegistereintrag mit Gericht, Registerart und laufender Nummer
sitzStringSitz der Gesellschaft
anschriftObjectVollständige Adresse (Straße, Hausnummer, PLZ, Ort, Staat)
gegenstandStringUnternehmensgegenstand
stammkapitalObjectStammkapital mit Betrag (zahl) und Währung (waehrung)
datenObjectWichtige Daten (Eintragungen, Änderungen, Abrufdatum)
geschaeftsfuehrerArrayListe der Geschäftsführer mit Namen und optionalen Details
prokuristenArrayListe der Prokuristen mit Namen und optionalen Details
komplementaereArrayListe der persönlich haftenden Gesellschafter (nur KG/KGaA)
kommanditistenArrayListe der Kommanditisten mit Hafteinlage (nur KG/KGaA)

Hinweise:

  • Leere Felder werden nicht ausgegeben: Felder mit null-Werten oder leeren Arrays ([]) werden automatisch aus der Antwort entfernt, um die Datengröße zu optimieren
  • stammkapital wird nur für Kapitalgesellschaften ausgegeben
  • komplementaere und kommanditisten werden nur bei Personengesellschaften (KG, KGaA) ausgegeben
  • Partner können natürliche Personen oder juristische Personen sein
  • Bei juristischen Personen als Partner wird deren Registereintrag mit angegeben (register_eintrag)
  • Kommanditisten haben zusätzlich eine hafteinlage (Haftungsbetrag)
  • Optionale Felder (Geburtsdatum, Beruf) werden nur angezeigt, wenn vorhanden

Fehlerantworten

400 Bad Request - Ungültige Anfrage

{
"error": {
"status_code": 400,
"message": "Field 'schlagwoerter_suchoptionen' is required when 'firma_schlagwoerter' is provided."
}
}

404 Not Found - Keine Ergebnisse

{
"error": {
"status_code": 404,
"message": "No results found for search criteria"
}
}

500 Internal Server Error - Serverfehler

{
"error": {
"status_code": 500,
"message": "Scraping failed: Failed to download XML: Connection timeout"
}
}

Fehlerbehandlung

Der Actor gibt entsprechende HTTP-Statuscodes zurück:

  • 200: Erfolg - Unternehmensdaten erfolgreich abgerufen
  • 400: Ungültige Anfrage - Eingabeparameter überprüfen (siehe Fehlermeldung)
  • 401: Nicht autorisiert - Ungültiger oder fehlender API-Token
  • 402: Zahlung erforderlich - Dataset-Limit erreicht, Plan upgraden
  • 404: Nicht gefunden - Keine Ergebnisse für die Suchkriterien
  • 500: Interner Serverfehler - Unerwarteter Fehler (bei Wiederholung Support kontaktieren)

Raw XML Zugriff

Wenn Sie die originale XML-Datei (Strukturierter Registerinhalt) benötigen, können Sie diese im Apify Key-Value Store speichern lassen:

Parameter aktivieren

Setzen Sie xml_im_key_value_store_speichern auf true:

curl -X POST https://dominic-quaiser--handelsregister-scraper.apify.actor?token=IHR_API_TOKEN \
-H "Content-Type: application/json" \
-d '{
"registernummer": "350654",
"registerart": "HRA",
"registergericht": "Mannheim",
"xml_im_key_value_store_speichern": true
}'

Zugriff auf gespeicherte XML-Dateien

Die XML-Dateien werden mit einem eindeutigen Schlüssel gespeichert: xml_{Gericht}_{Registerart}_{Registernummer}.xml

Über die Apify Console:

  1. Navigieren Sie zu Ihrem Actor-Run
  2. Klicken Sie auf den Tab "Storage"
  3. Wählen Sie "Key-value stores"
  4. Öffnen Sie den Standard-Key-Value Store
  5. Die XML-Datei erscheint in der Liste (z.B. xml_Mannheim_HRA_350654.xml)

Über die API:

# Beispiel: Abrufen der XML-Datei für HRA 350654 beim Amtsgericht Mannheim
curl "https://api.apify.com/v2/key-value-stores/{storeId}/records/xml_Mannheim_HRA_350654.xml?token=IHR_API_TOKEN"

Die storeId finden Sie in der Antwort des Actor-Runs oder in der Apify Console.

Hinweise:

  • Die XML-Datei wird im XJustiz-Format gespeichert (deutscher Standard für elektronischen Rechtsverkehr)
  • Bei Speicherfehlern wird eine Warnung protokolliert, die Anfrage schlägt aber nicht fehl
  • Die Datei bleibt für die Dauer der Storage-Aufbewahrungszeit Ihres Plans erhalten

Code-Beispiele

Python

import requests
url = "https://dominic-quaiser--handelsregister-scraper.apify.actor?token=IHR_API_TOKEN"
payload = {
"firma_schlagwoerter": "SAP Deutschland SE & Co. KG",
"schlagwoerter_suchoptionen": "alle Schlagwörter enthalten.",
"registerart": "alle",
"xml_im_key_value_store_speichern": True # Optional: XML speichern
}
response = requests.post(url, json=payload)
result = response.json()
print(f"Firma: {result['bezeichnung']}")
print(f"Rechtsform: {result['rechtsform']['kurz']}")
print(f"Sitz: {result['sitz']}")

JavaScript/Node.js

const response = await fetch(
'https://dominic-quaiser--handelsregister-scraper.apify.actor?token=IHR_API_TOKEN',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
firma_schlagwoerter: 'SAP Deutschland SE & Co. KG',
schlagwoerter_suchoptionen: 'alle Schlagwörter enthalten.',
registerart: 'alle'
})
}
);
const data = await response.json();
console.log(`Firma: ${data.bezeichnung}`);
console.log(`Rechtsform: ${data.rechtsform.kurz}`);

Anwendungsfälle

  • Lead-Generierung: Automatische Erfassung von Unternehmensdaten und Kontaktpersonen
  • Due Diligence: Überprüfung von Unternehmensinformationen vor Geschäftsabschlüssen
  • Compliance & KYC: Validierung von Unternehmensdaten für regulatorische Anforderungen
  • Marktforschung: Analyse von Unternehmensstrukturen und Geschäftsführern
  • Datenbank-Anreicherung: Ergänzung bestehender CRM- oder ERP-Systeme mit offiziellen Registerdaten
  • Monitoring: Überwachung von Änderungen bei bestimmten Unternehmen
  • Automatisierung: Integration in bestehende Workflows und Datenpipelines
  • Vertragsmanagement: Validierung von Vertragspartnern und Unterschriftsberechtigten

Integrationen

  • Scheduler: Automatisieren Sie regelmäßige Abfragen
  • Webhooks: Lösen Sie nachgelagerte Workflows bei Abschluss aus
  • API: Programmgesteuerte Steuerung über die Apify API
  • Composer: Verketten Sie den Actor mit anderen Actors (z.B. Datenbereinigung, Anreicherung)
  • Zapier/Make: Einfache Integration in No-Code-Workflows

Technische Details

Standby-Modus

Dieser Actor läuft im Standby-Modus, was bedeutet:

  • Der Actor bleibt aktiv und wartet auf HTTP-Anfragen
  • Antwortzeiten unter einer Sekunde (keine Kaltstart-Verzögerung)
  • Automatische Skalierung bei hoher Last
  • Ideal für Echtzeit-Integrationen und APIs

Datenquelle

Die Daten werden direkt vom offiziellen deutschen Handelsregisterportal (www.handelsregister.de) abgerufen.

Automatische Fehlerkorrektur

Der Actor verfügt über eine intelligente Validierung von Gerichtsnamen:

  • Automatische Korrektur von Rechtschreibfehlern
  • Fuzzy-Matching bei unklaren Eingaben
  • Hilfreiche Vorschläge bei ungültigen Gerichtsnamen

Wartung

Handelsregister Scraper (English)

A powerful Apify Actor for extracting company data from the German Commercial Register (Handelsregister).
This Actor runs in standby mode and provides real-time access to Handelsregister data via an HTTP interface with response times under one second.

Features

  • Real-time API: HTTP server in standby mode with sub-second response times
  • Flexible search options: Search by company name or register number with configurable search strategies
  • Phonetic search: Optionally include similarly sounding terms (e.g. “Meyer” also finds “Meier”)
  • Automatic data storage: All results are automatically stored in the Apify dataset
  • Raw XML access: Optionally store the original XJustiz XML files in the Key-Value Store
  • Comprehensive data: Full company information including managing directors, authorized officers, partners, limited partners with liability contributions, address, and more
  • Scalable: Automatically scales to handle concurrent requests

Usage

This Actor can be used in standby mode, meaning it behaves like a standard API.
You do not need to start the Actor manually. Simply send HTTP requests to the Actor’s endpoint and receive immediate results.
After an initial warm-up phase, the endpoint is ready for direct requests and remains active for the duration you have configured.

Endpoint

Send a POST request to your Actor’s standby URL in the following format:

https://dominic-quaiser--handelsregister-scraper.apify.actor?token=YOUR_API_TOKEN

Request Format

You need an Apify account and an API token to use this Actor.
You can find your token under Settings → API & Integrations in the Apify Console.

curl -X POST https://dominic-quaiser--handelsregister-scraper.apify.actor \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"firma_schlagwoerter": "SAP Deutschland SE & Co. KG",
"schlagwoerter_suchoptionen": "alle Schlagwörter enthalten.",
"aehnlich_lautende_schlagwoerter": false
}'

Alternative method – token as query parameter

curl -X POST https://dominic-quaiser--handelsregister-scraper.apify.actor?token=YOUR_API_TOKEN \
-H "Content-Type: application/json" \
-d '{
"registernummer": "350654",
"registerart": "HRA",
"registergericht": "Mannheim"
}'

Request Parameters

Search by company name / keywords

When searching by company name or keywords, the following parameters are available:

ParameterTypeRequiredDescriptionValid values
firma_schlagwoerterStringYesCompany name or keywords (separate multiple terms by spaces)Any text
schlagwoerter_suchoptionenStringYes (if firma_schlagwoerter is provided)How keywords should be matched"alle Schlagwörter enthalten.", "mindestens ein Schlagwort enthalten.", "den genauen Firmennamen enthalten."
aehnlich_lautende_schlagwoerterBooleanNoInclude phonetically similar termstrue, false
niederlassung_sitzStringNoLocation or city of the branch / registered officeAny location name
zusaetzliche_suchoptionenStringNoAdvanced search options"Auch geschlossene Registerblätter oder gelöschte Zweigniederlassungen finden.", "Nur nach Zweigniederlassungen neuen Rechts suchen."

Search by register number

When searching by register number, the following parameters are required:

ParameterTypeDescriptionValid values
registernummerStringUnique register number (max. 10 characters)Any number
registerartStringRegister type"alle", "HRA", "HRB", "GnR", "PR", "VR", "GsR"
registergerichtStringCity or location of the register court, or "alle"Any court location (e.g. “Munich”, “Berlin”)

Optional parameters

ParameterTypeDescriptionDefault
xml_im_key_value_store_speichernBooleanStores the original XML file (structured register content) in the Key-Value Storefalse

Register Types

Select the appropriate register type based on the company type you are looking for:

  • alle: Search all register types
  • HRA (Commercial Register A): Sole traders, OHG, KG
  • HRB (Commercial Register B): GmbH, AG, KGaA
  • GnR (Cooperative Register): Cooperatives
  • PR (Partnership Register): Professional partnerships
  • VR (Association Register): Associations
  • GsR (Company Register): European companies

Keyword Search Options

  • “alle Schlagwörter enthalten.”: Only results containing all provided keywords
  • “mindestens ein Schlagwort enthalten.”: Results containing at least one keyword
  • “den genauen Firmennamen enthalten.”: Exact company name matches only

When aehnlich_lautende_schlagwoerter is set to true, phonetically similar names are also matched:

  • “Meyer” also finds “Meier”, “Mayer”, “Maier”
  • “Schmidt” also finds “Schmitt”, “Schmid”
  • Especially useful when spelling is uncertain

Response Format

Successful response (200 OK)

(Response example identical to the German version; field names remain unchanged for API consistency.)

Notes

  • Empty fields are omitted: Fields with null values or empty arrays are removed automatically to reduce payload size
  • stammkapital is only returned for capital companies
  • komplementaere and kommanditisten are only returned for partnerships (KG, KGaA)
  • Partners can be natural persons or legal entities
  • Legal entities include their own register entry
  • Limited partners include a hafteinlage (liability contribution)
  • Optional fields (e.g. date of birth, profession) are only included if available

Error Handling

The Actor returns standard HTTP status codes:

  • 200: Success – company data retrieved successfully
  • 400: Bad request – check input parameters
  • 401: Unauthorized – invalid or missing API token
  • 402: Payment required – dataset limit reached, upgrade plan
  • 404: Not found – no results for search criteria
  • 500: Internal server error – unexpected error (contact support if persistent)

Raw XML Access

If you need the original XML file (structured register content), you can store it in the Apify Key-Value Store.

Enable via parameter

Set xml_im_key_value_store_speichern to true.

Accessing stored XML files

Files are stored with a unique key:

xml_{Court}_{RegisterType}_{RegisterNumber}.xml

They can be accessed via the Apify Console or API.
The XML is stored in XJustiz format, the German standard for electronic legal communication.

Code Examples

Python

import requests
url = "https://dominic-quaiser--handelsregister-scraper.apify.actor?token=YOUR_API_TOKEN"
payload = {
"firma_schlagwoerter": "SAP Deutschland SE & Co. KG",
"schlagwoerter_suchoptionen": "alle Schlagwörter enthalten.",
"registerart": "alle",
"xml_im_key_value_store_speichern": True
}
response = requests.post(url, json=payload)
result = response.json()
print(f"Company: {result['bezeichnung']}")
print(f"Legal form: {result['rechtsform']['kurz']}")
print(f"Registered office: {result['sitz']}")

JavaScript / Node.js

const response = await fetch(
'https://dominic-quaiser--handelsregister-scraper.apify.actor?token=YOUR_API_TOKEN',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
firma_schlagwoerter: 'SAP Deutschland SE & Co. KG',
schlagwoerter_suchoptionen: 'alle Schlagwörter enthalten.',
registerart: 'alle'
})
}
);
const data = await response.json();
console.log(`Company: ${data.bezeichnung}`);
console.log(`Legal form: ${data.rechtsform.kurz}`);

Use Cases

  • Lead generation
  • Due diligence
  • Compliance & KYC
  • Market research
  • Database enrichment (CRM / ERP)
  • Change monitoring
  • Workflow automation
  • Contract and signatory validation

Integrations

  • Scheduler
  • Webhooks
  • Apify API
  • Composer
  • Zapier / Make

Technical Details

Standby Mode

  • Always-on HTTP endpoint
  • Sub-second response times
  • Automatic scaling under load
  • Ideal for real-time APIs and integrations

Data Source

Data is retrieved directly from the official German Commercial Register portal (www.handelsregister.de).

Automatic Error Correction

  • Automatic correction of court name typos
  • Fuzzy matching for unclear inputs
  • Helpful suggestions for invalid court names

Maintenance