Geocode German addresses offline
One file for Germany without Bavaria (15 of 16 Länder), read locally. No server, no API key, and the addresses you geocode never leave your machine.
Get started
The file for Germany is 213 MB and holds 19.27 million addresses from Overture Maps and OpenAddresses (15 of 16 Länder). Download it once, checked against the signed release; every query after that runs on your machine, with no API key and no rate limit.
$ pip install gridpin-mcp # includes the engine $ gridpin-fetch de # Germany, 213 MB, verified download
import gridpin
from gridpin_mcp import sheets
g = gridpin.Geocoder(str(sheets.download("de"))) # no-op once downloaded
g.geocode("Jungfernstieg 1, 20095 Hamburg", 1)
# -> house, Jungfernstieg 1, Hamburg
g.geocode("Römerberg 23, Frankfurt am Main", 1)
# -> house, Römerberg 23, Frankfurt am Main
g.geocode("Unter den Linden 77, 10117 Berlin", 1)
# -> house, Unter den Linden 77, Mitte
Berlin addresses are recorded by district (Mitte, Charlottenburg and so on), so give the postcode with a Berlin address.
Bavaria is not covered. Bavarian queries typically return a distant same-named address with low confidence, less often an empty answer; neither means the address was found. Check confidence and the municipality in the answer.
How often it finds the right house, compared with Nominatim and Photon on independent truth: benchmark. Try it without installing: the live demo (pick Germany in the list), or the Colab notebook (set COUNTRY = "de").