Blog
Browse Geocoding Tutorials, Guides & Updates
PHP Geocoding API Tutorial: Guzzle Pools and Production Patterns
PHP runs more geocoding workloads than the conference talks suggest. Magento and Shopware stores normalising checkout addresses, Laravel listing aggregators ingesting MLS feeds, WordPress directories with a million POIs, marketing-automation tools that want a lat,lng next to every CRM record. The language is everywhere this work actually happens, and the right tool for the HTTP layer has not cha...
| May 06, 2026
Read PHP Geocoding API Tutorial: Guzzle Pools and...
Go Geocoding Tutorial: Goroutines, Bounded Concurrency, and Backoff
Go is the language to reach for when you want concurrency without async/await ceremony. Goroutines are 2 KB stacks, channels are typed pipes, and the standard library net/http is good enough for production from day one. There is no event loop to learn, no await keyword to scatter through every function, and no colored-function problem. You write straight-line code, and you fan it out with go...
| May 05, 2026
Read Go Geocoding Tutorial: Goroutines, Bounded Co...
Geocoding UK Addresses: Postcodes, UPRN, and Edge Cases
UK addresses look superficially similar to US addresses — house number, street, town, postcode — and that surface similarity is exactly what wrecks pipelines built by teams whose default mental model was forged in North America. The UK does not work like the US. The postcode is not a coarse zone; for a meaningful slice of the country it identifies a single building. People search by postcode alone...
| May 04, 2026
Read Geocoding UK Addresses: Postcodes, UPRN, and...
HIPAA-Compliant Geocoding: no_record Patterns and BAA Considerations
A patient's home address, on its own, is just a string. Tied to a name, a diagnosis, a member ID, or any other identifier of an individual receiving care, it becomes Protected Health Information under HIPAA. Geocoding that string — turning it into a latitude and longitude — passes it through a third-party processor. That is the part most engineering teams underweight, and it is the part compliance...
| May 03, 2026
Read HIPAA-Compliant Geocoding: no_record Patterns...
How to Cache Geocoding Results: TTL, Keys, and 90% Cost Reduction
A million geocoding lookups per month at $0.50 per thousand is $500. With a 90% cache hit rate, that bill drops to $50. With a 95% hit rate it drops to $25. Caching is not a nice-to-have at the bottom of a performance checklist — it is the single largest lever in geocoding economics, and most teams leave it half-pulled. This post is the practical version: cache key design, TTL strategies, the actu...
| May 02, 2026
Read How to Cache Geocoding Results: TTL, Keys, an...
Benchmarking Geocoding APIs: Methodology, Pitfalls, and Honest Numbers
"I ran 1,000 addresses through 5 geocoders, here's the winner" is, almost without exception, the wrong methodology. The post that follows will show beautiful charts. The numbers will be precise to two decimals. The conclusion will be confident. And it will be wrong, because at least three load-bearing assumptions in the experiment were never examined. The three assumptions, in order of how much da...
| May 01, 2026
Read Benchmarking Geocoding APIs: Methodology, Pit...
Geocoding 1 Million Addresses: From 8 Hours to 12 Minutes
A logistics customer ran a nightly geocode of roughly one million delivery addresses. The job started after the 22:00 cutoff for next-day routing and was supposed to finish before drivers logged in at 06:00. For months, it usually did. Then volume crept up, the job started bleeding into the morning, and one bad night it finished at 09:15 — by which point dispatch had already cut routes by hand. Th...
| Apr 30, 2026
Read Geocoding 1 Million Addresses: From 8 Hours t...
Streaming Geocoding at Scale: Backpressure, Memory, and Throughput
The difference between geocoding 100,000 rows on your laptop and 100,000,000 rows in production is one principle: never load the whole file. Stream it. Backpressure it. Bounded buffers everywhere. Get this wrong and your worker either OOMs at 3am or quietly thrashes the page file at 200 rows per minute. Get it right and the same 1GB worker that crashes on a naive script will chew through a 50GB CS...
By CSV2GEO Team
| Updated Apr 28, 2026
Read Streaming Geocoding at Scale: Backpressure, M...
Python Geocoding API Tutorial: Async, Retries, and a 100K-Row CSV Pipeline
This is a working Python tutorial for geocoding addresses through a REST API. Every snippet in this post was written, copy-pasted into a file, and executed against the live API on a clean Python 3.11 install before publishing. Two dependencies ( httpx , aiofiles ) — no SDK, no framework, no magic. By the end of the post you will have a script that streams a CSV of any size, geocodes its rows conc...
| Updated Apr 27, 2026
Read Python Geocoding API Tutorial: Async, Retries...
Node.js Geocoding API Tutorial: Concurrency, Retries, and CSV Streaming
This is a working Node.js tutorial for geocoding addresses through a REST API. The code in this post was written, copy-pasted into files, and executed before publishing. Every snippet runs on a clean Node 22 install with two dependencies (p-limit, csv-parse). No frameworks, no SDK, no magic. What you will end up with by the end of the post: a script that reads a CSV of addresses, geocodes them con...
| Apr 26, 2026
Read Node.js Geocoding API Tutorial: Concurrency,...