https://github.com/bundesapi/handelsregister
https://github.com/bundesapi/handelsregister
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/bundesapi/handelsregister
- Owner: bundesAPI
- Created: 2021-08-10T09:53:58.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-05-20T08:53:20.000Z (about 2 years ago)
- Last Synced: 2025-03-29T13:06:49.746Z (about 1 year ago)
- Language: Python
- Size: 32.2 KB
- Stars: 346
- Watchers: 30
- Forks: 43
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Handelsregister API
Das Handelsregister stellt ein öffentliches Verzeichnis dar, das im Rahmen des Registerrechts Eintragungen über die angemeldeten Kaufleute in einem bestimmten geografischen Raum führt.
Eintragungspflichtig sind die im HGB, AktG und GmbHG abschließend aufgezählten Tatsachen oder Rechtsverhältnisse. Eintragungsfähig sind weitere Tatsachen, wenn Sinn und Zweck des Handelsregisters die Eintragung erfordern und für ihre Eintragung ein erhebliches Interesse des Rechtsverkehrs besteht.
Die Einsichtnahme in das Handelsregister sowie in die dort eingereichten Dokumente ist daher gemäß § 9 Abs. 1 HGB jeder und jedem zu Informationszwecken gestattet, wobei es unzulässig ist, mehr als 60 Abrufe pro Stunde zu tätigen (vgl. [Nutzungsordnung](https://www.handelsregister.de/rp_web/information.xhtml)). Die Recherche nach einzelnen Firmen, die Einsicht in die Unternehmensträgerdaten und die Nutzung der Handelsregisterbekanntmachungen ist kostenfrei möglich.
**Achtung:** Das Registerportal ist regelmäßig das Ziel automatisierter Massenabfragen. Den Ausführungen der [FAQs](https://www.handelsregister.de/rp_web/information.xhtml) zufolge erreiche die Frequenz dieser Abfragen sehr häufig eine Höhe, bei der die Straftatbestände der Rechtsnormen §§303a, b StGB vorliege. Mehr als 60 Abrufe pro Stunde widersprechen der Nutzungsordnung.
## Handelsregister
### Datenstruktur
***URL:*** https://www.handelsregister.de/rp_web/erweitertesuche.xhtml
Das gemeinsame Registerportal der Länder ermöglicht jeder und jedem die Recherche nach einzelnen Firmen zu Informationszwecken. Einträge lassen sich dabei über verschiedene Parameter im Body eines POST-request filtern:
**Parameter:** *schlagwoerter* (Optional)
Schlagwörter (z.B. Test). Zulässige Platzhalterzeichen sind für die Suche nach genauen Firmennamen (siehe Parameter *schlagwortOptionen*) \* und ? - wobei das Sternchen für beliebig viele (auch kein) Zeichen steht, das Fragezeichen hingegen für genau ein Zeichen.
**Parameter:** *schlagwortOptionen* (Optional)
- 1
- 2
- 3
Schlagwortoptionen: 1=alle Schlagwörter enthalten; 2=mindestens ein Schlagwort enthalten; 3=den genauen Firmennamen enthalten.
**Parameter:** *suchOptionenAehnlich* (Optional)
- true
true=ähnlich lautende Schlagwörter enthalten. Unter der Ähnlichkeitssuche ist die sogenannte phonetische Suche zu verstehen. Hierbei handelt es sich um ein Verfahren, welches Zeichenketten und ähnlich ausgesprochene Worte als identisch erkennt. Grundlage für die Vergleichsoperation ist hier die insbesondere im Bereich der öffentlichen Verwaltung angewandte sogenannte Kölner Phonetik.
**Parameter:** *suchOptionenGeloescht* (Optional)
- true
true=auch gelöschte Formen finden.
**Parameter:** *suchOptionenNurZNneuenRechts* (Optional)
- true
true=nur nach Zweigniederlassungen neuen Rechts suchen.
**Parameter:** *btnSuche* (Optional)
- Suchen
Button "Suchen"
**Parameter:** *suchTyp* (Optional)
- n
- e
Suchtyp: n=normal; e=extended. Die normale Suche erlaubt eine Suche über den gesamten Registerdatenbestand der Länder anhand einer überschaubaren Anzahl von Suchkriterien. Die erweiterte Suche bietet neben den Auswahlkriterien der normalen Suche die selektive Suche in den Datenbeständen ausgewählter Länder, die Suche nach Rechtsformen und die Suche nach Adressen an.
**Parameter:** *ergebnisseProSeite* (Optional)
- 10
- 25
- 50
- 100
Ergebnisse pro Seite.
**Parameter:** *niederlassung* (Optional)
Niederlassung / Sitz. Zulässige Platzhalterzeichen sind \* und ? - wobei das Sternchen für beliebig viele (auch kein) Zeichen steht, das Fragezeichen hingegen für genau ein Zeichen.
**Parameter:** *bundeslandBW* (Optional)
- on
Einträge aus Baden-Württemberg
**Parameter:** *bundeslandBY* (Optional)
- on
Einträge aus Bayern
**Parameter:** *bundeslandBE* (Optional)
- on
Einträge aus Berlin
**Parameter:** *bundeslandBR* (Optional)
- on
Einträge aus Bradenburg
**Parameter:** *bundeslandHB* (Optional)
- on
Einträge aus Bremen
**Parameter:** *bundeslandHH* (Optional)
- on
Einträge aus Hamburg
**Parameter:** *bundeslandHE* (Optional)
- on
Einträge aus Hessen
**Parameter:** *bundeslandMV* (Optional)
- on
Einträge aus Mecklenburg-Vorpommern
**Parameter:** *bundeslandNI* (Optional)
- on
Einträge aus Niedersachsen
**Parameter:** *bundeslandNW* (Optional)
- on
Einträge aus Nordrhein-Westfalen
**Parameter:** *bundeslandRP* (Optional)
- on
Einträge aus Rheinland-Pfalz
**Parameter:** *bundeslandSL* (Optional)
- on
Einträge aus Saarland
**Parameter:** *bundeslandSN* (Optional)
- on
Einträge aus Sachsen
**Parameter:** *bundeslandST* (Optional)
- on
Einträge aus Sachsen-Anhalt
**Parameter:** *bundeslandSH* (Optional)
- on
Einträge aus Schleswig-Holstein
**Parameter:** *bundeslandTH* (Optional)
- on
Einträge aus Thüringen
**Parameter:** *registerArt* (Optional)
- alle
- HRA
- HRB
- GnR
- PR
- VR
Registerart (Angaben nur zur Hauptniederlassung): alle; HRA; HRB; GnR; PR; VR.
**Parameter:** *registerNummer* (Optional)
Registernummer (Angaben nur zur Hauptniederlassung).
**Parameter:** *registerGericht* (Optional)
Registergericht (Angaben nur zur Hauptniederlassung). Beispielsweise D3201 für Ansbach
**Parameter:** *rechtsform* (Optional)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 40
- 46
- 48
- 49
- 51
- 52
- 53
- 54
- 55
Rechtsform (Angaben nur zur Hauptniederlassung). 1=Aktiengesellschaft; 2=eingetragene Genossenschaft; 3=eingetragener Verein; 4=Einzelkauffrau; 5=Einzelkaufmann; 6=Europäische Aktiengesellschaft (SE); 7=Europäische wirtschaftliche Interessenvereinigung; 8=Gesellschaft mit beschränkter Haftung; 9=HRA Juristische Person; 10=Kommanditgesellschaft; 12=Offene Handelsgesellschaft; 13=Partnerschaft; 14=Rechtsform ausländischen Rechts GnR; 15=Rechtsform ausländischen Rechts HRA; 16=Rechtsform ausländischen Rechts HRb; 17=Rechtsform ausländischen Rechts PR; 18=Seerechtliche Gesellschaft; 19=Versicherungsverein auf Gegenseitigkeit; 40=Anstalt öffentlichen Rechts; 46=Bergrechtliche Gesellschaft; 48=Körperschaft öffentlichen Rechts; 49= Europäische Genossenschaft (SCE); 51=Stiftung privaten Rechts; 52=Stiftung öffentlichen Rechts; 53=HRA sonstige Rechtsformen; 54=Sonstige juristische Person; 55=Einzelkaufmann/Einzelkauffrau
**Parameter:** *postleitzahl* (Optional)
Postleitzahl (Angaben nur zur Hauptniederlassung). Beispielsweise 90537 für Feucht. Zulässige Platzhalterzeichen sind \* und ? - wobei das Sternchen für beliebig viele (auch kein) Zeichen steht, das Fragezeichen hingegen für genau ein Zeichen.
**Parameter:** *ort* (Optional)
Ort (Angaben nur zur Hauptniederlassung). Beispielsweise Feucht. Zulässige Platzhalterzeichen sind \* und ? - wobei das Sternchen für beliebig viele (auch kein) Zeichen steht, das Fragezeichen hingegen für genau ein Zeichen.
**Parameter:** *strasse* (Optional)
Straße (Angaben nur zur Hauptniederlassung). Beispielsweise Teststraße 2. Zulässige Platzhalterzeichen sind \* und ? - wobei das Sternchen für beliebig viele (auch kein) Zeichen steht, das Fragezeichen hingegen für genau ein Zeichen.
### Installation with poetry
Example installation and execution with [poetry](https://python-poetry.org/):
```commandline
git clone https://github.com/bundesAPI/handelsregister.git
cd handelsregister
poetry install
poetry run python handelsregister.py -s "deutsche bahn" -so all
```
Run tests:
```commandline
poetry run python -m pytest
```
### Command-line Interface
Das CLI ist _work in progress_ und
```
usage: handelsregister.py [-h] [-d] [-f] -s SCHLAGWOERTER [-so {all,min,exact}]
A handelsregister CLI
options:
-h, --help show this help message and exit
-d, --debug Enable debug mode and activate logging
-f, --force Force a fresh pull and skip the cache
-s SCHLAGWOERTER, --schlagwoerter SCHLAGWOERTER
Search for the provided keywords
-so {all,min,exact}, --schlagwortOptionen {all,min,exact}
Keyword options: all=contain all keywords; min=contain at least one
keyword; exact=contain the exact company name.
```