ZIP Code Database mapping visualization of the United States of America
USPS Licensed · 23 Years

Technical Specifications & Data Dictionary

Every column, with the exact name it carries in the file you download — plus formats, encoding, and the answers to the questions developers actually ask. Nothing here is behind a sales call.

2020Census vintage
94+data fields
4file formats
12/yrupdates
Instant download · Free technical support

At a glance

Documented columns
28 / 57 / 85
Encoding
UTF-8
Empty values
Empty string, not NULL
Primary key
ZipCode + City + CityAliasName
Rows / distinct ZIPs
80,794 / 41,541
Business bundle
6 files · 1,014 columns

What’s actually in the download

Standard and Deluxe are a single data file. Business is a bundle — the main table plus five supplemental files, including the full Census and ACS tables at ZCTA level.

FileWhat it is ColumnsSize Edition
zip-codes-database-STANDARD.csvThe main table3116.8 MBStandard
zip-codes-database-DELUXE.csvThe main table6034.8 MBDeluxe
zip-codes-database-DELUXE-BUSINESS.csvThe main table9352.3 MBBusiness
census-acs-2020-2024-zcta.csvAmerican Community Survey, 5-year estimates54367.4 MBBusiness
census-2010-zcta.csv2010 Decennial Census by ZCTA18620.7 MBBusiness
census-2020-zcta.csv2020 Decennial Census by ZCTA16118.7 MBBusiness
zip-codes-database-PLACE-FIPS.csvPlace FIPS codes per ZIP2518.4 MBBusiness
zip-codes-database-MULTI-COUNTY.csvCounty splits for ZIPs crossing county lines61.0 MBBusiness

The five supplemental files — Business only

Not summaries of the main table — separate datasets, joined on ZIP. Together they add 921 columns beyond the 93 in the main file.

zip-codes-database-MULTI-COUNTY.csv

One row for every county a ZIP touches. The main table carries a single primary county and a MultiCounty flag; this is where the rest of them live.

6 columns · 22,372 rows · key ZipCode
zip-codes-database-PLACE-FIPS.csv

Census “place” codes — incorporated cities, towns and CDPs — mapped to each ZIP, with land and water area per place.

25 columns · 54,214 rows · key ZIPCODE
census-2020-zcta.csv

The full 2020 Decennial Census demographic profile at ZCTA level — age bands, sex, race, ethnicity, households and housing occupancy.

161 columns · 33,775 rows · key ZIPCODE
census-2010-zcta.csv

The same profile for the 2010 Decennial Census, so you can measure change over a decade. Column names here are plain English rather than Census codes.

186 columns · 33,115 rows · key ZIPCode
census-acs-2020-2024-zcta.csv

American Community Survey five-year estimates, 2020–2024: the four ACS data profiles — social (DP02), economic (DP03), housing (DP04) and demographic (DP05). This is the deepest file in the bundle by some margin, and it ships with the Census subject-definitions PDF that explains every code.

543 columns · 33,773 rows · key ZIPCODE

Mind the join column. The ZIP key is spelled differently in each file — ZipCode in the main and multi-county tables, ZIPCODE in place FIPS, 2020 Census and ACS, and ZIPCode in the 2010 Census file. Match case-insensitively, or normalize the header on import.

Business totals 1,014 columns across six data files. Every edition also includes the specification PDF and our most-asked database questions. Figures measured from the 2026-08-01 release; the CSV bundle is listed here, and the same data ships as Access, Excel and SQL.

Data Dictionary

Every column in the download, with the exact name as it appears in the file header. 28 in Standard, 57 in Deluxe, 85 in Business.

There is one row per ZIP / city / alias — not one row per ZIP. The Business file carries 80,794 rows across 41,541 distinct ZIP codes. The unique key is ZipCode + City + CityAliasName. Use PrimaryRecord to pick the single preferred row per ZIP, and MultiCounty to spot ZIPs that cross county lines.

Column name Description Type Standard Deluxe Business
Core Geographic 9 fields Business adds 1899
ZipCode00000-99999 Five digit numeric ZIP Code of the area.Example: 12533Char(5)
LatitudeGeographic coordinate as a point measured in degrees north or south of the equator.Example: 41.583325Decimal(12, 6)
LongitudeGeographic coordinate as a point measured in degrees east or west of the Greenwich Meridian.Example: -73.780928Decimal(12, 6)
State2 letter state name abbreviation.Example: NYChar(2)
StateFullNameThe full US State Name.Example: New YorkVarChar(35)
AreaCodeThe telephone area codes available in this ZIP Code.Example: 845/914VarChar(55)
CityName of the city as designated by the USPS.Example: HOPEWELL JUNCTIONVarChar(35)
CountyName of Primary County or Parish this ZIP Code resides in.Example: DutchessVarChar(45)
ClassificationCodeThe classification type of this ZIP Code.Values: (blank) = Regular ZIP Code, P = PO Box, U = Unique, M = MilitaryChar(1)
Record Structure & City Aliases 9 fields Business adds 1899
PrimaryRecordCharacter 'P' denoting if this row is a Primary Record or not. Absence of character denotes a non-primary record.Char(1)
CityTypeIndicates the type of locale such as Post Office, Stations, or Branch.Char(1)
CityAliasAbbreviation13 Character abbreviation for the city alias name.VarChar(13)
CityAliasNameAlias name of the city if it exists.VarChar(35)
MailingNameYes or No (Y/N) flag indicating whether or not the USPS accepts this City Alias Name for mailing purposes.Char(1)
PreferredLastLineKeyLinks this record with other products ZIP-Codes.com offers.VarChar(10)
MultiCountyFlag indicating whether this ZIP Code crosses county lines.Char(1)
CityStateKeyLinks this record with other products ZIP-Codes.com offers such as the ZIP+4.Char(6)
CityAliasCodeCode indication the type of the city alias name for this record. Record can be Abbreviations, Universities, Government, and more.VarChar(5)
Census 2020 Demographics 18 fields Business adds 1801418
PopulationThe population of the ZIP Code based on 2020 Census data.Example: 28945Integer
HouseholdsPerZipCodeThe estimated number of households of the ZIP Code based on 2020 Census data.Integer
WhitePopulationThe estimated White/Caucasian Population of the ZIP Code based on 2020 Census data.Example: 22450Integer
BlackPopulationThe estimated Black/African American Population of the ZIP Code based on 2020 Census data.Example: 3200Integer
HispanicPopulationThe estimated Hispanic Population of the ZIP Code based on 2020 Census data.Example: 2100Integer
AsianPopulationThe estimated Asian Population of the ZIP Code based on 2020 Census data.Example: 1850Integer
HawaiianPopulationThe estimated Hawaiian or Pacific Islander Population of the ZIP Code based on 2020 Census data.Example: 25Integer
IndianPopulationThe estimated American Indian and Alaska Native Population of the ZIP Code based on 2020 Census data.Example: 120Integer
OtherPopulationThe estimated Population of all other races for the ZIP Code based on 2020 Census data.Example: 850Integer
MalePopulationThe estimated Male Population of the ZIP Code based on 2020 Census data.Example: 14120Integer
FemalePopulationThe estimated Female Population of the ZIP Code based on 2020 Census data.Example: 14825Integer
PersonsPerHouseholdThe estimated average number of persons per household of the ZIP Code based on 2020 Census data.Example: 2.58Decimal(4, 2)
AverageHouseValueThe median house value from Census ACS 5-Year Estimates.Example: 325000Integer
IncomePerHouseholdThe median household income from Census ACS 5-Year Database Specifications Estimates.Example: 72500Integer
MedianAgeThe median age for all people based on 2020 Census data.Example: 42.5Decimal(3, 1)
MedianAgeMaleThe median age for males based on 2020 Census data.Example: 41.3Decimal(3, 1)
MedianAgeFemaleThe median age for females based on 2020 Census data.Example: 43.7Decimal(3, 1)
PopulationEstimateAn up to the month population estimate for this ZIP Code. Based on USPS data.Example: 29450Integer
Statistical Areas 17 fields Business adds 1701317
MSAMetropolitan Statistical Area number.Example: 5602VarChar(35)
PMSAPrimary Metropolitan Statistical Area number.Example: 5380Char(4)
CSACombined Statistical Area.Example: 408Char(3)
CBSACore Based Statistical Area number.Example: 35620Char(5)
CBSA_DivCore Based Statistical Area Division.Char(5)
CBSA_TypeCore Based Statistical Area Type (Metro or Micro).Char(5)
CBSA_NameCore Based Statistical Area Name or Title.VarChar(150)
MSA_NameMetropolitan Statistical Area name or Title.VarChar(150)
PMSA_NamePrimary Metropolitan Statistical Area name or Title.VarChar(150)
RegionA geographic area consisting of several States defined by the U.S. Department of Commerce, Bureau of the Census. The States are grouped into four regions and nine divisions.Example: NortheastVarChar(10)
DivisionA geographic area consisting of several States defined by the U.S. Department of Commerce, Bureau of the Census. The States are grouped into four regions and nine divisions.Example: Middle AtlanticVarChar(20)
CBSAPopulationThe estimated population for the selected CBSA. Based on 2010 Census data.Example: 18897109Integer
CBSADivisionPopulationThe estimated population for the selected CBSA Division. Based on 2010 Census data.Example: 2832882Integer
CongressionalDistrictThis field shows which Congressional Districts the ZIP Code belongs to.Example: 18VarChar(150)
CongressionalLandAreaThis field provides the approximate land area covered by the Congressional District for which the ZIP Code belongs to.Example: 182.01VarChar(150)
CSANameThe name of the CSA this ZIP Code is in. Based on 8/2017 OMB data.Example: New York-Newark, NY-NJ-CT-PAVarChar(255)
CBSA_Div_NameThe name of the CBSA Division this ZIP Code is in.Example: Nassau County-Suffolk County, NYVarChar(255)
USPS Delivery & Postal 13 fields Business adds 85513
DeliveryResidentialThe number of active residential delivery mailboxes and centralized units for this ZIP Code. This excludes PO Boxes and all other contract box types. Taken from USPS data.Example: 8946Integer
DeliveryBusinessThe number of active business delivery mailboxes and centralized units for this ZIP Code. This excludes PO Boxes and all other contract box types. Taken from USPS data.Example: 686Integer
DeliveryTotalThe total number of delivery receptacles for this ZIP Code. This includes curb side mailboxes, centralized units, PO Boxes, NDCBU, and contract boxes. Taken from USPS data.Example: 11452Integer
BoxCountTotal count of PO Box deliveries in this ZIP Code. Take from USPS data.Example: 1303Integer
SFDUTotal count of single family deliveries in this ZIP Code; generally analogous to homes. Taken from USPS data.Example: 5662Integer
MFDUTotal count of multifamily deliveries in this ZIP Code; generally analogous to apartments. Taken from USPS data.Example: 814Integer
ZIPIntroDateThe date this ZIP Code was introduced into the database.Example: <2004-10VarChar(15)
AliasIntroDateThe date this City Alias was introduced for this ZIP Code.Example: 2012-08VarChar(15)
FacilityCodeThe type of locale identified in the city/state name.Example: P (Post Office), B (Branch), S (Station), U (Unique)VarChar(1)
CityDeliveryIndicatorSpecifies whether or not a post office has city-delivery carrier routes.Example: Y (Yes) or N (No)VarChar(1)
CarrierRouteRateSortationIdentifies where automation Carrier Route rates are available.Example: C (City), R (Rural), H (Highway Contract)VarChar(1)
FinanceNumberA code assigned to Postal Service facilities.Example: 353910VarChar(6)
UniqueZIPNameField that specifies whether the City State Record contains the organization name for a unique ZIP Code.Example: YVarChar(1)
Location & Physical Geography 5 fields Business adds 2335
ElevationThe elevation, measured in feet.Example: 364Integer
TimeZoneCode for hours past Greenwich Time Zone this ZIP Code belongs to.Char(2)
DayLightSavingFlag indicating whether this ZIP Code observes daylight savings.Char(1)
LandAreaThe land area of this ZIP Code in Square Miles.Example: 64.416Decimal(12,6)
WaterAreaThe water area of this ZIP Code in Square Miles.Example: 0.308Decimal(12,6)
Government Codes & Identifiers 5 fields Business adds 1445
CountyFIPSFIPS code for the County this ZIP Code resides in.Example: 027Char(5)
StateFIPSFIPS code for the State this ZIP Code resides in.Example: 36Char(2)
StateANSIANSI code for the State this ZIP Code resides in. Database SpecificationsExample: 01779809VarChar(2)
CountyANSIANSI code for the County/Parish this ZIP Code resides in.Example: 00809654VarChar(3)
SSAStateCountyCodeThe State County Code as set by the Social Security Administration for Medicare and Medicaid. Based on latest CMS data.Example: 33700VarChar(5)
Business & Employment 5 fields Business adds 5005
NumberOfBusinessesThe total number of Business Establishments for this ZIP Code. Data taken from latest Census Business Patterns.Example: 1247Integer
NumberOfEmployeesThe total number of employees for this ZIP Code. Data taken from latest Census Business Patterns.Example: 18450Integer
BusinessFirstQuarterPayrollThe total payroll for the first quarter this ZIP Code in $1000. Data taken from latest Census Business Patterns.Example: 145250 ($145,250,000)Integer
BusinessAnnualPayrollThe total annual payroll for this ZIP Code in $1000. Data taken from latest Census Business Patterns.Example: 598750 ($598,750,000)Integer
BusinessEmploymentFlagDue to confidentiality, some areas do not have actual figures for employment information. Employment and payroll data are replaced by zeroes with the Employment Flag denoting employment size class. Data taken from latest Census Database Specifications Business Patterns.Example: (blank = data available)Char(1)
Healthcare & Medicare 4 fields Business adds 4004
MedicareCBSACodeThe CBSA Code for this ZIP Code as set by the Centers for Medicare and Medicaid Services. Based on Latest CMS data.Example: 35004VarChar(5)
MedicareCBSANameThe CBSA Name for this ZIP Code as set by the Centers for Medicare and Medicaid Services. Based on latest CMS data.Example: Nassau County-Suffolk County, NYVarChar(255)
MedicareCBSATypeThe CBSA type for this ZIP Code as set by the Centers for Medicare and Medicaid Services. Metro or Micro. Based on latest CMS data.Example: Metro or MicroVarChar(5)
MarketRatingAreaIDThe ID of the Insurance Market Rating Area as set by the Centers for Medicare & Medicaid Services. Based on latest CMS data.Example: 8Integer

Column names are reproduced exactly as they appear in the CSV, Excel, Access and SQL files. The delivered file also contains a small number of legacy columns retained for backward compatibility, which are not documented here.

File formats & conventions

The same rows and the same columns in four formats. Pick whichever drops into your stack with least effort — nothing is held back from any of them.

CSV Comma-separated values Recommended
Delimiter
, comma
Text qualifier
" double quote, used when a value contains a comma
Encoding
UTF-8, no byte-order mark
Line endings
CRLF (\r\n)
Header row
Row 1 carries the column names
Empty values
Empty string — nothing between the delimiters
Uncompressed
17 MB · 35 MB · 179 MB
XLS Microsoft Excel
Format
.xls, Excel 2007 and later
Compatibility
Excel 2007–2019 and 365
Why two files
80,794 rows exceeds the 65,536-row .xls limit, so the table ships split across two workbooks. A PDF explaining this is in the download.
Header row
Row 1; data starts on row 2
Column widths
Auto-size for readability
Uncompressed
12 MB · 26 MB · 162 MB
MDB Microsoft Access
Format
.mdb, Access 2007 and later
Compatibility
Access 2007–2019 and 365
Table name
ZipCodeDatabase_{Edition}
Keys
No primary key. ZipCode, State and County are indexed, duplicates allowed
Relationships
None — a single table per file
Compression
Compacted before packaging
Uncompressed
30 MB · 55 MB · 366 MB
SQL Creation scripts
Targets
MySQL 5.7+ and SQL Server 2008+
Script order
DROP TABLE if exists → CREATE TABLEINSERT INTO
Table name
ZIPCodes — case as written
Keys
No primary key declared. Add your own in the CREATE statement — see the note below first
Character set
UTF-8 (utf8mb4 on MySQL)
Batch size
1,000 rows per INSERT
Empty values
NULL keyword, unquoted
Uncompressed
38 MB · 75 MB · 274 MB

Sizes are uncompressed, in edition order: Standard · Deluxe · Business. Business is much larger than the other two because it carries the five supplemental files as well — every format ships them.

Things worth knowing before you import

Character encoding

  • Every file is UTF-8, so accented city names survive intact.
  • CSV carries no byte-order mark.
  • SQL scripts declare the character set explicitly (utf8mb4 on MySQL).
  • Excel and Access use native Unicode.

Column naming

  • PascalCase for most columns — ZipCode, IncomePerHousehold.
  • Six use underscores: MSA_Name, PMSA_Name, CBSA_Div, CBSA_Type, CBSA_Name, CBSA_Div_Name.
  • Two are abbreviations: SFDU, MFDU.
  • Identical column names in all four formats. No spaces, no reserved words.

Keys and duplicates

  • There is no single-column key. The unique combination is ZipCode + City + CityAliasName.
  • ZipCode repeats — 80,794 rows across 41,541 distinct ZIP codes.
  • So does ZipCode + PrimaryRecord.
  • All four formats contain identical data.

Empty values and leading zeros

  • Empty means empty string, not NULL — in CSV, Excel and Access. Only the SQL scripts use the NULL keyword.
  • Unknown coordinates are 0, not empty.
  • Leading zeros are preserved (00501). Spreadsheet software will strip them on import unless the column is set to text first.

Sample downloads

Twenty-five real records from the current production file — not mock data. Each sample contains all four formats, so you can test the one you intend to use.

Standard

28 columns · 25 records

Geography and postal basics — ZIP, city, state, county, coordinates, time zone, area code and FIPS codes.

CSV · Excel · Access · SQL

Download sample 550 KB

Deluxe

57 columns · 25 records

Everything in Standard, plus Census 2020 demographics, income and housing values, and the statistical areas (MSA, PMSA, CBSA, CSA).

CSV · Excel · Access · SQL

Download sample 3 MB

Business

85 columns · 25 records

Everything in Deluxe, plus delivery counts, business and payroll data, Medicare geographies, and the five supplemental files.

CSV · Excel · Access · SQL

Download sample 6 MB

Column counts are the documented columns for each edition — see the data dictionary for every name and type.

Technical FAQ

21 real questions from developers and DBAs working with this data. We have been answering them since 2003, so these are the ones that come up again and again — how the editions differ field by field, which columns keep their leading zeros, and how to load 42,000 rows without your database quietly turning ZIP 01001 into the number 1001. Answers, not marketing.

We use empty strings ("") rather than NULL values.

Why? Years ago, we worked with small businesses and individuals who understood "empty" but struggled with the null concept. Looking back, we probably should have stuck with NULL, but here we are. The good news: it's consistent across all fields.

Key points:

  • Empty strings appear in fields where data is not applicable or cannot be determined with reasonable certainty.
  • Unknown coordinates (Latitude/Longitude) are set to 0 rather than left empty.
  • The ZipCode field is the only exception - it is never empty. Note it is not a primary key on its own: the file has 80,794 rows but only 41,541 distinct ZIP codes. The unique key is ZipCode + City + CityAliasName.
  • When querying, check for empty strings: if (field === '' || field === null).

Developer tip: Military ZIPs (APO/FPO/DPO), PO Box ZIPs, and Unique ZIPs often have empty values for geographic fields like County, Coordinates, and Time Zone since they don't represent traditional delivery areas.

All files use UTF-8 encoding to support international characters and special symbols.

Platform-specific recommendations:

  • MySQL: Use utf8mb4 character set and collation.
  • PostgreSQL: Set ENCODING 'UTF8' when creating database.
  • SQL Server: Use NVARCHAR data types for Unicode support.
  • CSV files: UTF-8 without BOM (byte order mark).

Using UTF-8 ensures proper handling of place names with diacritics (e.g., San José, Montréal) and special characters in city alias names.

See our File Format Specifications section for detailed encoding information by format.

Approximately 23% of ZIP Codes cross county boundaries. The main database shows the primary county - the one that receives the largest volume of mail.

Business Edition includes a Multi-County supplemental file with over 22,000 records detailing all county associations for ZIPs that cross boundaries.

Supplemental file structure:

ZipCode | StateFIPS | State | CountyFIPS | County

Implementation strategies:

  • Most applications: Use the primary county from the main database - it's sufficient for general purposes.
  • County-level analytics: Import the supplemental file as a separate table and JOIN on ZIP when you need all county associations.
  • Compliance/reporting: Use supplemental file when regulations require complete county coverage.
Important: You cannot accurately compare ZIP Code data aggregated to county level with official county statistics because the boundaries don't align. This is a known limitation of using ZIP Codes for geographic analysis.

Coordinate system: WGS84 (World Geodetic System 1984) datum

Precision: 6 decimal places (DECIMAL(10,6))

What the coordinates represent:

  • Standard ZIPs: Geographic centroid of the ZIP Code's delivery area.
  • PO Box ZIPs: Location of the Post Office building (when known).
  • New ZIPs: May take 60-90 days to receive coordinates as the area becomes established.
  • Military ZIPs: Typically set to 0, 0 since they represent overseas locations.

Coordinate accuracy:

We only assign coordinates when we can determine them with reasonable certainty. If coordinates cannot be reliably determined, we set them to 0, 0 rather than guess. This maintains data integrity - a core principle at ZIP-Codes.com.

For GIS applications: WGS84 is compatible with Google Maps, Leaflet, Mapbox, and most modern mapping libraries. For spatial database queries, create a spatial index on the Latitude/Longitude columns for optimal performance.

Essential indexes:

  • Primary Key: ZIP field + Primary (always index both when you want distinct values only).
  • Most common queries: State, County, City.
  • Business Edition: Add indexes on CBSACode, MSACode if querying statistical areas.
  • Geospatial queries: Create spatial index on Latitude/Longitude for proximity searches.

Sample index creation (MySQL):

CREATE INDEX idx_zipcode ON zipcodes(ZipCode);
        CREATE INDEX idx_state ON zipcodes(State);
        CREATE INDEX idx_county ON zipcodes(County);
        CREATE INDEX idx_city ON zipcodes(City);
        -- For composite queries (ZipCode + Primary Record)
        CREATE INDEX idx_zip_primary ON zipcodes(ZipCode, Primary);
        -- For composite queries (State + City lookups)
        CREATE INDEX idx_state_city ON zipcodes(State, City);
        -- For geospatial (if your DB supports it)
        CREATE SPATIAL INDEX idx_coords ON zipcodes(Latitude, Longitude);

Index strategy tips:

  • Don't over-index - each index adds overhead to INSERT/UPDATE operations.
  • Analyze your actual query patterns and index accordingly.
  • Composite indexes (multi-column) work left-to-right: (State, City) helps State-only queries, but not City-only.

Index the columns you actually filter on — ZipCode first, then State, County or City depending on your queries. A composite index on (State, City) pays for itself on address lookups.

With proper indexing, ZIP Code lookups are fast.

Performance benchmarks:

  • Single ZIP lookup: Under 10ms on properly indexed tables, even under production load
  • State-level queries: Sub-150ms for queries returning hundreds of results
  • Full table scans: Minimal concern with only ~42,000 records
  • Optimal hardware: Modern SSD storage recommended, but HDDs work fine for most use cases

Real-world example:

Our production SQL Server handles all website traffic with query times averaging under 100ms - without special performance tuning. A properly indexed table with adequate hardware can achieve significantly faster lookups.

Performance tips:

  • Index your most common query fields (State, County, City).
  • Use the ZIP field for lookups whenever possible (primary key = fastest).
  • For high-traffic applications, consider caching frequently accessed ZIPs in memory.
  • The dataset is small enough (~42K records) that entire tables can fit in database cache.

The database size itself is modest (17-55MB depending on edition), so performance bottlenecks typically come from network latency or unindexed queries, not the data volume.

Short answer: It's no longer valid.

We get this question often, and it's always investigated. The ZIP Code used to be valid but is no longer in service. The USPS revises ZIP Codes regularly to match current delivery needs. ZIP-Codes.com is a licensed USPS distributor and only publishes currently active ZIP Codes.

Common scenarios:

  • The ZIP was discontinued months or years ago.
  • A customer has old records that predate a ZIP Code change.
  • Another website lists it because they use outdated or unverified data.
  • It was a temporary or test ZIP Code that's been retired.

Verify it yourself:

Use the official USPS ZIP Code Lookup tool at https://tools.usps.com/zip-code-lookup.htm. If the USPS reports it as invalid and you believe this is an error, contact us and we'll research it immediately.

Data quality matters:

Other websites and free datasets don't adhere to the same data quality standards we do. Many use Census ZCTA data or simply never remove discontinued ZIPs. We update monthly with verified USPS data to ensure you're always working with accurate, current information.

We use real USPS ZIP Codes, not Census approximations.

ZIP Code Tabulation Areas (ZCTAs) are generalized area representations created by the U.S. Census Bureau. They only update every 10 years with each decennial census, which means they diverge from actual ZIP Code boundaries over time.

Many providers use Census ZCTA data and market it as "ZIP Codes." ZIP-Codes.com licenses true ZIP Code data directly from the USPS and updates it monthly as changes occur. When your business depends on accurate data, "close enough" isn't good enough.

Why this matters:

  • ZCTAs are static for 10 years; real ZIP Codes change monthly.
  • ZCTA boundaries don't match actual USPS delivery routes.
  • Using ZCTAs for business decisions leads to inaccurate targeting and analysis.

The exception:

Some demographic fields (like Census population data) are only available at the ZCTA level - we clearly label these fields. To counter this limitation, we provide our own CurrentPopulation estimate calculated from active delivery points.

Pie Chart showing break down of the different ZIP Code types.

There are currently 41,541 active ZIP Codes in the United States and territories, as of August, 2026.

ZIP Code types (by Classification Code):

  • <BLANK> - Standard: Used for general mail delivery (29,807 ZIPs).
  • P - PO Box: Post Office boxes and contract delivery (9,122 ZIPs).
  • U - Unique: Businesses, government agencies, universities receiving high mail volume (2,023 ZIPs).
  • M - Military: APO/FPO addresses for service members overseas (589 ZIPs).

It should be noted that on occassion, a ZIP Code classified as a PO Box can also have limited street delivery as well. When this happens, you usually see some added population and demographic data.

All versions include all ZIP Code types. Each record contains a ClassificationCode field so you can filter by type or check if a ZIP has special limitations (many companies can't ship to Military ZIPs, for example).

Additional statistics:

  • ~23% of ZIP Codes cross county boundaries.
  • The USPS maintains 29,642 city names and aliases.
  • A few rare ZIP Codes even cross state lines.

Numbers can fluctuate monthly as the USPS creates new ZIPs and discontinues old ones. View detailed ZIP Code statistics →

Because people can identify with multiple races on the Census.

Since the 2000 Census, Americans have been able to select more than one racial category. The 2010 Census alone had 63 possible race categories (6 individual races and 57 combinations). Over 9 million Americans (2.9% of the population) chose multiple races in 2010, but in 2020, 10.2% of the population chose multiple races.

How this affects the math:

  • A person is counted once in the total population.
  • If they select "White" and "Black," they're counted once in WhitePopulation AND once in BlackPopulation.
  • When you add all race categories together, multi-racial individuals get counted multiple times.
  • Therefore: Sum of race categories > Total population.

Hispanic or Latino: Hispanic or Latino is an ethnicity, not a race. This means individuals who identify as Hispanic will also be included in one of the race categories (such as White or Black). As a result, the totals shown here may exceed 100% when Hispanic is displayed alongside racial groups. Customers have explicitly asked for Hispanic Population numbers, so they are presented alongside the racial categories. However, the fact it has it's own distinct definition is usually lost. It is a critical distinction.

This applies at all geographic levels: ZIP Code, City, County, and State data all exhibit this behavior. It's not an error - it's how the Census Bureau reports race data.

Learn more about Census race and ethnicity methodology at the Census Bureau website.

Because not everyone lives in a ZIP Code.

ZIP Codes exist for mail delivery, not population enumeration. Several factors cause discrepancies between ZIP-level population sums and higher-level Census totals:

People not in ZIP Codes:

  • Residents in extremely remote areas where USPS doesn't deliver mail.
  • People living 20+ miles from postal facilities in rough terrain.
  • These individuals are counted in County/State populations but not assigned to a ZIP Code.

Special populations:

  • The Census doesn't count incarcerated individuals at their pre-incarceration ZIP Code.
  • Nursing home residents may be counted at the facility, not their home ZIP.
  • These populations are included in County/State totals but may not align with ZIP-level data.

Census methodology:

  • The Census aggregates data at the Census Block level, then rolls up to ZIP Code Tabulation Areas (ZCTAs).
  • ZCTAs don't perfectly align with actual ZIP Code boundaries.
  • Small population discrepancies are expected and normal.

Bottom line: ZIP-level population sums will not match state/national totals exactly. Use ZIP Code demographics for local analysis and targeting, not for verifying Census Bureau totals.

FTP access is included with your subscription at no extra cost.

Setup process:

  1. Email info@zip-codes.com with your account username.
  2. We'll set up your FTP account (typically same-day, often within the hour).
  3. You'll receive connection details and folder access information.
  4. Configure your FTP client or automated scripts.

Connection details:

  • FTP Address: ftp.zip-codes.com
  • IP Address: 216.250.119.190 (static, firewall-friendly)
  • Protocols: FTP, SFTP, FTPS supported
  • Ports: 21 (FTP), 22 (SFTP), 990 (FTPS Implicit)
  • Authentication: Username + Password (SSH keys supported)
  • Access: READ-ONLY (you cannot modify server files)

Update schedule:

  • Databases are published on the 1st of each month.
  • Recommended: Set automated scripts for the 5th to allow for any unforeseen delays.
  • Check the file's last modified date to determine if processing is needed.

Folder structure:

Each product has its own folder. You'll have access only to folders for your active subscriptions:

  • ZIP-STANDARD, ZIP-DELUXE, ZIP-BUSINESS - ZIP Code databases
  • ZIP-4-DELUXE, ZIP-4-STANDARD - ZIP+4 databases
  • CAN-BUSINESS, CAN-DELUXE, CAN-STANDARD - Canadian postal codes
  • NPANXX-DELUXE, NPANXX-STANDARD - Area code databases

For detailed FTP setup instructions and firewall configuration, visit our FTP Services Guide.

We recommend full replace for most applications.

Full Replace Method (Recommended):

  • Drop existing table or truncate data
  • Import new file completely
  • Rebuild indexes
  • Downtime: 5-30 seconds depending on database size

Why full replace works best:

  • Simple and reliable
  • Handles deleted ZIPs automatically
  • No risk of stale data
  • Fast with proper indexing

Incremental Update Method:

  • Best for high-availability systems requiring zero downtime.
  • Compare new file with existing data (several products have UPDATE files already prepared)
  • More complex to implement but preserves foreign key relationships
  • For our Update Files: DELETE obsolete records, then ADD new records. UPDATES are handled by a DELETE, followed by an ADD.

The simplest reliable update is a full reload: import the new file into a staging table, then swap it in inside a transaction. It avoids reconciling row-level changes entirely.

Updated monthly on the 1st. Our current data was last updated August 1, 2026.

Update frequency:

  • 12 updates per year (published on the 1st of each month)
  • Free FTP access enables automated monthly updates
  • Updates reflect the latest USPS data available

Why monthly updates matter:

The USPS typically introduces 10-50 changes per month. We admit, that isn't tremendous churn, and ZIP Codes are relatively stable. However, we have multiple data sources, and those follow various update schedules - we consolidate, validate, and publish promptly. It's not only ZIP Codes you rely on, it's everything related to it. In today's business landscape, data timeliness ensures:

  • Accuracy and quality in your applications
  • Customer satisfaction (correct deliveries)
  • Regulatory compliance
  • Operational efficiency
  • Effective marketing and targeting
  • Competitive advantage

Need real-time data? Consider our ZIP Code API for up-to-the-minute validation and lookups.

Yes, we maintain monthly versions dating back to October 2004.

Available options:

  • Single Month: Any specific publication since October 2004.
  • Complete Archive: All monthly versions from 2004 to present.
  • Redistribution License: Full archive with redistribution rights.

Formats available:

  • CSV, Excel, Access (all dates)
  • SQL scripts (available from ~2018 forward)

Use cases for historical data:

  • Analyzing ZIP Code changes over time
  • Validating addresses from legacy records
  • Research and trend analysis
  • Compliance and audit requirements

Note: Historical data reflects what was current at that point in time. Coordinates, demographics, and other fields may have been updated in subsequent months.

Purchase Historical Data →

No. ZIP Codes are mail delivery routes, not geographic divisions.

Most people think of ZIP Codes as: Nation > State > County > City > ZIP Code. This is incorrect.

What ZIP Codes actually are:

  • Created exclusively for efficient mail delivery.
  • Represent collections of mail delivery routes (which are collections of mailboxes)
  • Change over time as USPS delivery needs or mailboxes change.
  • Not required to respect City, County, or State boundaries. The USPS is a Federal Agency, just structured as a government-business hybrid and self-funding.

Real-world example:

Imagine a postal carrier placing mail in mailboxes down a long street. It would be highly inconvenient to stop and turn around at an imaginary county boundary line. The carrier continues the route to finish delivery- which means the ZIP Code crosses the county line.

Why this matters for developers:

  • You cannot aggregate ZIP Code data to match official county statistics.
  • You cannot use ZIP Code alone to determine County in ~23% of cases.
  • City boundaries and ZIP Code boundaries rarely align.
  • ZIPs can span multiple counties (even states!).
  • Use ZIP Codes for delivery logistics, not geographic analysis.

For true geographic analysis, use Census Blocks, Tracts, or Counties - not ZIP Codes.

No. ZIP Codes have city names for reference, but they are not cities.

The disconnect:

  • A ZIP Code may serve multiple cities, towns, or neighborhoods.
  • ZIP Code boundaries do not align with city municipality boundaries.
  • The "city name" on a ZIP Code is assigned by USPS for postal purposes.
  • Some names are actually for local businesses or entities (Ex: Universities, Airports, Arenas, neighborhoods, government agencies, and more).

Real example: Venice, California

Los Angeles city boundary vs Venice neighborhood boundary vs ZIP Code 90291 boundary

ZIP Code 90291 is for Venice, CA. Venice is a neighborhood within Los Angeles city limits with a population over 28,000. However:

  • Venice is not an incorporated city - it's a neighborhood in Los Angeles.
  • The 90291 ZIP boundary doesn't match the Venice neighborhood boundary.
  • You cannot compare 90291 demographic data with Los Angeles city data - the boundaries are completely different.
  • The map illustrates the disparity between boundaries. Los Angeles City Limits are shown in gray, the Venice Neighborhood Boundary in green outline, and the 90291 ZIP Code Boundary in red.

City Aliases:

Our database includes a CityAlias field listing alternate acceptable city names for mailing. Towns, villages, and well-known neighborhoods often appear here.

For developers:

  • Don't assume ZIP = City in your data model
  • Use the City field for USPS-preferred mailing names
  • Check CityAlias for alternate acceptable names
  • Never aggregate ZIP data to compare with official city statistics

Each ZIP Code is assigned one time zone based on where the majority of addresses are located.

Time zone format:

We use a numeric UTC offset system (legacy format we've maintained for compatibility):

  • 4 = Atlantic (GMT -04:00)
  • 5 = Eastern (GMT -05:00)
  • 6 = Central (GMT -06:00)
  • 7 = Mountain (GMT -07:00)
  • 8 = Pacific (GMT -08:00)
  • 9 = Alaska (GMT -09:00)
  • 10 = Hawaii-Aleutian Islands (GMT -10:00)
  • 11 = American Samoa (GMT -11:00)
  • 13 = Marshall Islands (GMT +12:00)
  • 14 = Guam (GMT +10:00)
  • 15 = Palau (GMT +9:00)
  • 16 = Micronesia (GMT +11:00)

Daylight Saving Time:

The DaylightSaving field indicates whether the ZIP observes DST:

  • Y = Observes DST (most of the US)
  • N = Does not observe DST (Arizona*, Hawaii, and most territories)

*Exception: The Navajo Nation in Arizona does observe DST

Edge cases:

  • ZIPs on time zone boundaries: Assigned based on majority of addresses or primary county
  • Military ZIPs: May have empty/zero time zone since they represent overseas locations
  • USPS assignment quirks: The primary county receives the largest mail volume, which determines time zone in edge cases

Note: We don't use IANA time zone identifiers (e.g., "America/New_York"). If you need IANA format, you'll need to map our numeric codes to IANA zones in your application.

We treat county equivalents exactly like counties-no special handling required.

Some states use different terminology for their county-level divisions, but the data structure remains consistent across all states:

States with county equivalents:

  • Alaska: Uses Boroughs and Census Areas instead of counties.
  • Louisiana: Uses Parishes instead of counties.
  • Connecticut: Transitioned from Counties to Planning Regions in 2022.
  • Virginia: Has independent cities that function as county equivalents.

How we handle them:

All county equivalents receive a standard County FIPS code from the federal government and are included in our County and CountyFIPS fields just like traditional counties. You don't need to do anything special in your code - query by county name or FIPS code as normal.

Examples:

  • Alaska's Anchorage Municipality appears as County: Anchorage with FIPS code 02020
  • Louisiana's Orleans Parish appears as County: Orleans with FIPS code 22071
  • Connecticut's Planning Regions now use new region names with updated FIPS codes and appears County: Capitol with FIPS code 09110
  • Virginia's independent cities (like Alexandria) have their own FIPS codes and appears County: Fairfax City with FIPS code 51600

Connecticut's unique situation:

Connecticut eliminated county-level government in 1960 but retained counties for statistical purposes. In 2022, they officially replaced counties with Planning Regions. The U.S. Census began releasing data at the new region level in 2023. The USPS updated its ZIP Code products to use planning regions in July 2024.

This staggered rollout created significant challenges, especially for individuals unaware of the change. It was publicized, but not widely known. Our ZIP Code Database includes the new Planning Region FIPS codes and names from the USPS. However, if you're working with Connecticut data, you'll need to maintain a historical county crosswalk for relating to older datasets that still reference the legacy county structure. The Planning Regions received entirely new FIPS codes as part of the transition.

We've created a comprehensive guide with ZIP Code to Historical County crosswalks (including ZIP+4 level) to help smooth this transition. Evena cool map to see the relation of between ZIP Codes, Towns, Historical Counties, and new Planning Regions.

Read our complete guide to Connecticut's planning regions →

Bottom line: Whether it's a county, parish, borough, or planning region-we use the current federal standard. Just be aware that Connecticut requires special attention if you're integrating with historical data sources.

Yes, we offer a separate ZIP Code API service.

ZIP Code API features:

  • Real-time ZIP Code validation and lookups.
  • Distance calculations and Radius searches.
  • Same field coverage as the database downloads.
  • RESTful service with JSON and XML response formats.
  • Includes both US ZIP Codes and Canadian Postal Codes.

Pricing:

The API is a separate purchase with monthly billing based on request volume:

  • Free tier: 250 requests/month
  • Paid tiers: $9.95 to $129.95/month (1,000 to 2M requests)
  • No per-second rate limits - just monthly quotas

Database vs API - which to choose?

  • Database: Best for bulk processing, internal applications, or when you need the complete dataset locally.
  • API: Best for real-time validation, web forms, mobile apps, or when you need the latest data without manual updates.

Note: The API is designed for lookups and validation, not bulk data transfer. If you need all records, the database download is more efficient and cost-effective.

Learn More About the API →

Yes, all military ZIP Codes are included in every edition.

Military ZIP Code types:

  • APO - Army Post Office
  • FPO - Fleet Post Office (Navy)
  • DPO - Diplomatic Post Office

What to expect:

Military ZIPs have basic information but lack geographic data since they represent overseas locations:

  • Included: ZIP Code, City (APO/FPO/DPO), State (AE/AP/AA), Classification Code (M), Intro Date.
  • Typically empty: Coordinates, County, Time Zone, City Aliases, Census data, CBSA codes.
  • USPS indicators: Some USPS-specific fields like CityStateKey are populated.

For developers:

  • Filter by ClassificationCode = 'M' to identify military ZIPs.
  • Many shipping carriers restrict delivery to military addresses - validate business rules accordingly.
  • Demographic and Geographic data is not available for these ZIPs.

Military ZIP Codes follow different rules than civilian ZIPs - they're included for completeness, but they do have limited data fields due to their unique usage. The USPS maintains these so U.S. families can send mail and packages to a local "address". They collect the mail and deliver to military transit locations who then get it to our service men and woman; whether they are on a boat, in a plane, at an overseas base, or hidden in an undisclosed bunker somewhere. P.S. We are a veteran owned business!

Specs check out? Three editions — 28, 57 or 85 documented columns — from $49.95 a year.

See pricing & editions

Still have questions?

1-800-425-1169

A developer picks up, not a ticket queue.

Email us

info@zip-codes.com

Answered within the hour during business hours.