Download ZIP Code Data
Data License & Attribution
This dataset is derived from two open data sources:
-
OpenStreetMap — © OpenStreetMap contributors
License: Open Database License (ODbL) 1.0
Under the ODbL share-alike requirement, this derivative database is itself released under ODbL 1.0. Any adapted version you publish must also be released under ODbL. -
GeoNames — geonames.org
License: Creative Commons Attribution 4.0 (CC BY 4.0)
City names, state names, and ZIP code metadata. -
US Census Bureau — census.gov
License: US government work, public domain. Does not affect the ODbL status of this database.
Sources: ACS 5-year estimates (2023) · Gazetteer ZCTA file (2025).
Attribution requirement (ODbL §4.3): Any public use of this data must visibly credit "Data © OpenStreetMap contributors".
Full ODbL 1.0 license text | Full CC BY 4.0 license text
Column Schema
| Column | Type | Description |
|---|---|---|
| zipcode | string | 5-digit US ZIP code (leading zeros preserved) |
| city | string | Primary city name |
| state | string | 2-letter state abbreviation |
| state_name | string | Full state name |
| county | string | County name (may be blank) |
| lat | float | Centroid latitude (6 decimal places) |
| lng | float | Centroid longitude (6 decimal places) |
| bbox_north | float | Bounding box north edge (blank if no OSM boundary) |
| bbox_south | float | Bounding box south edge |
| bbox_east | float | Bounding box east edge |
| bbox_west | float | Bounding box west edge |
| population | integer | Total population (ACS 5-year). Blank if no matching ZCTA (~20% of ZIPs). |
| land_area_sqmi | float | Land area in square miles (Census Gazetteer). Blank if no ZCTA. |
| median_household_income | integer | Median household income in dollars (ACS). Blank if suppressed or no ZCTA. |
| median_home_value | integer | Median home value in dollars (ACS). Blank if suppressed or no ZCTA. |
| median_age | float | Median age in years (ACS). Blank if suppressed or no ZCTA. |
| median_gross_rent | integer | Median gross rent in dollars (ACS). Blank if suppressed or no ZCTA. |
| housing_units | integer | Total housing units including vacant (ACS). Blank if no ZCTA. |
| households | integer | Occupied housing units (ACS). Blank if no ZCTA. |
| One integer column per POI category (grocery, coffee, gas, pharmacy, bank, restaurant, fitness, pharmacy): 0 if none found in OSM near this ZIP. | ||
| brands_json | JSON | Brand-level POI counts for the long tail (e.g. {"starbucks":3}). Empty object if none. |
density (people per sq mi) is derivable from population / land_area_sqmi but is not stored in the CSV.