Skip to content

The most important German APIs in a Python package.

License

Notifications You must be signed in to change notification settings

OptimiDEV/germany

 
 

Repository files navigation

PyPI version deutschland GitHub license

Lint Publish Python 🐍 distributions 📦 to PyPI and TestPyPI Run Python 🐍 tests

Germany

A Python package that gives you easy access to the most valuable datasets of Germany.

Installation

pip install deutschland

Supported Python versions

3.8 - 3.12

Tested on Linux, MacOS and Windows

Run Python 🐍 tests

Development

For development poetry version >=1.2.0 is required.

Geographic data

Fetch information about streets, house numbers, building outlines, …

from deutschland.geo import Geo
geo = Geo()
# top_right and bottom_left coordinates
data = geo.fetch([52.530116236589244, 13.426532801586827],
                 [52.50876180448243, 13.359631043007212])
print(data.keys())
# dict_keys(['Adresse', 'Barrierenlinie', 'Bauwerksflaeche', 'Bauwerkslinie', 'Bauwerkspunkt', 'Besondere_Flaeche', 'Besondere_Linie', 'Besonderer_Punkt', 'Gebaeudeflaeche', 'Gebaeudepunkt', 'Gewaesserflaeche', 'Gewaesserlinie', 'Grenze_Linie', 'Historischer_Punkt', 'Siedlungsflaeche', 'Vegetationslinie', 'Verkehrsflaeche', 'Verkehrslinie', 'Verkehrspunkt', 'Hintergrund'])

print(data["Adresse"][0])
# {'geometry': {'type': 'Point', 'coordinates': (13.422642946243286, 52.51500157651358)}, 'properties': {'postleitzahl': '10179', 'ort': 'Berlin', 'ortsteil': 'Mitte', 'strasse': 'Holzmarktstraße', 'hausnummer': '55'}, 'id': 0, 'type': 'Feature'}

For the detailed documentation of this API see here

The data is provided by the AdV SmartMapping. The team consists of participants from the German state surveying offices, the Federal Agency for Cartography and Geodesy (BKG), the German Federal Armed Forces (Bundeswehr ZGeoBW) and third parties from research and education.

Company Data

Federal Gazette (Bundesanzeiger)

Get financial reports for all german companies that are reporting to Bundesanzeiger. More

from deutschland.bundesanzeiger import Bundesanzeiger
ba = Bundesanzeiger()
# search term
data = ba.get_reports("Deutsche Bahn AG")
# returns a dictionary with all reports found as fulltext reports
print(data.keys())
# dict_keys(['Jahresabschluss zum Geschäftsjahr vom 01.01.2020 bis zum 31.12.2020', 'Konzernabschluss zum Geschäftsjahr vom 01.01.2020 bis zum 31.12.2020\nErgänzung der Veröffentlichung vom 04.06.2021',

Big thanks to Nico Duldhardt and Friedrich Eichenroth, who supported this implementation with their machine learning model.

Commercial register

The code for the Commercial register moved to this repo.

Consumer Protection Data

Food safety warning (Lebensmittelwarnung)

Get current product warnings provided by the german federal portal lebensmittelwarnung.de.

from deutschland.lebensmittelwarnung import Lebensmittelwarnung
lw = Lebensmittelwarnung()
# search by content type and region, see documetation for all available params
data = lw.get("lebensmittel", "berlin")
print(data)
# [{'id': 19601, 'guid': 'https://www.lebensmittelwarnung.de/bvl-lmw-de/detail/lebensmittel/19601', 'pubDate': 'Fri, 10 Feb 2017 12:28:45 +0000', 'imgSrc': 'https://www.lebensmittelwarnung.de/bvl-lmw-de/opensaga/attachment/979f8cd3-969e-4a6c-9a8e-4bdd61586cd4/data.jpg', 'title': 'Sidroga Bio Säuglings- und Kindertee', 'manufacturer': 'Lebensmittel', 'warning': 'Pyrrolizidinalkaloide', 'affectedStates': ['Baden-Württemberg', '...']}]

Federal Job Openings

NRW

VERENA

Get open substitute teaching positions in NRW from https://www.schulministerium.nrw.de/BiPo/Verena/angebote

from deutschland.verena import Verena
v = Verena()
data = v.get()
print(data)
# a full example data can be found at deutschland/verena/example.md
# [{ "school_id": "99999", "desc": "Eine Schule\nSchule der Sekundarstufe II\ndes Landkreis Schuling\n9999 Schulingen", "replacement_job_title": "Lehrkraft", "subjects": [ "Fach 1", "Fach 2" ], "comments": "Bemerkung zur Stelle: Testbemerkung", "duration": "01.01.2021 - 01.01.2022", ...} ...]

Autobahn

Get data from the Autobahn.

from deutschland import autobahn
from deutschland.autobahn.api import default_api

from pprint import pprint

autobahn_api_instance = default_api.DefaultApi()

try:
    # Auflistung aller Autobahnen
    api_response = autobahn_api_instance.list_autobahnen()
    pprint(api_response)

    # Details zu einer Ladestation
    station_id = "RUxFQ1RSSUNfQ0hBUkdJTkdfU1RBVElPTl9fMTczMzM="  # str |
    api_response = autobahn_api_instance.get_charging_station(station_id)
    pprint(api_response)

except autobahn.ApiException as e:
    print("Exception when calling DefaultApi->get_charging_station: %s\n" % e)

For the detailed documentation of this API see here

Presseportal

Not available for now due to changes in the API.

Auto-Generated API-Clients

Federal Council

For the detailed documentation of this API see here

federal parliament(Bundestag)

For the detailed documentation of this API see here

destatis

For the detailed documentation of this API see here

dwd

For the detailed documentation of this API see here

interpol

For the detailed documentation of this API see here

jobsearch

For the detailed documentation of this API see here

charging stations

For the detailed documentation of this API see here

mudab

For the detailed documentation of this API see here

Nina (also known as modular warning system(MoWaS))

For the detailed documentation of this API see here

police_brandenburg

For the detailed documentation of this API see here

risk_areas

For the detailed documentation of this API see here

smard

For the detailed documentation of this API see here

radiation_protection

For the detailed documentation of this API see here

travelwarning

For the detailed documentation of this API see here

customs(zoll)

For the detailed documentation of this API see here

About

The most important German APIs in a Python package.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 54.0%
  • Python 44.9%
  • Other 1.1%