Handelsregister Firm Scraper avatar

Handelsregister Firm Scraper

Pricing

from $4.76 / 1,000 results

Go to Apify Store
Handelsregister Firm Scraper

Handelsregister Firm Scraper

Find company entries on the German Handelsregister portal and return structured records with register type and number, court, federal state, seat, status and legal form. Search by company keywords or register number, and optionally include closed register sheets and earlier company names.

Pricing

from $4.76 / 1,000 results

Rating

0.0

(0)

Developer

Axiom Works

Axiom Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Returns: one row per German company with companyName, register, registerCourt, registerType, registerNumber, seat, status, legalForm and previousNames. Input: {"keyword": "Siemens", "maxItems": 20} Best for: German B2B lead lists, KYC and supplier checks (confirm a company's HRB number and court), tracking renamed or closed companies.

{
"companyName": "Siemens Aktiengesellschaft",
"register": "Amtsgericht München HRB 6684",
"registerNumber": "6684",
"federalState": "Bayern",
"seat": "Berlin und München",
"status": "aktuell",
"legalForm": "AG"
}

What does Handelsregister Firm Scraper do?

Handelsregister Firm Scraper searches the official German company register portal (handelsregister.de, the joint register portal of the German federal states) and returns every matching company as a clean, structured row. It works like the portal's advanced search ("erweiterte Suche"): you search by company name keywords, by register court, register type and register number, by federal state, legal form, city or registered seat, and you can include closed register sheets of dissolved or merged companies.

For each company you get the company name as registered, the full register reference (for example Amtsgericht München HRB 6684) split into court, register type and number, the federal state, the registered seat, the register status, the list of register documents the portal offers, the earlier names and seats from the entry's history, and a normalised legal form such as GmbH, AG, KG or e.V. No login and no account on the portal are needed; the Actor reads only the public search results.

It is a practical Handelsregister API for the jobs people usually do by hand in the portal: building lead lists of German companies in a region or industry, checking that a supplier or customer really exists under the register number it gave you, and following a company through renames and moves. One run is one search on the portal, and the portal returns at most 100 companies per search.

What data can you get from the Handelsregister?

FieldDescriptionExample
companyNameCompany name as entered in the register (Firma), with its legal-form wordsSiemens Aktiengesellschaft
registerFull register reference shown by the portal: court, type and numberAmtsgericht München HRB 6684
registerCourtLocal court (Amtsgericht) that keeps the entryMünchen
registerTypeRegister section: HRA, HRB, GnR, PR, VR or GsRHRB
registerNumberRegister number at that court, as text (may carry a suffix such as PI)6684
federalStateGerman federal state (Bundesland) of the register courtBayern
seatRegistered seat (Sitz) or branch locationBerlin und München
statusRegister status as the portal shows it: aktuell or Geschlossenes Registerblattaktuell
documentTypesRegister documents the portal offers for the entry (AD, CD, HD, DK, UT, VÖ, SI)["AD", "CD", "HD", "DK", "UT", "VÖ", "SI"]
previousNamesEarlier names from the entry's history, each with its seat at the time[{"name": "Wire Card AG", "seat": "Berlin"}]
legalFormLegal form abbreviation read from the company name, or from your legal form filterAG
idStable id from court, type and numbermuenchen-hrb-6684
sourceUrlThe portal's advanced search page the record was found throughhttps://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml
scrapedAtWhen the record was collected (ISO 8601, UTC)2026-10-18T00:12:02.906Z

The document codes mean: AD current printout, CD chronological printout, HD historical printout, DK document view, UT company owner data, VÖ publications, SI structured register data. The Actor lists which of them exist for each company; it does not download the documents themselves.

How to use Handelsregister Firm Scraper

  1. Open Handelsregister Firm Scraper in Apify Console and go to the Input tab.
  2. Type a company name keyword, for example Siemens or Bäckerei. To look up one known company instead, leave the keyword empty and fill in the register court (München), register type (HRB) and register number (6684).
  3. Narrow the search if you expect many hits: pick one or more federal states, a legal form such as Gesellschaft mit beschränkter Haftung, a city, or a registered seat.
  4. Set maxItems to the number of companies you want (1-100).
  5. Click Start. A search usually finishes in 10-30 seconds.
  6. Open the Output tab to see the companies, then export them as JSON, CSV, Excel, XML or HTML, or fetch them through the API.

Tips: The portal stops every search at 100 hits. When a search reaches that cap the run log says so; split the search by federal state, register court, legal form or city to get the rest.

Court names are matched without caring about case or umlauts, so muenchen finds München, and a unique part such as Charlottenburg finds Berlin (Charlottenburg). A court the portal doesn't know fails the run with a list of close matches.

Legal forms accept the portal's labels and the usual abbreviations (GmbH, AG, SE, KG, OHG, e.V., eG, e.K.).

The portal's own postcode search currently answers with an error page, so this Actor has no postcode filter. Use the city filter instead.

Input

FieldTypeRequiredDescription
keywordstringOne of keyword, registerNumber, registerCourt, city or seatWords from the company name, e.g. Siemens. German umlauts work.
keywordMatchstringNoall (default): every word must appear; any: at least one word; exact: the exact company name.
similarSoundingbooleanNoAlso match names that sound like the keyword. Default false.
registerCourtstringNoRegister court as the portal names it, e.g. München, Berlin (Charlottenburg).
registerTypestringNoHRA, HRB, GnR, PR, VR or GsR. Empty means all.
registerNumberstringNoRegister number without court or type, e.g. 6684. Up to 10 characters.
federalStatesarray of stringsNoFederal states to search in, e.g. ["Sachsen"]. English names such as Bavaria work too.
legalFormstringNoLegal form label or abbreviation, e.g. Gesellschaft mit beschränkter Haftung or GmbH.
citystringNoCity of the business address, e.g. Regensburg.
seatstringNoRegistered seat or branch location, e.g. Hamburg.
includeDeletedbooleanNoAlso return closed register sheets and deleted branches. Default false.
onlyBranchesbooleanNoReturn only branch establishments registered under the new law. Default false.
maxItemsintegerNoMaximum number of companies, 1-100, default 50.
proxyConfigurationobjectNoProxy settings. Default: no proxy.

Example: GmbH bakeries registered in Saxony.

{
"keyword": "Bäckerei",
"federalStates": ["Sachsen"],
"legalForm": "Gesellschaft mit beschränkter Haftung",
"maxItems": 50
}

Example: look up one company by its register reference.

{
"registerCourt": "München",
"registerType": "HRB",
"registerNumber": "6684"
}

Output

Each company is one item in the run's dataset. These two items come from real runs: a lookup of München HRB 6684, and a search for Wirecard with closed register sheets included.

[
{
"companyName": "Siemens Aktiengesellschaft",
"registerCourt": "München",
"registerType": "HRB",
"registerNumber": "6684",
"register": "Amtsgericht München HRB 6684",
"federalState": "Bayern",
"seat": "Berlin und München",
"status": "aktuell",
"documentTypes": ["AD", "CD", "HD", "DK", "UT", "VÖ", "SI"],
"previousNames": [],
"legalForm": "AG",
"id": "muenchen-hrb-6684",
"sourceUrl": "https://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml",
"scrapedAt": "2026-10-18T00:12:02.906Z"
},
{
"companyName": "Wirecard AG",
"registerCourt": "Berlin (Charlottenburg)",
"registerType": "HRB",
"registerNumber": "88060",
"register": "Amtsgericht Berlin (Charlottenburg) HRB 88060",
"federalState": "Berlin",
"seat": "Grasbrunn bei München",
"status": "Geschlossenes Registerblatt",
"documentTypes": [],
"previousNames": [
{ "name": "InfoGenie Europe Aktiengesellschaft", "seat": "Berlin" },
{ "name": "Wire Card AG", "seat": "Berlin" },
{ "name": "Wirecard AG", "seat": "Berlin" }
],
"legalForm": "AG",
"id": "berlin-charlottenburg-hrb-88060",
"sourceUrl": "https://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml",
"scrapedAt": "2026-10-18T00:14:41.512Z"
}
]

The portal's result list has no legal-form column, so legalForm is read from the legal-form words in the company name ("Aktiengesellschaft" and "AG" both become AG, "GmbH & Co. KG" stays GmbH & Co. KG). When the name has no such words and you searched with a legal form filter, the filter's value is used; otherwise the field is null. You can download the dataset as JSON, CSV, Excel, XML, RSS or an HTML table from the Output tab or the API.

How much does it cost to scrape the Handelsregister?

Handelsregister Firm Scraper is charged per result. You pay only for the companies returned, and maxItems caps how many that can be in one run. A search that matches nothing costs no results. See the Pricing tab for the current price.

Use with AI agents (MCP)

Connect Handelsregister Firm Scraper to Claude, Cursor or any MCP client through the Apify MCP server:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=axiomworks/handelsregister-company-scraper"
}
}
}

Example prompts:

  1. "Look up the German company register entry for München HRB 6684 and tell me the company's seat and status."
  2. "Find GmbH companies with 'Bäckerei' in their name registered in Sachsen and give me a table of name, register number and seat."
  3. "Search the Handelsregister for Wirecard including closed register sheets and list each company's previous names."

An agent should pass a keyword or a court plus register number, and keep maxItems at 100 or below. If a search hits the 100-company cap, the agent can split it by federalStates or legalForm.

Integrations and API

Run Handelsregister Firm Scraper from your own code with the Apify API. Set APIFY_TOKEN to your Apify API token (send it in the Authorization header, never in the URL).

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("axiomworks/handelsregister-company-scraper").call(run_input={"keyword": "Siemens", "maxItems": 50})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["companyName"], item["register"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('axiomworks/handelsregister-company-scraper').call({ keyword: 'Siemens', maxItems: 50 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

cURL

curl -X POST "https://api.apify.com/v2/acts/axiomworks~handelsregister-company-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword": "Siemens", "maxItems": 50}'

You can also connect the Actor to Make, Zapier, n8n, Google Sheets, Slack or your own webhooks from the Integrations tab, and schedule it from the Schedules page to refresh a company list every week.

FAQ

Why do I get at most 100 companies? The register portal itself stops every search at 100 hits and shows a notice that the maximum was exceeded. The Actor logs a warning when that happens. Split the search into narrower ones, for example one run per federal state or per legal form.

Why did my run return 0 results? No company in the register matched all your criteria. Check the spelling, try fewer keywords, set keywordMatch to any, or remove filters. German umlauts are fine (Übersee Café works). Active entries only are returned unless you set includeDeleted.

Can I search by postcode? Not at the moment. The portal's postcode field answers with a server error page, so the Actor offers the city (city) and registered seat (seat) filters instead, which work.

What does "Geschlossenes Registerblatt" mean? The register sheet is closed: the company was dissolved, merged into another company or moved to another court. Such entries appear only when includeDeleted is true, and the portal offers no documents for most of them, so documentTypes is often empty.

Does it download register printouts or shareholder lists? No. It lists which documents exist (documentTypes) but does not download them. The portal's terms count every retrieval, and more than 60 retrievals an hour count as misuse, so the Actor runs one search per run.

How fresh is the data? Every run queries the live portal, so the data is as current as the register itself at that moment.

Do I need a proxy? Usually not. The portal limits how often one IP may search. If you run many searches in a short time and get blocked, turn on Apify Proxy in the input; a blocked search is then retried on a new IP.

Why is legalForm sometimes null? The result list has no legal-form column. The Actor reads it from the company name, and some names (often sole traders or associations with unusual wording) contain no legal-form words. Search with the legalForm filter to fill it for every row.

The Handelsregister is a public register: German law lets anyone inspect it, and the portal shows these search results without a login. Handelsregister Firm Scraper collects only the data on the public result list and runs one search per run, well within the portal's usage limits. Company names of sole traders (e.K.) can contain a person's name; if you store or process such data, you are responsible for doing so lawfully, for example under the GDPR. This is not legal advice.

Handelsregister Firm Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by the Handelsregister, the register courts or the German federal states that run handelsregister.de.

ActorWhat it does
UK Companies House ScraperCompany records from the UK register
French Companies ScraperCompany records for France
Brazil CNPJ Company ScraperCompany records for Brazil by CNPJ

Feedback

Found a bug or need a field that isn't here? Open an issue on the Issues tab and we'll look at it.