Upload a CSV with ZIP codes, postal codes or street addresses to plot multiple points on a map — no API key or account required. Works with coordinates too.
Transform Your Spreadsheet Data into Interactive Maps
In today's data-driven world, location has emerged as one of the most critical dimensions for understanding patterns, making informed decisions, and gaining competitive advantages. The ability to transform raw addresses, postal codes, and coordinates into meaningful visual insights represents a fundamental shift in how organisations approach data analysis.
Geocoding — the process of converting postal codes and addresses into precise geographic coordinates — unlocks the hidden spatial relationships within your data. What appears as simple text in a spreadsheet becomes powerful location intelligence when plotted on a map. This transformation enables businesses to visualise customer distributions, identify service gaps, optimise logistics routes, and discover market opportunities that would otherwise remain invisible in traditional tables and charts.
How to Prepare Your Data
- Clean addresses — remove extra spaces, standardise abbreviations (St not Street), correct misspellings.
- Separate components — split address, city, state, and ZIP into separate columns for best accuracy.
- Add a country column — essential for international datasets; use ISO codes (US, GB, DE, FR, JP).
- Standardise postal codes — use consistent formatting with or without spaces.
- Use decimal degrees for coordinates — not degrees/minutes/seconds; latitude −90 to 90, longitude −180 to 180.
Watch: ZIP Code Mapper in Under a Minute
Prefer to watch instead of read? This short walkthrough covers uploading a list of addresses or ZIP codes, geocoding them, and viewing the results on the map.
Step-by-Step Screenshots

Step 1
Tool Opens with Map and Sidebar
The ZIP Code Mapper loads showing a world map on the right and a four-section sidebar on the left. The sidebar guides you through: uploading data, choosing a plotting method, styling your points, and exporting results. Two sample CSV buttons let you download example files right away.

Step 2
Upload Your CSV File
Click "Browse or drop CSV" in the Upload section, or drag a CSV file directly onto the upload zone. Your data never leaves your browser — processing is 100% local. The tool accepts CSV files up to 100 records with any column names.

Step 3
File Loads and Columns are Detected
After upload, the sidebar shows the record count and a success message. Column auto-detection tries to identify latitude, longitude, postal code, and country fields automatically. If your column names are non-standard, the dropdowns let you select manually.

Step 4
Plot via Coordinates Tab
In the "Coordinates" plotting mode, select your latitude and longitude columns from the dropdowns then click "Plot Points on Map". All valid rows are plotted as orange circle markers. The map auto-zooms to fit all points. Invalid coordinate rows are skipped silently. This is the fastest way to plot multiple points on a map at once.

Step 5
Click Any Point for Data Popup
Click any orange circle marker to open a popup with all the data from that CSV row. Every column from your file is shown in the popup — making it easy to identify records by any attribute. The popup works in both coordinate and geocode plotting modes.

Step 6
Switch to Geocode Tab
Click "📮 Geocode" to switch to postal code mode. Select the column containing your ZIP codes or addresses from the dropdown. Optionally select a country column to improve geocoding accuracy — especially important for international datasets.

Step 7
Geocoding Runs with Progress Bar
Click "Start Geocoding" and watch the progress bar fill as each postal code is geocoded one by one. The count updates in real time. Processing is sequential with a short delay to respect Nominatim rate limits. A "Cancel" button stops the process at any time.

Step 8
Geocoded Points Appear on Map
Each successfully geocoded address or postal code appears as an orange dot on the map. The popup for geocoded points shows the full OpenStreetMap display name along with all your original CSV data. Points that could not be geocoded are skipped and counted in the status message.

Step 9
Apply Colour Gradient by Numeric Field
In the Styling section, pick a colour from the six swatches, then choose a numeric column from the "Gradient by numeric field" dropdown and click "Apply Gradient". Points re-colour from light to dark based on relative value — creating a simple heat-map effect.

Step 10
Export as GeoJSON or KML
Click "Export GeoJSON" to download a standard GeoJSON file compatible with QGIS, ArcGIS, Mapbox, and most modern GIS tools. Click "Export KML" to download a Google Earth format file with your colour symbology preserved. Both formats include all your original CSV columns as feature properties.
Step-by-Step Guide
Method 1 — Plot with Coordinates
Use this method when your CSV already contains numeric latitude and longitude columns.
- Prepare your file — CSV with a header row; each row one location; include lat and lng columns in decimal degrees.
- Upload — drag the file onto the upload zone or click "Browse or drop CSV".
- Select columns — common names (lat, latitude, y, lng, longitude, x) are detected automatically; override using the dropdowns.
- Click "Plot Points on Map" — all valid rows appear as coloured circle markers; the map zooms to fit.
- Click any marker — a popup shows all your CSV data for that row.
Method 2 — Geocode Postal Codes or Addresses
Use this method when your CSV has ZIP codes, postal codes, or street addresses but no coordinates. This is the built-in software to plot locations on map when you only have text, not coordinates.
- Upload your CSV — the file should have a column of postal codes or addresses.
- Switch to the "📮 Geocode" tab in the Plotting Method section.
- Select the postal/address column — names like "zip", "postal", "postcode", "address" are auto-detected.
- Add a country column (recommended) — improves accuracy, especially for international datasets.
- Click "Start Geocoding" — a progress bar tracks each lookup; geocoded points appear on the map in real time.
- Review results — the status bar shows how many records were successfully geocoded.
Styling Your Map
Choose from six colour swatches in the Styling section. For data with numeric values (sales, counts, scores), select the numeric column from the "Gradient by numeric field" dropdown and click "Apply Gradient" — markers re-colour from light to dark based on relative value, creating a heat-map effect without any additional software.
Exporting Results
Once points are plotted, export your data in two formats:
- GeoJSON — standard open format readable by QGIS, ArcGIS, Mapbox, Leaflet, and D3.js. Includes all CSV columns as feature properties.
- KML — Google Earth format with colour symbology preserved. Opens directly in Google Earth, QGIS, and most mapping applications.
Common Use Cases
🏪
Customer Analysis
Plot zip codes on map to visualise customer concentration, identify high-density zones, and balance sales territories.
📍
Event Planning
Visualise attendee addresses to choose a central venue, plan transport links, and understand geographic reach.
📊
Market Research
Combine ZIP code data with demographic or sales figures and apply gradient colouring to reveal high-value markets.
🎓
Research & Academia
Map survey respondents, field data collection sites, or study populations by postal code for geographic analysis.
🚚
Logistics Planning
Map delivery or pickup points by postal district to optimise routes and define service coverage areas.
🏥
Healthcare Mapping
Plot postal codes on map to understand patient catchment areas, identify underserved regions, and plan facility expansion.
Geocoding Service Comparison
| Service | Free Tier | API Key | Accuracy | Rate Limit |
|---|
| OpenStreetMap Nominatim | Unlimited | Not required | Street level | 1 req/sec |
| Google Maps Geocoding | 40,000 req/month | Required | Rooftop level | High |
| Mapbox Geocoding | 100,000 req/month | Required | Street level | High |
| HERE Geocoding | 1,000 req/day | Required | Street level | Moderate |
| OpenCage | 2,500 req/day | Required | Street level | 1 req/sec |
What is the ZIP Code Mapper?
This free postcode plotter and GeoData Mapper converts your spreadsheet data (CSV files) into interactive maps. Whether you have geographic coordinates or postal codes, you can visualise your locations worldwide, apply custom styling, and export in professional formats. The entire process runs inside your browser — your data is never uploaded to a server.
Key Features
- Two plotting modes — direct lat/lng coordinates or geocoded postal codes and addresses
- Free geocoding — powered by OpenStreetMap Nominatim, no API key required
- Gradient colour styling — colour markers by any numeric column in your CSV (sales, population, score)
- GeoJSON and KML export — open results in QGIS, ArcGIS, Google Earth, or Mapbox
- 100% browser-based — your CSV never leaves your device
- Auto-detection — recognises common column names for lat, lng, zip, postal, country automatically
Frequently Asked Questions
Can I map addresses instead of postal codes?
Yes — the geocode tab accepts any text in the postal code field, including full street addresses. More specific queries geocode more accurately than city names or ZIP codes alone. Adding a country column helps disambiguate short or ambiguous queries. This makes it easy to plot addresses on map alongside postal code data.
What is gradient colour styling and when should I use it?
Gradient styling colours each map marker based on a numeric value in your CSV — for example sales revenue, population, or a risk score. The lowest value receives a light shade of your chosen colour and the highest value receives the darkest shade. Use it when you want a quick visual heat-map effect showing where values are concentrated.
What is the record limit and why?
The tool processes up to 100 records per upload. For the coordinates mode this is a browser performance consideration. For geocoding, the 100-record limit keeps total processing time under about 4 minutes. If you need to map thousands of records, consider splitting your dataset or using a desktop GIS application like QGIS.
Do I need an API key to geocode postal codes?
No — this tool uses OpenStreetMap's Nominatim geocoding service which is free and requires no API key. Geocoding is processed through our server which handles the Nominatim rate limit (one request per second). For large datasets close to the 100-record limit, geocoding can take a few minutes.
What are common use cases for mapping ZIP codes?
Common applications include: customer distribution mapping, sales territory visualisation, delivery zone planning, market analysis, event attendee mapping, and logistics optimisation. Any dataset with ZIP codes, postal codes or addresses can be turned into an actionable map.
What is the difference between GeoJSON and KML export?
GeoJSON is a standard JSON-based format used by most modern GIS tools — QGIS, ArcGIS, Mapbox Studio, Leaflet, and D3.js all read GeoJSON natively. KML (Keyhole Markup Language) is the format used by Google Earth and many legacy GIS tools. Both formats include all your original CSV columns as feature properties.
What is a ZIP code mapper and how does it work?
A ZIP code mapper converts a list of postal codes or addresses into geographic points on an interactive map. This tool reads your CSV file locally in the browser, then either plots coordinates directly (if your data has lat/lng columns) or geocodes each postal code via the OpenStreetMap Nominatim API. The result is an interactive map where each record appears as a clickable marker showing your original data.
What CSV format does the tool accept?
The tool accepts standard CSV files (comma-separated values) with a header row. For coordinate plotting your file needs latitude and longitude columns — common names like "lat", "lng", "latitude", "longitude" are detected automatically. For geocoding, you need a column with postal codes or addresses. The tool auto-detects columns named "zip", "postal", "postcode", "zipcode", or "address".
Is my data uploaded to any server?
Your CSV file is parsed entirely in your browser — it is never uploaded to our servers. The only data that leaves your device are individual postal codes or addresses sent to the Nominatim API through our proxy. The geocoded coordinates are cached on our server for one hour to reduce API load, but your full dataset remains local.
How accurate is the postal code geocoding?
Accuracy varies by country and data quality. Postal codes in the US, UK, Canada, and Western Europe are typically geocoded to the postal district centroid — within 100 metres to a few kilometres of actual locations. Full street addresses geocode more accurately, often to street level. Adding a country column significantly improves accuracy for international datasets.
Related Tools
Geocoding data © OpenStreetMap contributors, made available under the Open Database Licence. Geocoding powered by Nominatim. Map tiles © OpenStreetMap contributors drawn with Protomaps (hosted by KONAKTIVE) and CARTO via Leaflet.