Plot Multiple Addresses on a Map
Paste a list of addresses (one per line) or upload a CSV with address, label and category columns. Each address is geocoded one at a time, pinned on the map in its category color, and listed with latitude and longitude. Fix unmatched rows in place, then download the results as CSV, GeoJSON or KML.
Plot Multiple Addresses on a Map
Paste up to 200 addresses (one per line) or a CSV with address, label and category columns, then press Geocode & plot.
How to use the multiple-address map
- 1Paste or upload your addresses
Paste one address per line, or upload a CSV with an address column (or street, city, state and zip columns) plus optional label and category columns. Up to 200 rows per run.
- 2Geocode and plot
Press Geocode & plot. Addresses are looked up one at a time with a progress bar; pins appear in their category colors and the map zooms to fit them. Press Cancel to stop.
- 3Fix unmatched rows
Rows marked No match have Edit and Retry buttons. Add the city and state or remove suite numbers, then press Enter to geocode the row again.
- 4Export the results
Download CSV with latitude, longitude and match status for every row, or GeoJSON or KML with one point per matched address.
How to plot multiple addresses on a map
Putting a list of addresses on one map is one of the most common mapping jobs, and it usually starts in a spreadsheet: a list of customers, job sites, store branches, open houses or volunteer homes. Paid tools such as Maptive, BatchGeo or EasyMapMaker do this behind a sign-up form. This page does it for free, in your browser, for up to 200 addresses at a time.
- Paste or upload your list. Put one address per line in the box, or upload a CSV file exported from Excel, Google Sheets or your CRM. A header row is optional for plain lists and required for CSV files with extra columns.
- Press “Geocode & plot”. Each address is turned into latitude and longitude (this step is called geocoding). The progress bar shows how many rows are done. You can cancel at any time and continue later.
- Check the results. Pins appear on the map as they are found and the map zooms to fit all of them. The table lists every row with its coordinates and how precise the match is. Rows that did not match are highlighted, with Edit and Retry buttons.
- Download. Save the results as CSV (to put the coordinates back into your spreadsheet), GeoJSON (for web maps and GIS software) or KML (for Google Earth and Google My Maps).
Click any pin to see its label, the address you typed, its category and its coordinates. Clicking a row in the results table flies the map to that pin, which is the quickest way to check a suspicious match.
If your spreadsheet already has latitude and longitude columns you don't need geocoding at all: use the CSV to map tool, which plots coordinates directly and has no row-by-row lookups. For a single address, the address to coordinates converter shows several candidate matches so you can pick the right one.
Supported formats: address lists, CSV and spreadsheets
The tool reads three shapes of input and works out which one you pasted from the first line.
1. A plain list, one address per line
The simplest input. Anything that does not look like a CSV header is treated as an address list. Blank lines are skipped.
1600 Pennsylvania Ave NW, Washington, DC 20500
350 5th Ave, New York, NY 10118
233 S Wacker Dr, Chicago, IL 606062. A CSV with a single address column
If the first line contains a column called address (or full address, street address or location), the file is read as CSV. Two optional columns are recognized: a label (label, name, title, store, customer or company) and a category (category, type, group, segment or status). Other columns are ignored. Wrap any value that contains a comma in double quotes, which Excel and Google Sheets do automatically when they export CSV.
name,address,category
Downtown store,"120 Main St, Boise, ID 83702",Retail
Warehouse,"4500 W Franklin Rd, Meridian, ID 83642",Depot3. A CSV with separate street, city, state and ZIP columns
Many CRM and mailing-list exports split the address into parts. If the header has street (or address1), city, state and zip columns, they are joined into one address before geocoding. A country column is added if present. ZIP codes that lost their leading zero in Excel (a Boston ZIP 02108 saved as 2108) are padded back to five digits.
customer,street,city,state,zip,segment
Acme Co,25 Main St,Hartford,CT,6103,Gold
Beta LLC,1 Elm St,Portland,ME,04101,SilverTab-separated text (what you get when you copy cells straight out of a spreadsheet) and semicolon-separated files (common in Europe) are detected too. Files should be UTF-8; if accented characters look garbled, re-export from your spreadsheet as “CSV UTF-8”.
Colors, labels and categories
Every distinct value in the category column gets its own pin color, assigned in the order the values first appear. The palette starts with the Okabe–Ito colors, which stay distinguishable for people with the most common forms of color blindness. A legend under the map shows each category with its count of plotted pins. Rows with an empty category are grouped as “Uncategorized”.
Up to ten categories get distinct colors; after that the colors repeat, so if you have dozens of categories, consider grouping them (for example by region or by sales tier) before plotting. The label column is used as the pin's popup title and as the placemark name in the KML export. Without a label, the address itself is used.
If you need a polished, presentation-ready map with a custom legend title, export the GeoJSON and open it in the map with legend maker, or add pins by hand with the pin drop map.
Examples of mapping multiple locations
Sales territory review
A regional manager exports 180 active accounts from a CRM with columns company, street, city, state, zip, rep. Renaming rep to category colors each pin by sales rep. Overlaps between reps, and gaps where no one is covering an area, are obvious within seconds. The CSV export then carries latitude and longitude back into the CRM for future use.
Open-house or service-call day
A real-estate agent pastes eight listing addresses, one per line, to see which ones cluster together. To put them in a sensible driving order, copy the coordinates into the multi-stop route distance tool, or compare every pair at once with the distance matrix calculator.
Store locations for a website
A retailer maps 40 branches with a type column (Store, Outlet, Pickup point), checks every pin, and downloads GeoJSON for its store-locator widget. Because the coordinates come from OpenStreetMap, the data can be reused with attribution under the ODbL.
Event and volunteer planning
A nonprofit maps volunteer home ZIP codes and addresses to choose a central meeting place. Once the pins are plotted, the geographic center finder gives the balance point of the group, and the radius map tool shows who lives within 10 or 25 miles of it.
Exporting your map: CSV, GeoJSON and KML
- CSV contains every row, matched or not, with the columns
row, label, category, input_address, status, latitude, longitude, matched_address. Coordinates have six decimals (about 10 cm of resolution, far finer than the geocoding itself). Open it in Excel or Google Sheets and look up therownumber to join it back to your original sheet. - GeoJSON is a FeatureCollection of Point features in WGS84 longitude/latitude order, as RFC 7946 requires. Only matched rows are included. It loads directly into QGIS, Mapbox, Leaflet, MapLibre, ArcGIS Online and our GeoJSON viewer.
- KML creates one placemark per matched address with a colored icon per category. Import it into Google Earth, or into Google My Maps via “Import” on a layer. You can preview it in the KML viewer.
The “copy” button in the result headline copies the same CSV text to your clipboard, which is handy for pasting straight into a spreadsheet without saving a file.
Accuracy and geocoding limits
Geocoding is a lookup against a database of known addresses, streets and places. This tool uses Photon, a free geocoder built on OpenStreetMap data. It is good at well-formed street addresses in towns and cities, and at named places. It is weaker where OpenStreetMap has not mapped house numbers, which is common in rural areas and some suburbs. In those cases it falls back to the street, the ZIP code or the town, and the Match column tells you which happened.
| Match level | What it means | Typical position error | Good enough for |
|---|---|---|---|
| Address | The geocoder found the building number on that street. | Usually within 10–50 m of the front door | Store locators, delivery stops, client visits |
| Street (no house number) | The street was found, but not your house number on it. | Somewhere along the street, often 100 m–1 km off | Rough territory planning only |
| ZIP area | Only the ZIP code was recognized. | Center of the ZIP area, 1–10 km off in rural ZIPs | Counting customers per area |
| Place / area | Only a city, county or landmark name matched. | City center, can be many km off | Regional overviews |
The error ranges above are typical figures, not guarantees. A pin can land on the right street but the wrong block when a house number is interpolated, or on the right building's centroid rather than its entrance. For anything where a few meters matter (property lines, emergency dispatch, utility work), verify each point against an authoritative source such as a county parcel map.
Why the 200-row limit and the pause between lookups?
Photon is a free public service run by komoot. Its fair-use policy asks clients not to flood it with parallel requests, so this tool sends one request at a time with a short pause (about a third of a second) between them. That keeps a 200-row batch to roughly two minutes. For thousands of addresses, split the list into batches of 200, or use a commercial geocoder with a bulk API and a service agreement.
Privacy
Your file is read in the browser. The only thing that leaves your device is each address string, sent to the Photon geocoder to be looked up. Labels, categories and other columns are never sent. Don't include personal names inside the address field if that matters to you; keep them in the label column instead.
Fixing addresses that do not match
When a row shows “No match”, click Edit, correct the text and press Enter. The most common fixes are:
- Add the city and state. “100 Main St” exists in thousands of towns. Without a city the geocoder picks one at random or fails.
- Remove suite, unit and floor numbers. “Suite 400”, “Apt 3B” or “Floor 2” often confuse the match and don't change the building location anyway.
- Drop PO boxes. A PO box is at the post office, not at the customer, so it can't be plotted meaningfully. Use the physical address if you have it.
- Spell out or simplify unusual abbreviations. Standard ones (St, Ave, Rd, NW) are fine; internal codes, building nicknames or “c/o” lines are not.
- Try the ZIP code alone if you only need a rough location: “83702, USA” plots the center of the ZIP area.
Retry re-sends the address without using the cached answer, which helps after a temporary network error. If a pin is matched but lands in the wrong place (for example, a same-named street in another state), add the state or ZIP code to that line of your list and plot again, or check the candidates one by one in the address to coordinates tool.
- Up to 200 addresses per run; longer lists are cut off and you are told how many rows were skipped.
- Only the top-ranked geocoder match is plotted. Ambiguous addresses without a city or state can land in the wrong town.
- House-number coverage depends on OpenStreetMap and is patchy in many rural areas, where pins fall back to the street or town.
- Not suitable for legal boundaries, emergency dispatch or any use where a position error of tens of meters matters.
- Results are not saved on our servers. Download the CSV, GeoJSON or KML before you close the page.
Other ways to map multiple locations
This tool is built for one job: turning a list of addresses into pins and coordinates quickly, without an account. Depending on what you need next, another approach may suit you better:
- Google My Maps can import a spreadsheet and geocode it with Google's data, which has better house-number coverage in some rural areas. It needs a Google account, and the map lives in your Google Drive.
- Desktop GIS such as QGIS can geocode with plugins and style thousands of points, but takes time to learn. Our GeoJSON export opens in QGIS directly, so you can start here and continue there.
- Paid batch geocoders (commercial address APIs) handle tens of thousands of rows, return a match-quality score per row, and come with service agreements. They make sense for recurring jobs or for data you must be able to audit.
- Coordinates you already have need no geocoding: paste them into the CSV to map tool, or drop pins by hand on the pin drop map when there are only a few.
A practical workflow for a list of a few hundred addresses is: plot it here, fix the unmatched rows, export CSV, and keep the latitude and longitude columns in your master spreadsheet. Next time you only need the CSV to map tool, and no lookups are repeated.
Quick facts about the multiple-address map
| Fact | Value | Notes |
|---|---|---|
| Rows per Run | Up to 200 | Longer lists are cut off with a notice |
| Geocoder | Photon (OpenStreetMap) | Top-ranked match per address |
| Input Formats | List, CSV, TSV | Address column or street/city/state/zip columns |
| Exports | CSV, GeoJSON, KML | CSV includes unmatched rows |
| Speed | About 2 to 3 rows per second | Sequential with a short pause to respect fair use |
| Account | None | Parsing and exports run in your browser |
Edge cases and exceptions
Same Street Name in Many Towns
An address without a city or state, such as "100 Main St", can match the wrong town. Always include city and state, or a ZIP code.
Rural Addresses Without House Numbers
Where OpenStreetMap lacks house numbers, the match falls back to the street or town, and the Match column says so.
Excel Dropped the Leading Zero
New England ZIP codes such as 02108 often become 2108 in spreadsheets. Separate zip columns with 3 or 4 digits are padded back to 5.
The multiple-address map: worked examples
Map Sales Accounts by Rep
Scenario: A CSV of 180 accounts with company, street, city, state, zip and a rep column renamed to category.
Outcome: Each rep gets a pin color, overlaps and gaps are visible at once, and the CSV export adds coordinates for the CRM.
Plan Open-House Stops
Scenario: Eight listing addresses pasted one per line.
Outcome: All eight are plotted and fitted on the map; the coordinates go into the multi-stop route tool to order the visits.
Frequently asked questions about the multiple-address map
How do I plot multiple addresses on a map for free?
Paste your addresses one per line, or upload a CSV with an address column, and press Geocode & plot. Each address is converted to coordinates and pinned on the map. No account is needed.
How many addresses can I map at once?
Up to 200 per run. The free geocoder is queried one address at a time with a short pause, so 200 rows take about two minutes. Split longer lists into batches of 200.
What CSV columns does the tool recognize?
An address column (address, full address, street address or location), or separate street, city, state and zip columns. Optional label (label, name, title, store, customer, company) and category (category, type, group, segment, status) columns are used for popups and pin colors.
Can I color pins by category?
Yes. Every distinct value in the category column gets its own color from a color-blind-friendly palette, and a legend under the map shows the count per category.
Which geocoder does it use?
Photon, a free geocoder by komoot built on OpenStreetMap data. The top-ranked match for each address is plotted.
How accurate is batch geocoding?
Matches with a house number are usually within tens of meters. Street-, ZIP- or town-level fallbacks can be hundreds of meters to several kilometers off. The Match column shows the level for every row.
What happens to addresses that do not match?
They are highlighted in the results table with Edit and Retry buttons. Edit the text, for example by adding the city and state, and press Enter to geocode that row again.
Can I stop a batch halfway?
Yes. Press Cancel. Rows already processed stay on the map, and the remaining rows stay pending until you press Retry unmatched & pending.
Can I export the results?
Yes. Download CSV with every row and its latitude, longitude and match status, GeoJSON with one point per matched address, or KML with category-colored placemarks.
Can I open the KML in Google Earth or Google My Maps?
Yes. Open the KML file in Google Earth, or import it into a Google My Maps layer. Each placemark keeps its label, address and category.
Is my address list uploaded to a server?
The file is read in your browser. Only each address string is sent to the Photon geocoder to be looked up; labels, categories and other columns never leave your device.
My spreadsheet already has latitude and longitude. Should I use this tool?
No geocoding is needed then. Use the CSV to map tool, which plots coordinate columns directly and is faster.
Why did a pin land in the wrong state?
The address was ambiguous, usually a common street name without a city or state. Add the city, state or ZIP code to that line and plot again.
Can I geocode PO boxes?
Not meaningfully. A PO box is at a post office, not at the customer, so use a physical street address instead.
Does it work for addresses outside the United States?
Yes. Photon covers the whole world. Include the city and country for best results, and keep addresses in the local format.
Can I paste addresses straight from Excel or Google Sheets?
Yes. Copied cells arrive as tab-separated text, which is detected automatically. Include the header row if you copy more than one column.
Keep exploring
What to do with this result
- CSV to Map VisualizerUse this to plot a CSV file on a map.
- Address to Coordinates Converter (Lat/Long & UTM)Use this to convert an address to coordinates.
- Pin Drop Map — Drop Pins & Save LocationsUse this to drop pins on a map.
- Multi-Stop Route Distance CalculatorUse this to total a multi-stop route.
- Distance Matrix Calculator (Pairwise Distance Table)Use this to build a distance matrix.
- Geographic Center Finder (Centroid & Center of Mass)Use this to find a geographic center.