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.
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.
| File | What it is | Columns | Size | Edition |
|---|---|---|---|---|
zip-codes-database-STANDARD.csv | The main table | 31 | 16.8 MB | Standard |
zip-codes-database-DELUXE.csv | The main table | 60 | 34.8 MB | Deluxe |
zip-codes-database-DELUXE-BUSINESS.csv | The main table | 93 | 52.3 MB | Business |
census-acs-2020-2024-zcta.csv | American Community Survey, 5-year estimates | 543 | 67.4 MB | Business |
census-2010-zcta.csv | 2010 Decennial Census by ZCTA | 186 | 20.7 MB | Business |
census-2020-zcta.csv | 2020 Decennial Census by ZCTA | 161 | 18.7 MB | Business |
zip-codes-database-PLACE-FIPS.csv | Place FIPS codes per ZIP | 25 | 18.4 MB | Business |
zip-codes-database-MULTI-COUNTY.csv | County splits for ZIPs crossing county lines | 6 | 1.0 MB | Business |
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.
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 · keyZIPCODE
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 · keyZIPCODE
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 · keyZIPCode
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 · keyZIPCODE
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.
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 1 | 8 | 9 | 9 | ||
ZipCode | 00000-99999 Five digit numeric ZIP Code of the area.Example: 12533 | Char(5) | |||
Latitude | Geographic coordinate as a point measured in degrees north or south of the equator.Example: 41.583325 | Decimal(12, 6) | |||
Longitude | Geographic coordinate as a point measured in degrees east or west of the Greenwich Meridian.Example: -73.780928 | Decimal(12, 6) | |||
State | 2 letter state name abbreviation.Example: NY | Char(2) | |||
StateFullName | The full US State Name.Example: New York | VarChar(35) | — | ||
AreaCode | The telephone area codes available in this ZIP Code.Example: 845/914 | VarChar(55) | |||
City | Name of the city as designated by the USPS.Example: HOPEWELL JUNCTION | VarChar(35) | |||
County | Name of Primary County or Parish this ZIP Code resides in.Example: Dutchess | VarChar(45) | |||
ClassificationCode | The classification type of this ZIP Code.Values: (blank) = Regular ZIP Code, P = PO Box, U = Unique, M = Military | Char(1) | |||
| Record Structure & City Aliases 9 fields Business adds 1 | 8 | 9 | 9 | ||
PrimaryRecord | Character 'P' denoting if this row is a Primary Record or not. Absence of character denotes a non-primary record. | Char(1) | |||
CityType | Indicates the type of locale such as Post Office, Stations, or Branch. | Char(1) | |||
CityAliasAbbreviation | 13 Character abbreviation for the city alias name. | VarChar(13) | |||
CityAliasName | Alias name of the city if it exists. | VarChar(35) | |||
MailingName | Yes or No (Y/N) flag indicating whether or not the USPS accepts this City Alias Name for mailing purposes. | Char(1) | — | ||
PreferredLastLineKey | Links this record with other products ZIP-Codes.com offers. | VarChar(10) | |||
MultiCounty | Flag indicating whether this ZIP Code crosses county lines. | Char(1) | |||
CityStateKey | Links this record with other products ZIP-Codes.com offers such as the ZIP+4. | Char(6) | |||
CityAliasCode | Code 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 18 | 0 | 14 | 18 | ||
Population | The population of the ZIP Code based on 2020 Census data.Example: 28945 | Integer | — | ||
HouseholdsPerZipCode | The estimated number of households of the ZIP Code based on 2020 Census data. | Integer | — | ||
WhitePopulation | The estimated White/Caucasian Population of the ZIP Code based on 2020 Census data.Example: 22450 | Integer | — | ||
BlackPopulation | The estimated Black/African American Population of the ZIP Code based on 2020 Census data.Example: 3200 | Integer | — | ||
HispanicPopulation | The estimated Hispanic Population of the ZIP Code based on 2020 Census data.Example: 2100 | Integer | — | ||
AsianPopulation | The estimated Asian Population of the ZIP Code based on 2020 Census data.Example: 1850 | Integer | — | ||
HawaiianPopulation | The estimated Hawaiian or Pacific Islander Population of the ZIP Code based on 2020 Census data.Example: 25 | Integer | — | ||
IndianPopulation | The estimated American Indian and Alaska Native Population of the ZIP Code based on 2020 Census data.Example: 120 | Integer | — | ||
OtherPopulation | The estimated Population of all other races for the ZIP Code based on 2020 Census data.Example: 850 | Integer | — | ||
MalePopulation | The estimated Male Population of the ZIP Code based on 2020 Census data.Example: 14120 | Integer | — | ||
FemalePopulation | The estimated Female Population of the ZIP Code based on 2020 Census data.Example: 14825 | Integer | — | ||
PersonsPerHousehold | The estimated average number of persons per household of the ZIP Code based on 2020 Census data.Example: 2.58 | Decimal(4, 2) | — | ||
AverageHouseValue | The median house value from Census ACS 5-Year Estimates.Example: 325000 | Integer | — | ||
IncomePerHousehold | The median household income from Census ACS 5-Year Database Specifications Estimates.Example: 72500 | Integer | — | ||
MedianAge | The median age for all people based on 2020 Census data.Example: 42.5 | Decimal(3, 1) | — | — | |
MedianAgeMale | The median age for males based on 2020 Census data.Example: 41.3 | Decimal(3, 1) | — | — | |
MedianAgeFemale | The median age for females based on 2020 Census data.Example: 43.7 | Decimal(3, 1) | — | — | |
PopulationEstimate | An up to the month population estimate for this ZIP Code. Based on USPS data.Example: 29450 | Integer | — | — | |
| Statistical Areas 17 fields Business adds 17 | 0 | 13 | 17 | ||
MSA | Metropolitan Statistical Area number.Example: 5602 | VarChar(35) | — | ||
PMSA | Primary Metropolitan Statistical Area number.Example: 5380 | Char(4) | — | ||
CSA | Combined Statistical Area.Example: 408 | Char(3) | — | ||
CBSA | Core Based Statistical Area number.Example: 35620 | Char(5) | — | ||
CBSA_Div | Core Based Statistical Area Division. | Char(5) | — | ||
CBSA_Type | Core Based Statistical Area Type (Metro or Micro). | Char(5) | — | ||
CBSA_Name | Core Based Statistical Area Name or Title. | VarChar(150) | — | ||
MSA_Name | Metropolitan Statistical Area name or Title. | VarChar(150) | — | ||
PMSA_Name | Primary Metropolitan Statistical Area name or Title. | VarChar(150) | — | ||
Region | A 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: Northeast | VarChar(10) | — | ||
Division | A 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 Atlantic | VarChar(20) | — | ||
CBSAPopulation | The estimated population for the selected CBSA. Based on 2010 Census data.Example: 18897109 | Integer | — | — | |
CBSADivisionPopulation | The estimated population for the selected CBSA Division. Based on 2010 Census data.Example: 2832882 | Integer | — | — | |
CongressionalDistrict | This field shows which Congressional Districts the ZIP Code belongs to.Example: 18 | VarChar(150) | — | — | |
CongressionalLandArea | This field provides the approximate land area covered by the Congressional District for which the ZIP Code belongs to.Example: 182.01 | VarChar(150) | — | — | |
CSAName | The name of the CSA this ZIP Code is in. Based on 8/2017 OMB data.Example: New York-Newark, NY-NJ-CT-PA | VarChar(255) | — | ||
CBSA_Div_Name | The name of the CBSA Division this ZIP Code is in.Example: Nassau County-Suffolk County, NY | VarChar(255) | — | ||
| USPS Delivery & Postal 13 fields Business adds 8 | 5 | 5 | 13 | ||
DeliveryResidential | The 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: 8946 | Integer | — | — | |
DeliveryBusiness | The 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: 686 | Integer | — | — | |
DeliveryTotal | The 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: 11452 | Integer | — | — | |
BoxCount | Total count of PO Box deliveries in this ZIP Code. Take from USPS data.Example: 1303 | Integer | — | — | |
SFDU | Total count of single family deliveries in this ZIP Code; generally analogous to homes. Taken from USPS data.Example: 5662 | Integer | — | — | |
MFDU | Total count of multifamily deliveries in this ZIP Code; generally analogous to apartments. Taken from USPS data.Example: 814 | Integer | — | — | |
ZIPIntroDate | The date this ZIP Code was introduced into the database.Example: <2004-10 | VarChar(15) | — | — | |
AliasIntroDate | The date this City Alias was introduced for this ZIP Code.Example: 2012-08 | VarChar(15) | — | — | |
FacilityCode | The type of locale identified in the city/state name.Example: P (Post Office), B (Branch), S (Station), U (Unique) | VarChar(1) | |||
CityDeliveryIndicator | Specifies whether or not a post office has city-delivery carrier routes.Example: Y (Yes) or N (No) | VarChar(1) | |||
CarrierRouteRateSortation | Identifies where automation Carrier Route rates are available.Example: C (City), R (Rural), H (Highway Contract) | VarChar(1) | |||
FinanceNumber | A code assigned to Postal Service facilities.Example: 353910 | VarChar(6) | |||
UniqueZIPName | Field that specifies whether the City State Record contains the organization name for a unique ZIP Code.Example: Y | VarChar(1) | |||
| Location & Physical Geography 5 fields Business adds 2 | 3 | 3 | 5 | ||
Elevation | The elevation, measured in feet.Example: 364 | Integer | |||
TimeZone | Code for hours past Greenwich Time Zone this ZIP Code belongs to. | Char(2) | |||
DayLightSaving | Flag indicating whether this ZIP Code observes daylight savings. | Char(1) | |||
LandArea | The land area of this ZIP Code in Square Miles.Example: 64.416 | Decimal(12,6) | — | — | |
WaterArea | The water area of this ZIP Code in Square Miles.Example: 0.308 | Decimal(12,6) | — | — | |
| Government Codes & Identifiers 5 fields Business adds 1 | 4 | 4 | 5 | ||
CountyFIPS | FIPS code for the County this ZIP Code resides in.Example: 027 | Char(5) | |||
StateFIPS | FIPS code for the State this ZIP Code resides in.Example: 36 | Char(2) | |||
StateANSI | ANSI code for the State this ZIP Code resides in. Database SpecificationsExample: 01779809 | VarChar(2) | |||
CountyANSI | ANSI code for the County/Parish this ZIP Code resides in.Example: 00809654 | VarChar(3) | |||
SSAStateCountyCode | The State County Code as set by the Social Security Administration for Medicare and Medicaid. Based on latest CMS data.Example: 33700 | VarChar(5) | — | — | |
| Business & Employment 5 fields Business adds 5 | 0 | 0 | 5 | ||
NumberOfBusinesses | The total number of Business Establishments for this ZIP Code. Data taken from latest Census Business Patterns.Example: 1247 | Integer | — | — | |
NumberOfEmployees | The total number of employees for this ZIP Code. Data taken from latest Census Business Patterns.Example: 18450 | Integer | — | — | |
BusinessFirstQuarterPayroll | The total payroll for the first quarter this ZIP Code in $1000. Data taken from latest Census Business Patterns.Example: 145250 ($145,250,000) | Integer | — | — | |
BusinessAnnualPayroll | The total annual payroll for this ZIP Code in $1000. Data taken from latest Census Business Patterns.Example: 598750 ($598,750,000) | Integer | — | — | |
BusinessEmploymentFlag | Due 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 4 | 0 | 0 | 4 | ||
MedicareCBSACode | The CBSA Code for this ZIP Code as set by the Centers for Medicare and Medicaid Services. Based on Latest CMS data.Example: 35004 | VarChar(5) | — | — | |
MedicareCBSAName | The 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, NY | VarChar(255) | — | — | |
MedicareCBSAType | The 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 Micro | VarChar(5) | — | — | |
MarketRatingAreaID | The ID of the Insurance Market Rating Area as set by the Centers for Medicare & Medicaid Services. Based on latest CMS data.Example: 8 | Integer | — | — | |
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.
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.
, comma" double quote, used when a value contains a commaCRLF (\r\n).xls, Excel 2007 and later.xls limit, so the
table ships split across two workbooks. A PDF explaining this is in the download..mdb, Access 2007 and laterZipCodeDatabase_{Edition}ZipCode, State and
County are indexed, duplicates allowedDROP TABLE if exists → CREATE TABLE
→ INSERT INTOZIPCodes — case as writtenCREATE statement — see the note below firstutf8mb4 on MySQL)INSERTNULL keyword, unquotedSizes 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.
utf8mb4 on MySQL).ZipCode, IncomePerHousehold.MSA_Name, PMSA_Name, CBSA_Div,
CBSA_Type, CBSA_Name, CBSA_Div_Name.SFDU, MFDU.ZipCode + City + CityAliasName.ZipCode repeats — 80,794 rows across 41,541 distinct ZIP codes.ZipCode + PrimaryRecord.NULL — in CSV, Excel and Access.
Only the SQL scripts use the NULL keyword.0, not empty.00501). Spreadsheet software will strip them
on import unless the column is set to text first.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.
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 KB57 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 MB85 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 MBColumn counts are the documented columns for each edition — see the data dictionary for every name and type.
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:
0 rather than left empty.ZipCode + City + CityAliasName.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:
utf8mb4 character set and collation.ENCODING 'UTF8' when creating database.NVARCHAR data types for Unicode support.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:
Coordinate system: WGS84 (World Geodetic System 1984) datum
Precision: 6 decimal places (DECIMAL(10,6))
What the coordinates represent:
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:
ZIP field + Primary (always index both when you want distinct values only).State, County, City.CBSACode, MSACode if querying statistical areas.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:
(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:
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:
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:
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:
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.
There are currently 41,541 active ZIP Codes in the United States and territories, as of August, 2026.
ZIP Code types (by Classification Code):
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:
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:
WhitePopulation AND once in BlackPopulation.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:
Special populations:
Census methodology:
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:
Connection details:
Update schedule:
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 databasesZIP-4-DELUXE, ZIP-4-STANDARD - ZIP+4 databasesCAN-BUSINESS, CAN-DELUXE, CAN-STANDARD - Canadian postal codesNPANXX-DELUXE, NPANXX-STANDARD - Area code databasesFor detailed FTP setup instructions and firewall configuration, visit our FTP Services Guide.
We recommend full replace for most applications.
Full Replace Method (Recommended):
Why full replace works best:
Incremental Update Method:
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:
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:
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:
Formats available:
Use cases for historical data:
Note: Historical data reflects what was current at that point in time. Coordinates, demographics, and other fields may have been updated in subsequent months.
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:
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:
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:
Real example: Venice, California
ZIP Code 90291 is for Venice, CA. Venice is a neighborhood within Los Angeles city limits with a population over 28,000. However:
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:
City field for USPS-preferred mailing namesCityAlias for alternate acceptable namesEach 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:
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:
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:
County: Anchorage with FIPS code 02020County: Orleans with FIPS code 22071County: Capitol with FIPS code 09110County: Fairfax City with FIPS code 51600Connecticut'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:
Pricing:
The API is a separate purchase with monthly billing based on request volume:
Database vs API - which to choose?
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.
Yes, all military ZIP Codes are included in every edition.
Military ZIP Code types:
What to expect:
Military ZIPs have basic information but lack geographic data since they represent overseas locations:
For developers:
ClassificationCode = 'M' to identify military 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