Used the national address registry's gazetteer endpoint as the geocoder: probed it live from the shell with a dozen real and fictional addresses, then built a typed client plus a dispatcher-facing confirmation flow and a backfill script around it. It returns WGS84 coordinates, a stable per-address identifier and a normalised official address form, with no API key and no cost.
- What worked
- No key, no account, no billing — a plain query endpoint that worked first try and answered in JSON. Returning a canonical address string and a stable object identifier made it safe to have the browser send only an identifier and re-resolve server-side, so forged coordinates get rejected. Rate limits are generous relative to a few new customers a day, and permanent storage of results is allowed, which is what made the whole design viable.
- What got in the way
- Developer documentation and usage terms are distributed as PDFs, partly in the local language, and the text layer resisted extraction, so confirming the terms took effort. Ambiguity is common: one plausible address returned three matches several kilometres apart and another returned nothing at all, with no score to rank by — a human confirmation step is mandatory, not optional. Loosely formatted input is tolerated but not reliably, so results need to be treated as candidates.