USPS: ZIP Codes are “commercially sensitive . . . proprietary” information

No ZIP Codes for You

The U.S. Postal Service denied our FOIA request for a list of current ZIP Codes, because the information is “proprietary business information” and its release would not be considered a “good business practice”. foia-screenshotThis followed their refusal to license us their online ZIP Code API because we were not planning on using it for USPS shipping. They suggested that we purchase a $3,000 per year “data product” containing the information. This offering, however, has so many technical and licensing hurdles that it’s essentially unusable.

Our Hunt for ZIP Codes Started When We Became Interested in Mapping Restaurant Health Inspections

foia-rejection-screenshotWe create apps which increase access to laws and government info. This is mostly a labor of love, earning enough money to cover the costs of running the Internet servers.

There isn’t yet an app or website for easily browsing restaurant health inspections in Multnomah County, Oregon. The County does have a web app, but it has a lot of issues, and won’t be upgraded until late next year.

Critically, while sorting through the County’s data for each restaurant, we found that the city is missing, although the ZIP Code is there. And so to place these on a map we needed a current list of ZIP Codes and corresponding city names.

Our search for this simple information culminated in this rejected FOIA request to the U.S. Postal Service. This is because our “open source” open-government use of the data is not an acceptable reason to either 1) provide us online access to the USPS API, or 2) send us a current list of ZIP Codes and cities.

20 thoughts on “USPS: ZIP Codes are “commercially sensitive . . . proprietary” information

    1. Thanks Max. I’ve looked into this. I believe it won’t work because the Census data is very different from the (updated daily) USPS ZIP Codes.


      1. The zip codes the USPS uses are based on individual points, while the Census ones are an interpolated area based on that. For what you are trying to do with restaurants in well established areas, the Census files should be fine. If you really wanted to be safe, you could CASS certify all your addresses, which will ensure the ZIP is up to date, and crosscheck the points to the zip code polygons and adjust accordingly.


      2. the usps stuff aren’t actually polygons but routes that mail carriers use. Disregarding the troubling issues relating to open data, the census stuff will probably be a bit more helpful to you overall, because any marginal decrease in accuracy to it is going to be offset by it being a polygon structure which is going to be massively more useful.


    2. I could be wrong, but my recollection is that some ZIP codes do not have a matching ZCTA; some are subsumed into a different ZCTA.


  1. Robb,

    I’d love to work with you not only to get this information from the USPS, but also to change their stance on sharing this sort of data. Please get in touch via my email address if interested.


  2. This is not an problem only of you. Her in Brazil our Correios (same like U.S. Postal Service) too restrict acess to Zip Codes.

    So as Max Shapiro write we need do web crawlers to acquire this information or acquire from others

    Good luck in your war


  3. I’m a developer at SmartyStreets — and I know, ZIP codes are tricky. They tend to change (monthly), so you’d want to keep your list, if any, updated. On one hand, the USPS has good reason for keeping a tight lid on ZIP codes: they have little practical value outside of mailing. ZIP codes aren’t geographical regions, so they’re hard to put on a map. (They’re actually lines, kind of, see this Stack Overflow post: ) They probably want to maintain the quality of ZIP code data that’s available, instead of having it decay in various unauthorized venues. (Yes, on the other hand, there’s a strong case to be made for having them be open.)

    Incidentally, have you considered a type of low-cost API from a vendor such as SmartyStreets to augment/fill-out your data? Check out the TOS. Interestingly, you’ll find they are less restrictive than the USPS’ terms (as long as you’re not reverse-engineering a list of ZIP codes just to have them).


  4. That’s nonsense. They don’t own all the numbers from 00001 up to 99999. Nothing to keep you from creating your own list. With that said, I’d be happy to give you an updated list anytime you need it. We deal with the USPS and their address data, so we get an update monthly.

    let me know – [email protected]


  5. This is also a problem here in Sweden, the zip code database here is not open either, and crumbled with restrictions on what you can do with it.


  6. The USPS is a print advertising business first and foremost. Now that I pay most of my bills online, something like 90 percent by weight of the mail I receive is advertising, which the ‘letter’ carriers are required to deliver.

    If FedX or UPS showed up at my door every day with stuff I didn’t want, I’d get a restraining order. But because the USPS has this ‘unique’ dual mandate from Congress, I can’t do anything about it.

    It’s a shocking waste – the machines that print the junk and sort it, the manpower and vehicle fuel to deliver it to the routes and so on.


  7. FYI if you just want to go ZIP->city, I think the “City State” file will give you what you need at a mere $385/year, updated quarterly, IIRC. If you google “ctystate.txt” you might find a sample.

    I, too, find it fairly absurd that this data is not freely available, especially for non-profit uses like yours (presumably).


  8. Somewhere in the auto complete for google maps, when you enter the zip code, it provides the city and location. Is there a way to translate that code to read it for your purposes?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s