Orange is my favorite color

If you want to search by zip code, provide distance-from calculations or verify the city and state when someone enters a zip code, you’ll need a zip code database.

For MotorsportReg.com, I originally used a free but outdated USA zip code database with latitude and longitude. I know it’s outdated because my application sends me a note anytime someone searches using a zip code that isn’t found (and then I manually insert a record into the database – a pain). Unfortunately, I had not been able to find anything similar for Canada so I finally broke down and researched the available options to bring my system up to date. To save you time, here are my results:

Product Price Notes
CivicSpace ZipDB Free Distributed under a Creative Commons license. Uses data from 1999/2000 with some 2003 updates. The price is right if the data is a bit old but US only.
Popular Data AKA CFDynamics Free No license mentioned but both a US and Canadian version available. This is the first free Canadian version I have found. Doesn’t include time zone or DST flag which may or may not matter to you. Old data (probably the same basis as the CivicSpace)
ZipCodeWorld USA and Canada Premium USA: $39 / $99 (1-year)
Canada: $149 / $249 (1-year)
By far the most expensive and no real advantages over ZipCodeDownload from what I can discern from the docs. Only company to also offer a Mexico database but no bundled pricing. The less expensive “Basic” products do not include latitude and longitude data.
• ZIP Code
• City Name (USPS Preferred)
• State Code
• Area Code
• City State Name (Alias)
• City Name Abbreviation
• City Type
• County Name
• County FIPS
• Time Zone
• Day Light Saving Flag
• Latitude & Longitude
• Elevation
ZipCodeDownload $169 / $249 (1-year) Very complete dataset; better value than ZipPostalWorld for essentially same data. Also has standalone US and Canadian GeoCode versions.
• Country
• ZIP / Postal Codes
• Postal Type
• City
• Alternate Cities
• City Type
• State/Province
• State/Province Abbreviation
• Primary & Alternate Area Codes
• Time Zone
• UTC Shift
• DST Flag
• Latitude
• Longitude

USA Data Only:
• County
• County FIPS
• State FIPS
• MSA Code
• MSA Code Descriptions

ZipList Can-USA GeoCode $79 / $239 (1-year) One really ghetto website but if you aren’t concerned about quarterly updates, the $80 one-time purchase price is the best deal on the Internet. There are a few less fields in this dataset compared to ZipCodeDownload but they weren’t important for my use (e.g., there is only a State/Province abbreviation field and not the full name). Latitude and longitude is only specified to four decimal places (approximately ~100 feet in most cases). This is the one I purchased.
• City Name
• State/Province Code (2 chars)
• ZIP/Postal Code
• Area Code
• County Name (USA only)
• Time zone
• DST
• Country
• Latitude (7 characters: nn.nnnn)
• Longitude (7 or 8 characters: nnn.nnnn)
• ZIP code type (USA only)
• County FIPS (USA only)

Sort out the licensing for your particular usage as I’ve tried to provide an apples-to-apples barebone pricing comparison. If there’s interest, I can go into further detail on my zipcode.cfc and geo-locator SQL queries? It’s not rocket science, but would be perhaps useful to newer users or those on a time crunch.

Update 8/23/2007 – I just came across a new US-only zip code database with latitude and longitude for $5. It says it was last updated August 2007 so it should be current but the low price makes me skeptical.

Update 9/24/2007 – Ahmed from iBegin wrote in to say they are offering a geocoded database based on recent USPS Zip+4 data for free.

9 Comments

  1. Dan G. Switzer, II said:

    on June 12, 2007 at 2:15 pm

    Thanks for compiling this list!

  2. Dan Wilson said:

    on June 12, 2007 at 4:00 pm

    Glad to see you made it back safely from your adventure.

    DW

  3. Duncan Loxton said:

    on June 12, 2007 at 4:46 pm

    This is really interesting stuff and a useful resource for geocoders in the United States. I just worked on a project for this very task down under and blogged about this very topic over at http://www.sixfive.co.uk/index.cfm/2007/3/25/Geocoding-Australian-Postcodes but with an Australian slant.

  4. brian said:

    on June 12, 2007 at 6:19 pm

    @Dan – thanks, it was time well spent!

    @Duncan – I had never considered using Google or Yahoo’s geocoding service to reverse engineer the postal code data. That is absolute genius on your part. Since there are 5000-something changes to the zip code data every year, it won’t solve the “keep the data updated” problem but it is certainly good enough for 90% of the applications out there.

  5. Zack Steinkamp said:

    on June 15, 2007 at 7:37 am

    That is absolute genius on your part. Since there are 5000-something changes to the zip code data every year, it won’t solve the “keep the data updated” problem but it is certainly good enough for 90% of the applications out there.

    Well, unless you hit the web service each time you want to do the lookup. No local storage == data stays updated. However, there may be implications for your app in terms of response time if the ‘net or the service is slow. There is also the issue of rate limits (1/sec/ip address for google, 5000/day/ip for yahoo), but since both use IP address as a key, you can circumvent the limit by assigning more than one IP per server and round-robin which one you use to make the request.

  6. brian said:

    on June 15, 2007 at 8:09 am

    @Zack: That’s a good point too although I am leery about on-the-fly web services. If you mix in some caching and temporary storage in there, I think you might have a winner. In my opinion, $80 for the database is a fair price and having it locally will let me do some things with it I don’t think I could do if the data was remote (run reports on large data sets/etc).

  7. brian said:

    on July 19, 2007 at 1:11 pm

    Re-reading this today, I noticed that my “by far the most expensive” comment for ZipCodeWorld looks wrong because of the $39 price next to it but it’s because they segment their USA/Canada databases. To recap, the one-time purchase price is $188 for both databases and $348 for a one-year subscription; a hefty $109 above the ZipList Can-USA Geocode pricing.

  8. Orange is my favorite color » Blog Archive » Importing Geocoded Zip Database to Postgres said:

    on July 25, 2007 at 10:32 am

    [...] on my geocoded zip code database research, I wound up purchasing the ZipList Can-USA GeoCode database. Here’s what I did to get their [...]

  9. Jupiter said:

    on September 14, 2007 at 3:11 am

    I have found errors in the db that you used from ziplist.com

    Try 89183 which is a new zip in Las Vegas. I used Google Earth to see exactly where the coordinates where it was telling me. They were about 10 miles off from where mapquest locates it to be.

    I have searched many sites, and most give me the same coordinates as ziplist. The only ones who have gotten it right so far are the mapping websites (mapquest, maps.yahoo, etc) and http://www.xionetic.com, but theirs isn’t a database but instead a software package.

    After many hours of research, I found this blog and thought I would let you know not to completely trust the mentioned db, before continuing my search for a truly correct list.

{ RSS feed for comments on this post}