Germany Handelsregister Scraper
Pricing
from $5.20 / 1,000 results
Germany Handelsregister Scraper
Search the German Commercial Register (Handelsregister) by company name or register number. Extract company data, officers / managing directors (Geschäftsführer) with dates of birth, capital, legal form, seat, business purpose. No official API - structured JSON for KYC, KYB & due diligence.
Pricing
from $5.20 / 1,000 results
Rating
0.0
(0)
Developer
getregdata
Maintained by CommunityActor stats
2
Bookmarked
25
Total users
14
Monthly active users
3 days ago
Last modified
Categories
Share
Germany Handelsregister Scraper - Company Data, Officers & Capital
Extract official company data from the German Commercial Register (Handelsregister) - master data, registered office, registered capital, legal form, officers / managing directors (Geschäftsführer) with dates of birth, business purpose, and representation rules. Search by company name or register number and get clean, structured JSON in seconds, parsed from the register's official structured (XJustiz) content. There is no official public API for handelsregister.de - this actor is the API.
No login, no API key, nothing to configure - send a company name, get structured data back.
What data do you get?
One record per matching company:
{"companyName": "Connected Retail GmbH","legalForm": "Gesellschaft mit beschränkter Haftung","legalFormCode": "221110","registerCourt": "Amtsgericht Charlottenburg","registerType": "HRB","registerNumber": "HRB 215511 B","euid": "DEF1103R.HRB215511B","status": "aktuell","seat": "Berlin","address": { "street": "Valeska-Gert-Straße", "houseNumber": "5", "postalCode": "10243", "city": "Berlin", "formatted": "Valeska-Gert-Straße 5, 10243 Berlin" },"capital": { "amount": 30000, "currency": "EUR" },"officers": [{ "name": "Tim Seelmann", "firstName": "Tim", "lastName": "Seelmann", "dateOfBirth": "1990-03-24", "city": "Berlin", "roleCode": "086", "role": "Geschäftsführer" }],"representationRule": "Ist ein Geschäftsführer bestellt, so vertritt er die Gesellschaft allein. Sind mehrere ...","businessPurpose": "Die Erbringung von Vertriebsdienstleistungen für Einzelhändler ...","structuredData": true,"sourceUrl": "https://www.handelsregister.de","scrapedAt": "2026-06-09T19:04:27.810Z"}
| Field | Description |
|---|---|
companyName | Full legal company name |
legalForm / legalFormCode | Legal form (GmbH, AG, ...) and its raw XJustiz code |
status | Register status (e.g. aktuell) |
registerCourt / registerType / registerNumber | Registering court, HRB/HRA/GnR/PR/VR, and number |
euid | European Unique Identifier for cross-border matching |
seat / address | Registered seat and full structured address |
capital | Registered capital (amount + currency) |
officers | Representatives with name, firstName, lastName, dateOfBirth, city, role, raw roleCode |
representationRule | Rule of representation (Vertretungsregelung) |
businessPurpose | Object of the company (Gegenstand des Unternehmens) |
registrationHistory | Registration narrative entries (Eintragungstexte) |
structuredData | true when official XJustiz structured content was parsed |
sourceUrl / scrapedAt | Provenance |
Labels are mapped from the official XJustiz code lists for the common values; the raw code (legalFormCode, roleCode) is always included so nothing is lost.
How much does the Handelsregister data cost?
Pay per event - you are not charged for Apify platform usage, only a start fee plus a fixed price per company record.
| Event | Price |
|---|---|
| Actor start (per run) | $0.025 |
| Company record returned | $0.008 |
The start fee is charged once per run, so what you pay per company record depends on how you
search. One run takes one company name or register number and returns up to maxResults
matching records, which means a broad keyword search spreads a single start fee across many
records, while screening a known list pays one start fee per company.
| How you search | What a run costs | Per company record |
|---|---|---|
Keyword search, maxResults: 30 | $0.265 | $0.0088 |
Keyword search, maxResults: 10 (default) | $0.105 | $0.0105 |
| One named company or register number | $0.033 | $0.033 |
A search that returns nothing costs only the $0.025 start fee. No subscription, no minimum.
What the Apify free tier covers. The $5/month credit is worth roughly 560 records by
keyword search at maxResults: 30, 470 at the default of 10, or 150 single-company
lookups if you are screening a named list.
When you start paying. Occasional due-diligence users generally stay inside the credit. Screening a list crosses it fastest, at around 150 companies a month:
Weekly supplier check - 40 named suppliers/month (stays inside the free credit)40 runs x $0.025 = $1.0040 records x $0.008 = $0.32Total: $1.32/monthDaily onboarding queue - 600 named companies/month (crosses the threshold)600 runs x $0.025 = $15.00600 records x $0.008 = $4.80Total: $19.80/month
One company per run. The input takes a single
searchQueryorregisterNumber, so screening 30 named companies means 30 runs and 30 start fees. If you are discovering companies rather than checking known ones, one keyword search at a highermaxResultsreturns up to 30 records for a single start fee.
What you are paying for. Doing this by hand means working the register portal session by session, opening the structured register content for each company and transcribing the officers and their dates of birth - 3 to 5 minutes per company for someone who already knows the register. At 600 companies that is 30-50 hours a month. The actor runs it on a schedule, unattended, for about $20.
You are also paying for what the record actually contains. This reads the official XJustiz structured content, so every company comes back with officers and their dates of birth, share capital, legal form and representation rules - the fields a KYC or counterparty file needs. Cheaper German company data on the market is usually a business-directory or enrichment record that carries none of those.
Is it legal, and where does the data come from?
Data comes from the official Handelsregister portal at handelsregister.de, parsed from the register's structured XJustiz content. The commercial register is a public register open to everyone under § 9 HGB (Handelsgesetzbuch) - it reads only the freely available public data (no login, no account, no paid document purchase). Officer data (names, dates of birth) is published by the register by law; use it in compliance with the GDPR and applicable law.
How do I use it?
Click Try it and paste this input:
{ "searchQuery": "Zalando SE" }
For one specific company, pin the exact name and cap the results: { "searchQuery": "BioNTech", "exactMatch": true, "maxResults": 5 }. You can also add a registerNumber to narrow a search.
Input options
| Parameter | Type | Required | Description |
|---|---|---|---|
searchQuery | string | No* | Company name or keyword(s) (Schlagwörter) |
exactMatch | boolean | No | Match the exact company name instead of keyword containment. Default false |
registerNumber | string | No* | Register number to narrow the search, e.g. 215511 |
maxResults | integer | No | Max matching companies (1-30). Default 10 |
*Provide a searchQuery (alone or with a registerNumber). The portal does not allow searching by register number alone.
What you can do with it
- KYC / KYB & onboarding - verify a German counterparty's legal identity, register status, capital, and representatives in one call.
- Due diligence & compliance - capture officers (with dates of birth), the representation rule, and corporate history for a file.
- Sales & lead enrichment - resolve a company name to its official register data and decision-makers.
- Risk & credit - monitor legal form, capital, and status changes across a portfolio.
- Investigations - map directorships and structures across the largest EU economy.
Run it from code
# cURL - start a run and get the dataset backcurl -X POST "https://api.apify.com/v2/acts/regdata~germany-handelsregister-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{ "searchQuery": "Zalando SE" }'
// Node.js - apify-clientimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('regdata/germany-handelsregister-scraper').call({ searchQuery: 'Zalando SE' });const { items } = await client.dataset(run.defaultDatasetId).listItems();
# Python - apify-clientfrom apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("regdata/germany-handelsregister-scraper").call(run_input={"searchQuery": "Zalando SE"})items = client.dataset(run["defaultDatasetId"]).list_items().items
Integrations
Runs anywhere Apify does: call it from the REST API, schedule recurring checks, pipe results into n8n / Make / Zapier, or use it from any MCP client (Claude, Cursor) via mcp.apify.com.
FAQ
Is it legal to scrape the Handelsregister? Yes. The commercial register is a public register open to everyone under § 9 HGB. It reads only the free, public register data. Officer names and dates of birth are published by law; process that personal data in line with the GDPR.
Do I need a handelsregister.de account or API key? No. No login, no key, nothing to configure - and no paid document purchase. Just an Apify account.
Why do officers include dates of birth? Because the register publishes them, and DOB is the field that makes KYC name-matching reliable.
What is XJustiz? The official German legal-data XML standard. This actor parses the register's structured content (Strukturierter Registerinhalt), not scraped HTML, so structuredData: true means you got the official structured record.
A record came back with only core identity - why? The register's document service has its own rate limit; under heavy use, some records return core identity (name, register number, court, status) with a "retry later" status instead of the full document. Simply re-run those - structuredData is true when the full document was parsed.
What export formats are supported? JSON, CSV, Excel, or XML, or read live via the API.
Limitations
- Returns matches from the first results page (up to
maxResults). For one specific company, useexactMatchor add aregisterNumber. - The register's document service rate-limits under heavy use; some records may return core identity only with a "retry later" status - re-run those for full structured data.
- Data originates from the German federal-state register portal and is provided as-is.
Related actors
Part of a suite of official government registry actors - no public API to build or maintain, pay per result, nothing to configure.
| Country | Actors |
|---|---|
| Poland | BDO · CRBR · KRS (financials) · EKW · KNF · KRS (board) · KRZ · MSiG · KYB check · PEP (Sejm) · REGON (sites) · REGON · UOKiK |
| Germany | Insolvenzbekanntmachungen · Handelsregister (this actor) |
| Spain | BORME · Registro Mercantil · Registro Público Concursal |
| Italy | INI-PEC · Registro Imprese |
| Austria | Ediktsdatei · WKO |
| France | Societe.com |
| Belgium | KBO / BCE |
| Czechia | ISIR |
| Slovakia | RPVS |
| Cyprus | DRCOR |
| Ireland | CRO |
| Portugal | Publicações MJ |
| Nigeria | CAC |
| Colombia | RUES |
| USA | California SoS · California UCC |
| UAE | ADGM |
| Global | Adverse media |
Common combinations: company register -> UBO -> insolvency/debtors -> adverse media is the standard KYB/onboarding chain.
For Poland that whole chain is one call: Poland KYB Risk Check takes a NIP or KRS and returns identity, beneficial owners and insolvency - screened against the company and every beneficial owner - as a single verdict. The component registry lookups it runs bill as usual, plus a small orchestration fee.
Full suite: apify.com/regdata · Callable from any MCP client via mcp.apify.com
Auf Deutsch
Was macht dieser Actor?
Dieser Actor extrahiert offizielle Unternehmensdaten aus dem deutschen Handelsregister (handelsregister.de): Firma, Rechtsform, Registergericht, Registernummer (HRB/HRA), Sitz und Anschrift, Stammkapital, Geschäftsführer und Vorstände samt Geburtsdatum, Vertretungsregelung, Gegenstand des Unternehmens und Eintragungshistorie. Die Daten stammen aus dem Strukturierten Registerinhalt (XJustiz-XML) und werden in sauberes JSON umgewandelt. Es gibt keine offizielle API - dieser Actor ersetzt sie.
Für wen?
Für Compliance- und KYC/KYB-Teams, die deutsche Geschäftspartner verifizieren, Due-Diligence- und Kanzlei-Workflows, Vertrieb und Lead-Anreicherung sowie Risiko- und Kreditanalyse. Kein Setup nötig, keine Abos - Sie zahlen nur pro Ergebnis. Personenbezogene Daten der Geschäftsführer sind gesetzlich veröffentlicht; verarbeiten Sie sie DSGVO-konform.
Handelsregister Auszug als API - Firmendaten, Geschäftsführer & Kapital
Automatischer Abruf von Handelsregister-Daten über handelsregister.de: Firmenname, Rechtsform (GmbH, AG, UG), Registergericht, HRB-/HRA-Nummer, Sitz, Stammkapital, Geschäftsführer mit Geburtsdatum, Vertretungsregelung und Unternehmensgegenstand - alles als strukturiertes JSON, ohne eigenes Setup. Ideal für KYC/KYB, Compliance, Due Diligence und Lead-Anreicherung in Deutschland.