ACS data download at zip code level

Could someone point out the URL for downloading the ACS either single year or 5-year average data at the zip code level?  There are about 45000 zip codes in the US so I expect to see the data file with about 45000 rows.

Thank you!

Min

  • Assuming you already know which table(s) you want, you can get ZCTA (ZIP Code Tabulation Areas) for 2016 5 year ACS by
    going to Factfinder.Census.gov,
    clicking on "advanced search",
    then "show me all",
    then click "Geographies" on the left side,
    select "5 Digit ZIP Code Tabulation Area- 860" (ZCTA) (ignore that fact that "5 digit ZIP code" is an option, as it is not available for ACS and therefore won't give you any options to select ACS data if you choose it),
    then select "ALL 5 Digit ZIP Code Tabulation Areas in the United States and Puerto Rico",
    click the "Add to your selections" button,
    click close (for the geographic selection window).

    You will then see ALL the tables available, and you can filter these by entering a "topic or table name".

    I would suggest that you play around using a smaller set of ZCTAs (like all within a county or a smaller state) before you try downloading ALL of them, just so you can explore the file download options and make sure you can open it and get what you expect in the program you are going to read it into. All or which will be less unwieldy with a smaller data set.
  • Thank you very much, Peter. I was able to obtain the zip level info with your super clear instruction.

    I am curious to know how many total number of zip codes I should expect in the US. I thought it is about 45,000s, but I only got 33,000s. Would you have any insight on this?

    Appreciate your reply and information!

    Min
  • In reply to Min Wang:

    Below is a short description from Census of how they create ZCTAs (From the link I included above). I've highlighted the two main reasons that some ZIP codes do not appear in the universe of ZCTAs. I am not sure whether or not that explains the entire discrepancy between the total number of ZIP codes and the total number of ZCTAs.

    ------------------------
    The Census Bureau first examined all of the addresses within each census block to define the list of ZIP Codes by block. Next, the most frequently occurring ZIP Code within each block was assigned to the entire census block as a preliminary ZCTA code. After all of the census blocks with addresses were assigned a preliminary ZCTA code, blocks were aggregated by code to create larger areas.

    The Census Bureau assigned blocks that contained addresses, but did not have a single most frequently occurring ZIP Code to the ZCTA with which the blocks had the longest shared boundary.

    If the area of an unassigned enclave was less than two square miles, it was assigned to the surrounding ZCTA. The Census Bureau used block group boundaries to identify and group unassigned blocks. These unassigned blocks were merged into an adjacent ZCTA based on the length of shared boundary.

    For the Census 2000 ZCTAs the Census Bureau created ZCTAs that ended in "XX" to represent large areas of land without ZIP Codes or "HH" to represent large areas of water without ZIP Codes. For the 2010 Census, large water bodies and large unpopulated land areas do not have ZCTAs.

    ZCTAs were created using residential and nonresidential ZIP Codes that are available in the Census Bureau’s MAF/TIGER database. ZIP Codes assigned to businesses only or single delivery point address will not necessarily appear as ZCTAs.

    In most instances the ZCTA code is the same as the ZIP Code for an area.

    In creating ZCTAs, the Census Bureau took the most frequently occurring ZIP Code in an area for the ZCTA code. Some addresses will end up with a ZCTA code different from their ZIP Code.

    Some ZIP Codes represent very few addresses (sometimes only one) and therefore will not appear in the ZCTA universe.

  • In reply to Peter Brownell:

    That explained the difference.

    Thank you, Peter.

    Min
  • In reply to Peter Brownell:

    Hi Peter,

    I am not able to find ZCTA geography level data via API (base URL: api.census.gov/.../acs1)
    However, I do see the data at ZCTA level on factfinder website.
    Is this not available via API?

    But I could see the data at ZCTA level for ACS 5 year Detailed tables - 2011 (https://api.census.gov/data/2011/acs/acs5)

    Did they discontinue ZCTA level data API after that?
    Could you please help me here.

  • In reply to Shiva:

    ZCTAs are not included in the 1-year data release, because only ~250 ZCTAs (out of ~33000) surpass the 65,000 population threshold required for inclusion in the 1-year data release.

    Change "acs1" to "acs5" in your example and you should have better results.
  • In reply to Joe Germuska:

    HI Joe,

    Thanks for your inputs.
    I could see data at ZCTA level for 5 year estimates.

    Regards,
    Shiva
  • In reply to Joe Germuska:

    Hi Joe,

    I have one more question.
    Is it possible to retrieve data of all the features (called variables in the website. Example: B01001_001E) in one API call.
    As of now, I guess, we need to call API one by one for each variable.

    For example, Below API call retrieves total population estimate (B01001_001E) for ZCTA=33141
    api.census.gov/.../acs5

    But if I replace B01001_001E with wildcard * to retrieve data for all variables, it does not work.
    I understand if we use *, there will be lot of data. But is this not supported?
    Could you please help me here?

    Thanks & Regards,
    Shiva
  • In reply to Shiva:

    I'm afraid I'm not extremely experienced using the API; perhaps someone else here can advise?

    I lead a project called Census Reporter, which provides an alternative web presentation for the current ACS (that is, there's no historic data, and each year, we update it when new ACS data is released) -- we have an API which was designed for our own needs, but we welcome public access to the API, as long as their use doesn't interfere with our ability to run our site, which mostly manifests as an upper limit to the number of geographies which are returned in a single query.

    You can get all variables for a single table from our site, for about 3500 geographies at a time. (I can't remember exactly where the threshold is set.) For example, this is all of B01001 for ZCTA 33141 api.censusreporter.org/.../latest

    See github.com/.../API.md for more information.