Handelsregister Firm Scraper
Pricing
from $4.76 / 1,000 results
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
Maintained by CommunityActor 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?
| Field | Description | Example |
|---|---|---|
companyName | Company name as entered in the register (Firma), with its legal-form words | Siemens Aktiengesellschaft |
register | Full register reference shown by the portal: court, type and number | Amtsgericht München HRB 6684 |
registerCourt | Local court (Amtsgericht) that keeps the entry | München |
registerType | Register section: HRA, HRB, GnR, PR, VR or GsR | HRB |
registerNumber | Register number at that court, as text (may carry a suffix such as PI) | 6684 |
federalState | German federal state (Bundesland) of the register court | Bayern |
seat | Registered seat (Sitz) or branch location | Berlin und München |
status | Register status as the portal shows it: aktuell or Geschlossenes Registerblatt | aktuell |
documentTypes | Register documents the portal offers for the entry (AD, CD, HD, DK, UT, VÖ, SI) | ["AD", "CD", "HD", "DK", "UT", "VÖ", "SI"] |
previousNames | Earlier names from the entry's history, each with its seat at the time | [{"name": "Wire Card AG", "seat": "Berlin"}] |
legalForm | Legal form abbreviation read from the company name, or from your legal form filter | AG |
id | Stable id from court, type and number | muenchen-hrb-6684 |
sourceUrl | The portal's advanced search page the record was found through | https://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml |
scrapedAt | When 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
- Open Handelsregister Firm Scraper in Apify Console and go to the Input tab.
- Type a company name keyword, for example
SiemensorBä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). - 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. - Set
maxItemsto the number of companies you want (1-100). - Click Start. A search usually finishes in 10-30 seconds.
- 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
| Field | Type | Required | Description |
|---|---|---|---|
keyword | string | One of keyword, registerNumber, registerCourt, city or seat | Words from the company name, e.g. Siemens. German umlauts work. |
keywordMatch | string | No | all (default): every word must appear; any: at least one word; exact: the exact company name. |
similarSounding | boolean | No | Also match names that sound like the keyword. Default false. |
registerCourt | string | No | Register court as the portal names it, e.g. München, Berlin (Charlottenburg). |
registerType | string | No | HRA, HRB, GnR, PR, VR or GsR. Empty means all. |
registerNumber | string | No | Register number without court or type, e.g. 6684. Up to 10 characters. |
federalStates | array of strings | No | Federal states to search in, e.g. ["Sachsen"]. English names such as Bavaria work too. |
legalForm | string | No | Legal form label or abbreviation, e.g. Gesellschaft mit beschränkter Haftung or GmbH. |
city | string | No | City of the business address, e.g. Regensburg. |
seat | string | No | Registered seat or branch location, e.g. Hamburg. |
includeDeleted | boolean | No | Also return closed register sheets and deleted branches. Default false. |
onlyBranches | boolean | No | Return only branch establishments registered under the new law. Default false. |
maxItems | integer | No | Maximum number of companies, 1-100, default 50. |
proxyConfiguration | object | No | Proxy 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:
- "Look up the German company register entry for München HRB 6684 and tell me the company's seat and status."
- "Find GmbH companies with 'Bäckerei' in their name registered in Sachsen and give me a table of name, register number and seat."
- "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 ApifyClientclient = 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.
Is it legal to scrape the Handelsregister?
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.
Related Actors
| Actor | What it does |
|---|---|
| UK Companies House Scraper | Company records from the UK register |
| French Companies Scraper | Company records for France |
| Brazil CNPJ Company Scraper | Company 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.