Skip to content

Handelsregister Scraper

Try for free

Search the official German company register (handelsregister.de) by name, keyword or register number. Get register number, court, status, legal form, address, officers with birth dates, representation rules, purpose, capital and name history.

🇩🇪 Handelsregister Scraper

Search the official German company register (handelsregister.de, the common register portal of all 16 federal states) and get one clean record per company: register number, court, status, legal form, business address, officers with roles and birth dates, representation rules, business purpose, share capital and name history. Search by company name or keyword, or look up exact register numbers like München HRB 42243. No login, no account, one simple price per company.

✨ Why use Handelsregister Scraper?

  • 🏛️ Primary source: every record comes live from the official register portal, including the structured register content (SI document, XJustiz XML) that the courts publish.
  • 👥 Officers with details: managing directors, board members, authorised signatories (Prokuristen), partners and liquidators, with role, name, birth date, city and their individual power of representation.
  • 🧾 More than the basics: business purpose (Unternehmensgegenstand), share capital, date of the articles, date of the latest register entry, former names and seats.
  • ⚡ Fast: several portal sessions work in parallel. In our tests, 10 companies with full structured data took about 70 seconds and 250 companies without documents about 50 seconds.
  • 🔎 Past the 100-hit cap: the portal shows at most 100 companies per search. The actor splits broad searches by federal state, register court, register type and legal form automatically.
  • 🛡️ Honest about gaps: when a state's register system does not deliver a document, the company is still saved with the search data and flagged, and the run status says which state was affected.

🎯 Use cases

  • ✅ KYC / KYB checks: verify a counterparty's register entry, status, legal form, address and who may sign for it.
  • 🧲 B2B lead generation: build lists of GmbHs, AGs or associations by keyword, city, postal code, federal state or legal form, with decision makers.
  • 📊 Credit and risk monitoring: re-run register number lookups on a schedule to catch new managing directors, address changes, renames or deletions.
  • ⚖️ Legal and insolvency work: pull register facts, representation rules and name history without clicking through the portal case by case.
  • 🔬 Market and M&A research: map the legal entities, capital and purpose of companies in an industry or region.

🚀 How to use

  1. Enter company names or keywords in Company names or keywords, or exact entries such as München HRB 42243 in Register numbers.
  2. Optionally narrow the search with Filters: register type, register court, legal form, federal states, city, postal code, deleted entries.
  3. Set Maximum companies.
  4. Click Start.
  5. Download the results as JSON, CSV, Excel or HTML, or read them over the API.

📥 Input

FieldWhat it does
searchQueriesCompany names or keywords, one search per line
registerIdsExact register entries: court + type + number, e.g. München HRB 42243, Berlin (Charlottenburg) HRB 1234 B
maxItemsTotal companies to save (0 = no limit)
keywordMatchall words, any word, or the exact company name
registerTypeHRA, HRB, GnR, PR, VR or GsR
registerCourt / registerNumberCourt (e.g. München, Wurzburg works too) and number for a precise lookup
legalFormGmbH, UG, AG, KG, OHG, eG, e.V., e.K., GbR, SE, KGaA, PartG, Stiftung or the German name
states, city, streetLocation filters on the portal
postalCodePostal code or its first digits, checked against the registered address (needs structured data)
includeDeletedAlso return deleted (gelöscht) entries
similarSoundingAlso match names that sound like the keywords
fetchStructuredDataLoad the SI document per company (on by default)
includeRawXmlAttach the raw XJustiz XML
splitBroadSearchesGo past the portal's 100-hit cap (on by default)
{
  "searchQueries": ["Bäckerei"],
  "city": "Hamburg",
  "registerType": "HRB",
  "registerIds": ["München HRB 42243"],
  "maxItems": 50
}

📤 Output

One row per register entry. The Officers view lists one row per officer.

FieldDescription
companyName, legalNameName in the search results and in the structured document
registerId, registerCourt, registerType, registerNumberRegister key, e.g. Amtsgericht München HRB 42243
status, statusRawactive or deleted (deleted or closed register sheet), and the portal's wording
state, seatFederal state and registered seat
legalFormLegal form, e.g. Gesellschaft mit beschränkter Haftung (GmbH)
addressstreet, houseNumber, postalCode, city, country
officers[]role, firstName, lastName, fullName, birthDate, city, organisationName, representation
representationRulesGeneral rule for who may represent the company
businessPurposeObject of the company
shareCapitalamount and currency
lastEntryDate, entryCount, articlesDate, articlesLastAmendedRegister and articles dates
history[]Former names and seats in order
availableDocumentsDocuments the portal offers (AD, CD, HD, DK, UT, VÖ, SI)
structuredDataMissingtrue when there is no structured document: the portal did not deliver it, or the entry has none (closed or deleted entries)
searchQuery, scrapedAtWhat found the company, and when

Example (shape from a real run; company and people are fictional):

{
  "type": "company-registration",
  "companyName": "Muster Backstube GmbH",
  "registerId": "Amtsgericht Hamburg HRB 123456",
  "registerCourt": "Amtsgericht Hamburg",
  "registerType": "HRB",
  "registerNumber": "123456",
  "state": "Hamburg",
  "seat": "Hamburg",
  "status": "active",
  "statusRaw": "aktuell",
  "history": [{ "position": 1, "name": "Muster Brot GmbH", "seat": "Hamburg" }],
  "availableDocuments": ["AD", "CD", "DK", "UT", "VÖ", "SI"],
  "legalName": "Muster Backstube GmbH",
  "legalForm": "Gesellschaft mit beschränkter Haftung (GmbH)",
  "address": { "street": "Musterstraße", "houseNumber": "12", "postalCode": "20095", "city": "Hamburg", "country": null },
  "representationRules": "Ist nur ein Geschäftsführer bestellt, so vertritt er die Gesellschaft allein. Sind mehrere Geschäftsführer bestellt, so wird die Gesellschaft durch zwei Geschäftsführer oder durch einen Geschäftsführer gemeinsam mit einem Prokuristen vertreten.",
  "officers": [
    {
      "role": "Geschäftsführer(in)",
      "firstName": "Erika",
      "lastName": "Musterfrau",
      "fullName": "Erika Musterfrau",
      "birthDate": "1980-05-17",
      "city": "Hamburg",
      "organisationName": null,
      "representation": "einzelvertretungsberechtigt; mit der Befugnis, im Namen der Gesellschaft mit sich im eigenen Namen oder als Vertreter eines Dritten Rechtsgeschäfte abzuschließen"
    }
  ],
  "businessPurpose": "Herstellung und Vertrieb von Backwaren sowie der Betrieb von Cafés.",
  "shareCapital": { "amount": 25000.0, "currency": "EUR" },
  "lastEntryDate": "2024-03-11",
  "entryCount": 4,
  "articlesDate": "2019-07-02",
  "articlesLastAmended": "2023-11-20",
  "registerCourtOfficial": "Amtsgericht Hamburg",
  "searchQuery": "Bäckerei",
  "scrapedAt": "2026-10-21T08:41:12.512Z"
}

💰 Pricing

You pay $6.50 per 1,000 companies ($0.0065 per company), with the structured register data included. There is no start fee. Platform usage (compute and proxy traffic) is billed separately and is small: a run with 10 companies and full structured data used under $0.01 in our tests.

Example: 1,000 companies ≈ $6.50 plus usage.

❓ FAQ

Is it legal? The register portal is public and free to use without registration; the actor reads only public pages and documents. Register data includes personal data (names, birth dates and cities of officers). You are responsible for using it in line with the GDPR and the portal's terms of use.

Do I need a login or a proxy? No login. The default datacenter proxy works; you can switch to residential proxies in the Proxy section.

How many companies can I get? The portal returns up to 100 companies per search. With Split broad searches on, the actor repeats a capped search per federal state, register court, register type and legal form; in our test a common word returned 10,000 unique companies. Very broad words can still hit the cap in a single state and register type; the status message names those searches.

How long does a big run take? The portal delivers structured documents slowly. In our tests a run loaded about 20 to 30 companies with full structured data per minute (300 companies took about 11 minutes with 10 parallel sessions). List-only runs are much faster: 10,000 companies took about 5 minutes. The default run timeout is 4 hours.

Why is a field empty? Fields come from the register itself. Small entities often have no share capital or purpose in the structured data, older entries can lack a street address, and some state register systems are sometimes unable to deliver documents. Those companies are saved with structuredDataMissing: true and the search data.

Can I schedule it or use the API? Yes. Schedule runs in the console, or start them over the API and fetch the dataset as JSON, CSV or Excel.

⚠️ Limits

  • The portal shows at most 100 companies per search; splitting works around this for most searches but not for every very broad word.
  • The structured document (SI) is the only document loaded. Printouts (AD, CD, HD), the document folder (DK) and publications are not downloaded.
  • Some state register systems are slow or temporarily unavailable for documents; affected companies are saved without the structured data.
  • The portal ignores legal-form words such as GmbH or AG as keywords; add a name word or use the Legal form filter.
  • Keyword search matches company names, not people. Searching by officer name is not supported by the portal.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.