Handelsregister API: the portal offers search forms only
handelsregister.de is a web portal with search forms. We found no official API on it. Search results and register entries come back as HTML pages.
Third-party providers sell an API on top of the register, and a scraper reads the public search directly (checked on 3 November 2026).
Handelsregister API
The Gemeinsames Registerportal der Länder covers the commercial register (HRA and HRB), cooperatives, partnerships and associations for all 16 federal states. It is a JavaServer Faces application. Every search is a form post with a session cookie and a view state token, and the answer is an HTML page.
- Search by hand on the portal. Search is free and needs no registration, according to the bundesAPI project.
- A paid third-party API. OpenRegister offers company search, company details and official documents, billed in credits per call with monthly plans.
- A scraper that fills in the public search form and returns rows.
The bundesAPI project also quotes the portal usage rules: no more than 60 calls per hour, with a higher rate by request. We did not find those rules on the portal itself, so check them before you plan a large volume.
Register search results as rows
Our German Company Register scraper fills in the search form and returns one row per register entry. You search by company name, register number, city, postal code, federal state or register type.
This run asked for 50 corporations (HRB) in Bavaria with the name keyword Bäckerei:
{
"searchQuery": "Bäckerei",
"state": "by",
"registerType": "HRB",
"includeDetails": false,
"maxResults": 50
} It returned 50 rows, all HRB. 49 had Bayern as the state and 1 had Baden-Württemberg. Every row had a court, a register number, a status and a registered office. One row from a run for Siemens:
{
"companyName": "Siemens Aktiengesellschaft",
"court": "Amtsgericht München",
"state": "Bayern",
"registerType": "HRB",
"registerNumber": "6684",
"status": "active",
"registeredOffice": "Berlin und München",
"url": "https://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml",
"scrapedAt": "2026-11-03T05:01:11.167Z"
} Look up one register number
To find one company, put the number without the letters in registerNumber and the letters in registerType. The portal rejected "HRB 6684" typed into the number field with the message "Die Eingabe der Registernummer ist fehlerhaft!". This input returned one row, Siemens Aktiengesellschaft at Amtsgericht München:
{
"searchQuery": "Siemens",
"registerType": "HRB",
"registerNumber": "6684",
"maxResults": 5
} Limits
- Directors, share capital and business purpose come back empty. The input has an
includeDetailsswitch, but in our runs legalForm, address, businessPurpose, shareCapital, directors and prokuristen were empty on all 20 rows with the switch on. The output holds the search result fields only. We filed this as a bug for the actor. - The register number needs the split format. The README example "HRB 6667" is refused by the portal. The README is being corrected.
- The registered office can list two cities. Siemens comes back as "Berlin und München".
- The portal refuses a name made only of a legal form such as GmbH or AG.
- Proxy errors happen. The Siemens run logged two 504 errors from the proxy and retried them.
- Portal usage rules apply. The register is public for information. Read the portal terms and the rate limit before you automate large volumes.
Cost
The actor charges $0.012 per company plus $0.01 per GB of memory per run. The default memory is 4 GB, which is $0.04 per run, so 50 companies cost $0.64 and 1,000 companies about $12.04. A run at 1 GB charges $0.01 to start.
For several German and European registers in one search see European Company Search. If you need the data delivered on a schedule, we also run managed feeds: hello@studioamba.dev.
The actor is on the Apify Store: apify.com/studio-amba/handelsregister-scraper