Csv guides
Geocoding a list of addresses without handing it over
Turning addresses into coordinates is the one job that cannot be done locally. What actually gets sent, what stays, how to cut the list down first, and why the key is yours.
Reviewed and updated
The one tool here that sends anything
Every other tool on this site runs in your browser because it can. Compressing a PDF, sorting a CSV, removing a background: all of them are calculations over a file you already have.
Geocoding is not a calculation. It is a lookup against a database of every addressable place, maintained by organisations that survey them, and that database is tens of gigabytes before an index goes anywhere near it. No browser tab holds it. A tool that claims to geocode locally is either resolving postcodes to a town centre, or it is not doing what you think.
So Address to coordinates sends something, and the honest thing is to be exact about what.
What is sent and what is not
The column you name as the address, one row at a time, to the geocoder you hold the key for.
Nothing else. The names, the order values, the phone numbers, the internal identifiers, the notes field somebody put a complaint in: those stay in the browser and are joined back to the returned coordinates locally. The file is never uploaded, and the geocoder receives a list of addresses with no idea what they are attached to.
That distinction matters more than it sounds. “We upload your CSV” and “we send the address column” are different in kind, not degree: one hands over a linked record and the other hands over a location.
Bring your own key, and why that is the point
The key is yours because the relationship should be yours.
With a shared key, we would be the party with the account, your addresses would appear in our logs, and their retention policy would be something we agreed to on your behalf. With your own key the request is yours: the terms are ones you read, the record of what was looked up sits in your account, and there is no middle party holding a copy.
It is less convenient. It is the only arrangement where the privacy claim is actually about you.
Send less, which is the real control
The strongest privacy measure here is not a setting. It is sending fewer, shorter addresses, and it is done before the geocoding starts.
Deduplicate. A customer list holds the same delivery address several times, sometimes hundreds of times for a depot. Removing duplicates first cuts both the exposure and the bill, and coordinates for one address are coordinates for all of its rows.
Filter to what you need. If the map is only of active accounts in one region, filter first. A row you never plot is a row you sent for nothing.
Cut the column down. Extract just the address fields and leave the rest behind. A geocoder uses street, town and postcode; a name in the address column is a name you disclosed for no benefit at all.
Between them these three routinely take a list of forty thousand rows down to a few thousand distinct addresses.
What comes back, and how good it is
Coordinates and a match quality. The quality is the part people skip and the part that decides whether the map is worth anything.
An exact match to a building is one thing. A match to the street, the postcode district, or the town centre is another, and a geocoder that cannot find an address will often return the centroid of something larger rather than nothing at all. Plotted without looking, that puts a cluster of pins on a town hall and it looks like real data.
So check the totals the tool reports before using the output, and treat anything below a full match as an address to look at rather than a coordinate to trust.
Coordinates are personal data too
It is easy to treat the output as a technical artefact and it is not. A latitude and longitude to six decimal places identifies a building, and a list of them attached to customer records is a list of where those people live.
Two things follow. The output file deserves the same handling as the input, which means not emailing it around as an attachment because it looks like numbers. And the precision is worth thinking about: a map of regional demand does not need six decimal places, and rounding to three - roughly a hundred metres - keeps the map and loses the doorstep.
Nothing in the tool does that rounding for you, because how much precision a job needs is a judgement about the job. It is a column operation on the result, and it takes a minute.
When not to use this at all
Two cases where geocoding a list is the wrong move.
If you need one address, look it up in a map application. The batch tool exists for the case where doing it by hand is impractical, and forty rows is not that.
And if the addresses are not yours to send - a list acquired from somewhere else, a set of records you hold under a narrow purpose - then the question is not which geocoder to use. It is whether looking them up is a thing you are entitled to do, and that is a question no tool setting answers.
Clean the file first
Addresses are the messiest column in most datasets: trailing whitespace, missing postcodes, two formats in one file because two systems fed it, and the classic CSV problem of a comma inside an unquoted field splitting one address into two.
Cleaning the CSV before importing it covers this properly, and doing it first improves the match rate more than any option in the geocoder will.
The FileGizmo way
Free tools. Never uploaded.
Good to know
Frequently asked questions
Why can this not run locally like everything else?
Because it is a lookup, not a calculation. Turning a street address into coordinates means consulting a database of hundreds of millions of addresses, kept current by people who survey them, and that database is tens of gigabytes before any index. Nothing in a browser tab can hold it, and a tool claiming otherwise is either wrong or resolving nothing more than postcodes.
What exactly leaves my machine?
The contents of the one column you name as the address, one row at a time, to the geocoder you hold the key for. Names, order values, phone numbers and every other column stay in the browser and are joined back to the results locally. The file itself is never uploaded.
Why do I have to bring my own key?
Because a shared key would make us the party with the relationship to the geocoder, and your addresses would be in our account's logs. With your key the request is yours: their terms apply to you, their retention policy is one you agreed to, and there is no middle party holding a record of what you looked up.
How do I send less?
Deduplicate first, since a customer list usually holds each address several times. Filter to the rows you actually need. And cut the column down to what a geocoder uses, which is street, town and postcode - a name in the address field is a name you sent for no benefit.