Guides
Short recipes for common tasks and a page for each country GridPin covers. Narrow the list by where you run it, what you do or who it is for.
Start here
Geocode a CSV without an API key
A spreadsheet of addresses in, coordinates out, on your own machine.
A local geocoding server, Nominatim-compatible
One command turns a country file into an HTTP geocoder.
All guides
Where you run it Python Command line SQL R, Spark, BI JavaScript Server, Docker Self-hosted apps AI agents Browser
What you do Geocode addresses Point to address Clean and compare Take addresses in Mail and payments Places and zones Leave a paid API Run it yourself Use the data itself Privacy, research Know the limits
Who it is for Health Public sector Retail, e-commerce Logistics, field work Utilities Research Websites, help desks Home, photos
Geocode addresses
A list or a column of addresses in, points out.
- Offline geocoding in Python
- Geocode a CSV without an API key Python SQL
- Geocode inside DuckDB SQL
- Geocoding in GeoPandas Python
- Offline geocoding in R
- Geocoding for AI agents (MCP)
- Geocoding incident addresses New Command line
- Geocode in Spark and Databricks
- Maps in BI tools without a geocoding service New Command line
- Offline geocoding in Node.js JavaScript
- Geocoding in polars New Python
- Geocode inside SQLite and Datasette New SQL
- Geocode a CSV in the browser, no terminal New Server, Docker
Point to address
A GPS point in, the nearest address and its distance out.
- Reverse geocoding to street level Python Command line
- Reverse geocoding for fleet tracking Self-hosted apps Server, Docker
- Street-level places for self-hosted photos New Command line
- 311 requests and permits New Command line
- EV charging: an address for every charger New Command line
- Addresses for Home Assistant automations New Self-hosted apps
Clean and compare
Find what does not exist, what is written twice and what has changed.
- Utility billing: clean the service addresses New Command line
- Store listings: one address everywhere New Command line
- Find duplicate addresses in a customer list Pro Command line
- Audit an address database before migration Pro New Command line
- What changed between two address files Pro Command line
- Find the weak rows and review them by hand Pro New Command line
- Clean a customer address list in an afternoon Pro New Command line
Take addresses in
Addresses as people give them: in a form field, an email or a ticket.
Mail and payments
Print an address the way the post or a payment message wants it.
Places and zones
Your depots, sites and zones beside the address data of a country.
- Field service: check the address, cut the rounds New Command line
- School enrolment: home address to zone New Command line
- Clinical trials: patients to sites, privately New Command line
- Your own place names: HQ, depot 3, store 117 New Command line Server, Docker
- Nearest warehouse and delivery zones New Command line
Leave a paid API
What changes when the geocoder is a file on your disk instead of a bill.
Run it yourself
A geocoder on your own machine, cluster or network, with no link to the outside.
- An alternative to self-hosting Nominatim Server, Docker Python
- A local geocoding server, Nominatim-compatible Command line
- Offline geocoding in Docker
- Self-host a geocoder without 128 GB of RAM Server, Docker
- Fire and EMS: geocoding without a link New Server, Docker Command line
- Hit 429 on public Nominatim? Use your own server Python
- Seven clients, one line each Server, Docker Python JavaScript
- Fully offline, in Kubernetes, with metrics Pro New Server, Docker
- Self-hosted travel planners: point TREK at your geocoder Server, Docker
- Sulu CMS with a local geocoder Self-hosted apps Server, Docker
- API changelog and the /v1 policy Server, Docker Python
Use the data itself
Read, cut and sample the address data of a country directly.
Privacy, research
Where the addresses go, what to publish, how to cite a run.
Know the limits
What a file-based geocoder does well, what it does not, and why.