Germany Company Registry & Financials Scraper (Handelsregister)
Pricing
from $12.75 / 1,000 results
Germany Company Registry & Financials Scraper (Handelsregister)
Scrape German companies from the Handelsregister: register court and number (HRB/HRA), legal form, status, registered office, share capital, business purpose, former names, published document availability including annual financial statements, and officers (managing directors /...
Pricing
from $12.75 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
19 days ago
Last modified
Categories
Share
Germany Company Registry & Financials Scraper (Handelsregister)
Here is one real result, with every field the actor returns (the officers array is trimmed with a note; each entry in the real record combines the officer name, role and registered city):
{"name": "Alber & Bayer GmbH & Co KG","registerId": "HRA 400066","registerCourt": "Amtsgericht Stuttgart","registerType": "HRA","registerNumber": "400066","state": "Baden-Württemberg","city": "Albstadt","status": "aktuell","legalForm": "Kommanditgesellschaft (KG)","capitalAmount": null,"capitalCurrency": null,"streetAddress": "Wiesenstraße 86","postalCode": "72461","addressCity": "Albstadt","purpose": null,"representationRule": "Ist nur ein Liquidator bestellt, vertritt er allein. Sind mehrere Liquidatoren bestellt, vertreten sie gemeinsam.","officersCount": 5,"managingDirectors": "Ferdinand Metzger","topOfficerName": "Ferdinand Metzger","topOfficerRole": "Prokurist(in)","officers": ["... 5 officer entries, each combining name, role and registered city (trimmed) ..."],"formerNames": ["Alber & Bayer K.-G."],"availableDocuments": ["AD", "CD", "HD", "DK", "UT", "VÖ", "SI"],"hasPublishedFinancialStatements": true,"financialStatementsNote": "Annual financial statements (Jahresabschluss) are on file for this company and are published as documents in the German company register / Bundesanzeiger.","searchTerm": "Bayer","aiCompanySummary": "Alber & Bayer GmbH & Co KG is a limited partnership based in Albstadt, Baden-Württemberg. The company is currently active and is managed by Ferdinand Metzger, with a total of five officers. It has published financial statements and was formerly known as Alber & Bayer K.-G.","aiRiskLevel": "none","aiRiskFlags": [],"aiRiskRationale": "The company is currently active, has published financial statements, and does not show any signs of liquidation or insolvency.","aiIndustry": "Textile Manufacturing","aiSector": "Manufacturing","aiIndustryTags": ["textiles", "clothing", "fabric production"],"source": "Handelsregister (German Company Register)","observedAt": "2026-08-14T07:56:54.991Z"}
The most complete German company register scraper available. It returns every field the Handelsregister exposes per company, from register court and number, legal form, status and registered office to share capital, business purpose, former names, published document availability (including annual financial statements) and the full list of officers, plus optional AI KYB enrichment, and gives you filters for name, register type, state and city to target exactly the companies you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the German company register (Handelsregister) for each name or keyword you pass, applies the register type, state and city filters, and writes one normalized record per company to the run's dataset. When enrichOfficers is on (default), each company's structured register extract is fetched to add legal form, share capital, registered address, business purpose, representation rule and the full list of officers (managing directors, board members, authorised signatories). Each record also reports whether annual financial statements are on file. Missing source values are returned as null, and optional AI add-ons (English KYB summary, risk flags, industry classification) run per company when enabled on a paid plan.
Data covers companies registered across Germany. The Handelsregister is bot protected, so the actor runs over Apify RESIDENTIAL proxy in Germany.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 3 companies matching Bayer, enriched with officers and all AI add-ons.
{"companyNames": ["Bayer"],"maxCompanies": 3,"matchMode": "all","enrichOfficers": true,"withAiCompanySummary": true,"withAiRiskFlags": true,"withAiIndustry": true}
Pass several names in companyNames to cover them in one run. companyNames is required. maxCompanies defaults to 10.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
companyNames | string[] | yes | ["Siemens Energy"] | Company names or keywords to search. One run searches every term. |
matchMode | enum | no | all | How keywords match: all (contains all), any (at least one), exact (exact name). |
registerType | enum | no | (all) | Restrict to one register: HRB (corporations), HRA (partnerships/sole traders), GnR, PR, VR, GsR. |
states | string[] | no | (all) | Limit to German federal states, for example Bayern, Berlin. |
city | string | no | (none) | Limit to companies whose registered office is in this city. |
includeDeleted | boolean | no | false | Also return companies struck off the register (gelöscht). |
enrichOfficers | boolean | no | true | Fetch each company's register extract to add legal form, capital, address, purpose and officers. Recommended. |
maxCompanies | integer | no | 10 | Maximum companies to return across all search terms. |
withAiCompanySummary | boolean | no | false | Paid add-on. Adds aiCompanySummary. Charged only on usable output. Requires a paid Apify plan. |
withAiRiskFlags | boolean | no | false | Paid add-on. Adds aiRiskLevel, aiRiskFlags, aiRiskRationale. Charged only on usable output. Requires a paid plan. |
withAiIndustry | boolean | no | false | Paid add-on. Adds aiIndustry, aiSector, aiIndustryTags. Charged only on usable output. Requires a paid plan. |
Filters combine with logical AND. Empty filters are ignored.
Output reference
One dataset item per company. Types: string, integer, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
name | string | Company name. |
registerId | string | Full register identifier (type plus number). |
registerCourt | string | Register court (Amtsgericht). |
registerType | string | Register type (HRB, HRA, and so on). |
registerNumber | string | Register number. |
state | string | Federal state. |
city | string | Registered office city (from search listing). |
status | string | Register status, for example aktuell, or deleted. |
legalForm | string | Legal form, for example GmbH, AG, KG, or null. |
capitalAmount | number | Share capital amount (from extract), or null. |
capitalCurrency | string | Share capital currency, or null. |
streetAddress | string | Registered street address, or null. |
postalCode | string | Registered postal code, or null. |
addressCity | string | Registered office city (from extract), or null. |
purpose | string | Business purpose (Gegenstand), or null. |
representationRule | string | Representation rule text, or null. |
officersCount | integer | Number of officers found. |
managingDirectors | string | Managing directors, or null. |
topOfficerName | string | Name of the primary officer, or null. |
topOfficerRole | string | Role of the primary officer, or null. |
officers | string[] | Officer entries, each combining name, role and registered city. |
formerNames | string[] | Previous company names, empty array when none. |
availableDocuments | string[] | Document types on file (for example AD, CD, HD, DK, UT, VÖ, SI). |
hasPublishedFinancialStatements | boolean | true when annual financial statements are on file. |
financialStatementsNote | string | Plain-English note about financial statement availability. |
searchTerm | string | The search term this record came from. |
aiCompanySummary | string | AI English KYB profile. null unless withAiCompanySummary produced output. |
aiRiskLevel | string | AI risk level. null unless withAiRiskFlags produced output. |
aiRiskFlags | string[] | AI red-flag phrases. null/empty unless withAiRiskFlags produced output. |
aiRiskRationale | string | AI risk rationale. null unless withAiRiskFlags produced output. |
aiIndustry | string | AI industry label. null unless withAiIndustry produced output. |
aiSector | string | AI sector. null unless withAiIndustry produced output. |
aiIndustryTags | string[] | AI keyword tags. null unless withAiIndustry produced output. |
source | string | Always Handelsregister (German Company Register). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"companyNames": ["Bayer"], "maxCompanies": 3, "enrichOfficers": true, "withAiCompanySummary": true, "withAiRiskFlags": true, "withAiIndustry": true}). The officers array is trimmed with an explicit note; all values are real:
{"name": "Alber & Bayer GmbH & Co KG","registerId": "HRA 400066","registerCourt": "Amtsgericht Stuttgart","registerType": "HRA","registerNumber": "400066","state": "Baden-Württemberg","city": "Albstadt","status": "aktuell","legalForm": "Kommanditgesellschaft (KG)","streetAddress": "Wiesenstraße 86","postalCode": "72461","addressCity": "Albstadt","officersCount": 5,"managingDirectors": "Ferdinand Metzger","topOfficerName": "Ferdinand Metzger","topOfficerRole": "Prokurist(in)","officers": ["... 5 officer entries, each combining name, role and registered city (trimmed) ..."],"formerNames": ["Alber & Bayer K.-G."],"availableDocuments": ["AD", "CD", "HD", "DK", "UT", "VÖ", "SI"],"hasPublishedFinancialStatements": true,"searchTerm": "Bayer","aiCompanySummary": "Alber & Bayer GmbH & Co KG is a limited partnership based in Albstadt, Baden-Württemberg. The company is currently active and is managed by Ferdinand Metzger, with a total of five officers...","aiRiskLevel": "none","aiRiskFlags": [],"aiIndustry": "Textile Manufacturing","aiSector": "Manufacturing","aiIndustryTags": ["textiles", "clothing", "fabric production"],"source": "Handelsregister (German Company Register)","observedAt": "2026-08-14T07:56:54.991Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~germany-company-financials-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companyNames":["Siemens Energy"],"registerType":"HRB","maxCompanies":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~germany-company-financials-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companyNames":["BioNTech"],"states":["Rheinland-Pfalz"],"enrichOfficers":true,"maxCompanies":100}'
Apify CLI:
apify call scrapers_lat/germany-company-financials-scraper \--input '{"companyNames":["BSH Hausgeräte"],"matchMode":"exact"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per company record returned (
resultevent). See the pricing tab for the current per-result price. - Optional AI add-ons (
ai_company_summary,ai_risk_flags,ai_industry) are billed separately and only when they produce usable output, and only on paid Apify plans. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxCompanies.
FAQ and troubleshooting
A run returned 0 records. Why?
No companies matched the name and register/state/city filters. Loosen matchMode to any, remove a filter, or check the spelling. Zero-result runs are not charged.
Does it return actual financial figures?
It reports whether annual financial statements (Jahresabschluss) are on file (hasPublishedFinancialStatements) and which document types are available. The full statements are published as documents in the register / Bundesanzeiger; this actor returns the structured register data and document availability, not the parsed figures.
Why is capitalAmount or purpose null?
Not every register extract exposes share capital or a business purpose (partnerships often omit capital). Missing source values are returned as null, never invented.
How do I get officers and address?
Keep enrichOfficers on (default). Officers, legal form, capital, address and purpose come from each company's structured register extract.
Do the AI fields cost extra? Yes. They are opt-in paid add-ons, billed only when they return usable output, and disabled on free Apify plans.
Is this an official Handelsregister tool? No. This actor is independent and has no affiliation with the German company register. It reads only data that is publicly available. Use it in accordance with the source's terms of service.
Related scrapers
- Austria (ASIC/registers) and other EU registries: Belgian KBO company records.
- Denmark CVR Companies Scraper: Danish company register records.
- Czech ARES Companies Scraper: Czech company register records.
- Estonia Business Register Scraper: Estonian company records with VAT.
- Finland Companies Scraper: Finnish company register records.
- GLEIF LEI Company Records Scraper: Global LEI legal-entity records.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the German company register (Handelsregister). Accesses only publicly available data. Use in accordance with the source's terms of service.
