Map with ZIP Codes
🇺🇸United States onlyFree ZIP code map maker — paste a list of US ZIP codes (with optional values or labels) and instantly render a heat map, dot map, or territory map. All 33,169 US ZIPs are covered. Three render modes, no sign-up, no watermark, all in your browser.
Three ways to visualize ZIP codes
ZIP-level data has three canonical visualization formats. Most online tools force you to pick one and re-paste your data to switch. Map with ZIP Codes lets you toggle freely — your data stays loaded, only the rendering changes.
Heatmap mode (county-aggregate choropleth)
Each ZIP\u2019s value is rolled up to its county FIPS code, and the county is colored by the aggregated value (sum, average, max, min, or count). This is the publication-ready format: readable at a national zoom level, robust to outlier ZIPs, and matches how Census, BLS, and county-government data is typically published. The default mode for first-time visitors — the page auto-loads the Population sample so you see a national heat map immediately.
Dots mode (per-ZIP circles)
Each ZIP renders as a colored circle at its centroid (the average lat/lng of its populated area). Color encodes value via the chosen gradient. Optional: scale circle radius by ZIP population, so a 60,000-resident urban ZIP has visual weight different from a 100-resident rural ZIP with the same value. This is the right mode for granular per-ZIP comparisons, precise market sizing, or any case where the county aggregation hides what you care about.
Territory mode (categorical labels)
Each ZIP gets a label (sales rep, region, service tier, school district) and the tool auto-assigns one color per unique label. The result is a categorical territory map where every label has a clear color and the legend is one row per group. Click any pill in the legend to cycle its color. Useful for sales teams, service-area businesses, school districts, healthcare networks, and direct-mail operations.
How to plot ZIP codes on a map
Six steps from a CSV in your clipboard to a finished map. Click any sample dataset in the tool above to see the entire flow rendered instantly.
- Pick a render mode. Choose Heatmap (county-aggregate choropleth from ZIP-level values), Dots (one circle per ZIP), or Territory (categorical labels with one color per group). Toggle freely between modes — your data stays loaded.
- Paste your ZIP codes. One ZIP per line, optionally followed by a numeric value or a categorical label. ZIP+4 codes are auto-truncated to 5 digits. Tab-separated paste from Excel and Google Sheets works directly.
- Or load a sample dataset. Six built-in datasets cover all 33,169 ZIP codes: population, density, median income, home value, median rent, and commute time. The "Regions" sample loads US Census regions as a categorical territory example.
- Customize colors and bins. Pick a sequential gradient (green, blue, red, purple, brown) or a diverging gradient (red↔blue, purple↔green). For heatmap mode, choose how to aggregate ZIP values inside each county: sum, average, max, min, or count.
- Filter to a single state. Tap any state chip to render only ZIPs in that state — useful when your CSV spans multiple states but you want one regional snapshot at a time. Tap "All" to see the whole national map again.
- Add title, label, export. Type a map title and value label (e.g. "dollars", "customers", "deliveries"). Export as PNG, SVG, PDF, or GeoJSON to drop straight into a slide deck, design tool, GIS workspace, or BI dashboard.
Sample datasets you can try
Six built-in datasets, each covering all 33,169 US ZIPs. Click any sample on the tool above and the data loads instantly along with a sensible default gradient and aggregation method.
Residents per ZIP code. Best as a heat map (county-aggregate) — urban centers light up immediately while rural ZIPs fade. The classic "where do people live" visualization.
How packed each ZIP is. Manhattan ZIPs hit 80,000+ people per square mile while many Western ZIPs stay below 5. Shows the urban-rural divide more starkly than raw population.
Median household income per ZIP. Reveals wealth corridors (Bay Area, Westchester, DC suburbs, Greenwich CT) and persistent rural-poverty regions (Mississippi Delta, Appalachia, Native reservations).
Median home value per ZIP. Especially useful for real estate teams comparing markets — a single national heat map shows where the $1M+ ZIPs cluster vs sub-$200K markets.
Median monthly rent per ZIP. Rental affordability is more useful than home value for roles in healthcare, hospitality, and retail thinking about workforce reach.
Average one-way commute time. Long-commute ZIPs cluster around exurban metros (Atlanta, DC, NY, LA) and dense urban cores with bad transit. Short commutes are rural towns and suburb-of-suburb belts.
What people use Map with ZIP Codes for
Six recurring patterns we see in the analytics — each starts with a CSV pulled from a CRM, mail manifest, public dataset, or private database. Map with ZIP Codes is the rendering layer between data and a slide deck, blog post, grant report, or one-page coverage flyer.
Sales territory mapping
Paste a CSV of `zip,owner_name` to render a national territory map showing every ZIP each rep is responsible for. Diverging colors highlight where territories meet, where coverage gaps exist, and where two reps overlap. The map exports straight to a quarterly business review or a Salesforce custom-record screen for AEs.
Direct-mail and door-drop reach
Marketing planners paste a CSV of `zip,impressions` (or `zip,deliveries`) from a mail-house manifest to visualize campaign reach. The heat map mode aggregates to county for executive-level slides; the dot map shows precise per-ZIP saturation for granular targeting reviews.
Service-area coverage (HVAC, telecom, healthcare)
Service-area businesses paste their licensed/served ZIP list to communicate coverage to customers, brokers, or referral partners. A clean territory map ("Service available" / "Service planned" / "No service") makes a one-page coverage flyer that beats a paragraph of city names every time.
Real estate market analysis
Real estate analysts paste Zillow ZHVI data, Redfin median sale price, or year-over-year change at the ZIP level. The dot map mode lets you see ZIP-precision price clusters; the heat map aggregates to county for region-level comparison. Export to PNG for buyer-broker presentations or SVG for designers.
Voter contact and canvassing
Campaign field teams paste lists of high-priority ZIPs from VAN, NGP, or Catalist exports. A territory map shows door-knock zones; a heat map shows turnout-targeted ZIPs by intensity. Useful for state-level coordinator briefings and grant-funded GOTV programs.
Demographic visualization for grant writing
Non-profits and policy researchers paste ACS-derived ZIP-level data (uninsured rate, food-insecurity rate, broadband access) to make heat maps for grant applications. Federal HRSA and HUD reviewers expect visual evidence of geographic need — a ZIP-level heat map aggregated to county is the standard format.
How to make a ZIP code heat map
A "ZIP code heat map" usually means one of two things — and most people who search for it actually want the second. Knowing the difference saves a lot of confusion.
Density heat map. A pure spatial-density visualization (how many ZIPs are in this area) with no per-ZIP value attached. This is what tools like CARTO and Mapbox call a "heatmap layer" — a Gaussian-blurred density estimate. Useful for "where are my customers clustered?" but not for "what\u2019s the value per ZIP?".
Choropleth heat map (county-aggregate). ZIP-level values rolled up to a coarser geography — usually county — and rendered as a filled-polygon choropleth. This is the format used by news outlets, policy researchers, and Census tools. It\u2019s what Map with ZIP Codes\u2019 Heatmap mode produces. Pros: readable at national zoom, robust to ZIP outliers, easy to export to a slide. Cons: hides ZIP-level variation within a single county.
Step-by-step: switch to Heatmap mode, paste `zip,value` rows, pick an aggregation method (sum for total counts, average for medians/percents, max for "highest value in the county"), choose a gradient (sequential for ordered data, diverging for value-with-midpoint), and pick 5 quantile bins as a starting point. Adjust bin count and classification method until the map reads well — quantile is best for unevenly-distributed data, equal-interval for bounded percent data, natural breaks for finding clusters.
How to plot a list of ZIP codes (without values)
Sometimes you just want to see a list of ZIPs on a map — no values, no heat, just dots. Common scenarios: visualizing a customer list, mapping the ZIP codes in a service area, showing where a survey respondent set lives.
Switch to Dots mode and paste your ZIP list (one per line, no second column needed). Each ZIP becomes a single dot at its centroid. The default dot size is fixed (every ZIP equally weighted). Toggle "Size by population" to scale by ZIP population — this is the right call for customer-list maps, where a ZIP with 50K residents intuitively deserves more visual weight than a 200-resident ZIP.
For state-specific views, tap any state chip to filter — useful when your CSV spans the whole country but you only want a one-state slide for a regional briefing. Tap "All" to return to the national view.
ZIP code territory mapping for sales teams
Sales territory maps are the highest-leverage use of categorical ZIP mapping. The end-result slide answers four questions for an executive: which rep owns which ZIP, where two reps overlap, where a territory is so sparse it should be redrawn, and where the company has no coverage at all.
Workflow: export `zip,owner_name` from your CRM (Salesforce reports, HubSpot territories, Microsoft Dynamics zones — every CRM has this view). Paste into Map with ZIP Codes in Territory mode. Each owner becomes a colored region; the legend lists every owner with a ZIP count next to their name. Click an owner pill to recolor (e.g. "all enterprise reps green, all SMB reps blue").
Common patterns to look for: orphan ZIPs (high-density ZIPs with no assigned rep, usually in newly-grown metros), vintage assignments (a single rep covering 200+ ZIPs spanning four states because nobody re-cut the territory after 2018), and overlap zones (two reps assigned to the same ZIP, which usually triggers commission disputes). The map exposes all three at a glance.
ZIP-5, ZIP+4, and ZCTA — what\u2019s the difference?
These three terms get mixed up constantly. Each refers to a different thing maintained by a different agency. If you\u2019re working with ZIP-level data professionally, knowing the distinction is essential.
ZIP-5 (5-digit ZIP code). Maintained by the United States Postal Service, introduced in 1963. Every populated address in the US is in exactly one ZIP-5. There are approximately 41,000 active ZIP-5 codes — but only about 33,000 are geographic ZIPs with a populated area; the rest are PO-Box-only codes, unique-customer ZIPs (assigned to a single large firm like Walmart HQ, NASA, or the Pentagon), and military/diplomatic codes. Map with ZIP Codes uses 33,169 geographic ZIP-5 codes from the SimpleMaps dataset.
ZIP+4 (9-digit ZIP code). An extension introduced in 1983 that appends 4 more digits to the ZIP-5 to identify a specific block face, building, PO Box group, or large-volume mail recipient. ZIP+4 isn\u2019t a geography — it\u2019s a delivery routing hint. There are roughly 35 million unique ZIP+4 codes. Map with ZIP Codes auto-truncates ZIP+4 input to its first 5 digits when matching.
ZCTA (ZIP Code Tabulation Area). Maintained by the US Census Bureau, not USPS. Because USPS ZIPs are routes (linear delivery paths) rather than polygons, the Census Bureau invented ZCTAs in 2000 as polygon approximations of ZIP service areas. ZCTAs are built by aggregating Census blocks: every block is assigned to the most-common USPS ZIP among its addresses. ZCTAs cover ~95% of populated USPS ZIPs cleanly; the remaining ~5% are PO-Box-only ZIPs (no Census blocks → no ZCTA) and unique-customer ZIPs (no general public addresses → no ZCTA). The Census Bureau publishes ZCTA polygon shapefiles annually as part of TIGER/Line. Map with ZIP Codes uses ZIP centroids (lat/lng) for dot rendering and county-FIPS aggregation for heatmap rendering — not ZCTA polygons.
Why no boundary file? The USPS doesn\u2019t maintain ZIP boundaries because ZIPs aren\u2019t polygons. They\u2019re postal routes, optimized for mail truck efficiency, and they cross municipal, county, and even state lines. The closest thing to a "ZIP boundary map" is a ZCTA polygon, which Esri, Mapbox, and HUD all publish in derivative form. Most non-technical users actually want either a centroid map (Dots mode here) or a county-aggregate choropleth (Heatmap mode) — both of which avoid the boundary problem entirely.
How many ZIP codes does each US state have?
Counts below are populated geographic ZIP-5 codes from the SimpleMaps US Zips dataset (the dataset that powers this tool). PO-Box-only and unique-customer ZIPs are excluded; they have no geographic centroid. Need a single-state ZIP map? Tap the state chip in the tool above to filter your data to that state only.
Texas (1,924) and Pennsylvania (1,811) have the most ZIPs of any state — both because of size and because of dense rural networks of small towns each with their own ZIP. New York (1,778) is third, mostly driven by the dense five-borough NYC system. The District of Columbia has only 31 ZIPs — fewer than any state — and Delaware (65), Rhode Island (81), and Hawaii (92) round out the smallest-by-ZIP-count list.
ZIP codes vs counties vs cities — when to use which
Three overlapping geographies, three different use cases. Picking wrong is the most common mistake in geographic data work — usually the result of "we already had it in this format" rather than a deliberate choice.
Use ZIPs for direct-mail, USPS-derived data (deliveries, returns, change-of- address), customer-database mapping (because every customer has a ZIP from checkout/billing), and IRS/HUD-derived ZIP-level data (income, mortgage, tax-credit usage). ZIP-level granularity is essential when ZIP-to-county mapping is many-to-many in your area (a single ZIP straddling two counties, or a single county containing 200+ ZIPs).
Use counties for Census ACS data (population, demographics, education), Bureau of Labor Statistics data (unemployment, wages, employment by industry), election results (every Presidential and Senate result is published by county), and most state-agency data. County is also the right level when you want a clean choropleth that doesn\u2019t rely on point-density tricks. Map with Counties is the dedicated tool for this.
Use cities for hyperlocal customer-acquisition spend, retail-location decisions, real estate listings (MLS data is always city-keyed), and any case where the political identity of the place matters more than the demographic envelope. City boundaries change over time (annexations, incorporations) so historical city-level series are tricky.
ZIP code data sources
Where to pull ZIP-level data, by domain. All of the following publish free and most are directly downloadable as CSV with a ZIP-5 column.
| Source | What you get | License / cost |
|---|---|---|
| USPS | Authoritative ZIP-5 list with city/state — bare-bones | Free with terms |
| US Census Bureau | ZCTA polygon shapefile, ACS 5-year data by ZCTA | Public domain |
| SimpleMaps US Zips | 33K+ ZIP centroids with demographics — what this tool uses | CC0 |
| IRS Statistics of Income | Adjusted gross income, tax filings, charitable giving by ZIP | Public domain |
| HUD USPS Crosswalk | ZIP→tract, ZIP→county, ZIP→CBSA mapping (quarterly) | Free with registration |
| Zillow ZHVI by ZIP | Median home value time-series by ZIP | Free for non-commercial |
| Esri demographic | Premium ZIP-level demographic forecasts | Paid (subscription) |
| CoreLogic / Black Knight | Premium real estate ZIP-level data | Paid (enterprise) |
Common ZIP code data mistakes
Five pitfalls we see repeatedly when people work with ZIP-level data. Knowing these saves hours of confusion.
1. Leading-zero loss in Excel
Excel auto-converts numeric-looking columns to numbers, which strips leading zeros. "02115" (Boston/Northeastern) becomes "2115", which is invalid and unmappable. Fix: format the ZIP column as Text BEFORE pasting (Format Cells → Text), or save the source CSV with the ZIP column quoted. Map with ZIP Codes left-pads short ZIPs to 5 digits as a safety net, but the cleanest source data is always 5-digit zero-padded strings.
2. ZIP+4 in input data
Address-validation services and CRM exports often store ZIP+4 codes ("90210-1234"). These won\u2019t match against geographic ZIP-5 datasets unless truncated. Map with ZIP Codes auto-truncates to the first 5 digits, but other tools may not.
3. Treating ZIP as equal to city
ZIPs and cities don\u2019t map 1:1. A single ZIP can span multiple cities (especially in rural areas) and a single large city can contain hundreds of ZIPs. New York City has 195 ZIP codes. Houston has 175. "Map all customers in Houston" via "ZIP starts with 770" misses a chunk of the metro and includes parts of suburban Harris County.
4. ZCTA vs USPS ZIP confusion
ACS demographic data is published at the ZCTA level, not the USPS ZIP level — they\u2019re ~95% aligned but PO-Box-only ZIPs and unique-customer ZIPs are missing from ZCTA. If your CRM data is keyed on USPS ZIP and your demographic data is keyed on ZCTA, expect ~5% unmatched rows when joining.
5. PO Box ZIPs in geographic analysis
Some ZIPs are PO-Box-only (no geographic delivery — recipients pick up mail at the post office). Others are unique-customer ZIPs assigned to a single corporation, military installation, or government agency. Both have no geographic centroid in the conventional sense. They\u2019ll appear unmatched in this tool because the SimpleMaps dataset excludes them. If your data has many of these (e.g., a list of corporate-billing addresses), expect a high unmatched rate — that\u2019s the data, not the tool.
Map with ZIP Codes vs other tools
Honest comparison against the alternatives. Each tool wins different scenarios — the table is a feature checklist, not a value judgement.
| Feature | Map with ZIP Codes | BatchGeo | MapChart | Excel / Sheets |
|---|---|---|---|---|
| Free, no sign-up | ✓ | Limited tier | Limited tier | ✓ |
| Paste 5-digit ZIP codes | ✓ | ✓ | ✓ | ✓ |
| ZIP+4 auto-truncation | ✓ | Manual | Manual | ✗ |
| Heat map (county-aggregate) | ✓ | ✓ | ✓ | ✗ |
| Dot map (per-ZIP) | ✓ | ✓ | ✓ | Limited |
| Categorical territory map | ✓ | ✓ | ✓ | — (manual) |
| Toggle modes without re-pasting | ✓ | ✗ | ✗ | ✗ |
| State filter chips | ✓ | ✗ | — (filters) | — (filters) |
| 33,169 ZIPs covered | ✓ | ~30K | ~30K | N/A |
| ZIP+population sample built-in | ✓ | ✗ | Paid | ✗ |
| No watermark on export | ✓ | Watermark on free | Free tier limited | ✓ |
| Works offline after first load | ✓ | ✗ | ✗ | ✓ |
| GeoJSON export | Coming soon | ✗ | ✓ | ✗ |
BatchGeo is excellent if you want a mappable list with detailed pop-ups for each pin and a ready-made shareable URL — that\u2019s its design space. MapChart is solid for static templated maps in a presentation context. Excel and Google Sheets work if you only need a state-level map (both have built-in filled-region maps) or a rough bubble-map of cities, but neither does ZIP-level rendering well. Map with ZIP Codes is the fastest path from a ZIP list in your clipboard to a publication-ready ZIP map, with three render modes and no account, watermark, or learning curve.
Related tools and resources
Map with ZIP Codes pairs naturally with several other SimpleMaplab tools. To build a target ZIP list from a starting location and radius, use Find ZIP Codes in Radius. To find the ZIP that contains an address or coordinates, use What ZIP Code Am I In?. To measure distance between two ZIP codes, use Distance Between ZIP Codes.
For county-level rather than ZIP-level visualization, use Map with Counties (paste FIPS or county-name + value, get a county choropleth across all 3,132 US counties). For categorical coloring of countries or US states (visited-countries, lived-states, etc.), use Color a Map. For population estimates within a radius (useful for ZIP territory sizing), use Population Within Radius.
Frequently asked questions
ZIP code centroids and per-ZIP demographics: SimpleMaps US Zips v1.94 (CC0 license, derived from USPS-published ZIPs joined with US Census ACS 5-year demographic data and aligned to Census ZCTAs where possible). 33,169 populated ZIPs covered. County boundaries: US Census Bureau TIGER/Line at 1:10,000,000 scale, via us-atlas counties-10m TopoJSON. ZIP-to-county joins use the SimpleMaps 'countyFips' field, derived from the Census Bureau\u2019s ZCTA-to-County relationship file. State borders: us-atlas states-10m TopoJSON. All data is public-domain or CC0; no API keys, no quotas, all rendering in your browser.
More SimpleMapLab tools
Discover every ZIP within X miles of a starting location. Build target lists.
Paste county FIPS + values, get a national choropleth across 3,132 US counties.
Measure the distance between any two US ZIP codes with bearing.
Estimate the US population inside any radius using ZIP-level Census data.