getregdata
RegistryGermany

Germany Handelsregister API - Company Data

Company data and officers from the German commercial register. You get clean, structured records with the source registry attached - keyed off the HRB identifier.

Run Handelsregister on Apify Install the skills
What you get
  • →Structured JSON, not HTML or PDFs
  • →Source registry attached to every record
  • →Read live at query time - current filings
  • →Queried by HRB or company name
python · regdata/germany-handelsregister-scraper
from apify_client import ApifyClient

client = ApifyClient("apify_api_xxxxx")
run = client.actor("regdata/germany-handelsregister-scraper").call(
    run_input={"query": "Zalando SE"}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
Fields

What each Handelsregister record contains

FieldWhat it holds
companyNameFull legal company name
legalForm / legalFormCodeLegal form (GmbH, AG, ...) and its raw XJustiz code
statusRegister status (e.g. aktuell)
registerCourt / registerType / registerNumberRegistering court, HRB/HRA/GnR/PR/VR, and number
euidEuropean Unique Identifier for cross-border matching
seat / addressRegistered seat and full structured address
capitalRegistered capital (amount + currency)
officersRepresentatives with name, firstName, lastName, dateOfBirth, city, role, raw roleCode
representationRuleRule of representation (Vertretungsregelung)
businessPurposeObject of the company (Gegenstand des Unternehmens)
registrationHistoryRegistration narrative entries (Eintragungstexte)
structuredDatatrue when official XJustiz structured content was parsed
sourceUrl / scrapedAtProvenance
Sample record (JSON, people masked)
{
  "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": "…",
      "firstName": "…",
      "lastName": "…",
      "dateOfBirth": "…",
      "city": "…",
      "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"
}
Limitations

What it does not do

  • Returns matches from the first results page (up to maxResults). For one specific company, use exactMatch or add a registerNumber.
  • 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.
Serves these use cases
KYC onboardingContract & ESG compliance audit
FAQ
Does Handelsregister have an API?

Handelsregister (Germany) does not offer a clean public API for programmatic queries. getregdata reads the official source directly and returns structured JSON, keyed off the HRB identifier - so you get API-like access without an official endpoint.

How do I get Handelsregister data programmatically?

Install the getregdata agent skills or MCP server, or run the regdata/germany-handelsregister-scraper actor on Apify. Query by HRB or company name and receive structured, source-attributed records. It is free to install; you pay per result on Apify.

What data does Handelsregister return?

Company data and officers from the German commercial register.

Get a free sample of Handelsregister data

Not ready to run it yourself? Tell us which companies or filters you need. We run it once and send you the file, and a quote if you want it regularly. No newsletter, no sales calls.

We reply within one business day.

Prefer e-mail? [email protected] · We use your details only to answer you. Privacy

Related guides
6AMLD Compliance: Automate Beneficial Owner Checks by July 2027 3 min → Automated KYC Onboarding: Screen Polish Companies in 3 API Calls 5 min → Automating Polish UBO Checks: How to Query CRBR Without an Official API 5 min → Building a KYB Pipeline for Polish Companies: The Technical Reality 5 min →
Other Germany registries
de
Insolvenzbekanntmachungen
Germany

Insolvency proceedings from the German insolvency announcements register.

HRB → ✓ Verified