census.gov APIwww.census.gov ↗
Access US Census Bureau ACS housing data — home values, rents, occupancy rates, and housing units by state, county, ZIP, tract, and more.
curl -X GET 'https://api.parse.bot/scraper/a7a77a76-6329-44e5-b61f-fd84d5965dfb/get_property_data?year=2022&dataset=acs%2Facs5&geo_code=%3Czip_code%3E&geo_level=zip' \ -H 'X-API-Key: $PARSE_API_KEY'
Get property and housing statistics for a specified geography. Returns median home value, median rent, owner/renter occupancy, housing unit counts, median year built, median rooms, household income, and monthly housing costs from ACS data.
| Param | Type | Description |
|---|---|---|
| year | string | ACS data year (e.g. 2022, 2021, 2020). |
| dataset | string | ACS dataset: acs/acs5 (5-year estimates, all geographies) or acs/acs1 (1-year estimates, larger areas only). |
| geo_code | string | FIPS code for the geography, or * for all entities at the specified geo_level. |
| geo_level | string | Geography level. Accepted values: state, county, place, zip, tract. |
| state_code | string | 2-digit state FIPS code. Required for place and tract queries; optional for county queries to filter within a state. |
| county_code | string | 3-digit county FIPS code. Required for tract queries. |
{
"type": "object",
"fields": {
"year": "string, the data year queried",
"dataset": "string, the ACS dataset used",
"results": "array of objects with name, median_home_value, median_gross_rent, total_occupied_units, owner_occupied_units, renter_occupied_units, total_housing_units, occupied_units, vacant_units, median_year_built, median_rooms, median_household_income, median_monthly_housing_costs, and applicable FIPS codes",
"geo_level": "string, geography level queried",
"total_results": "integer, number of geographic areas returned"
},
"sample": {
"data": {
"year": "2022",
"dataset": "acs/acs5",
"results": [
{
"name": "ZCTA5 90210",
"zip_code": "90210",
"total_units": 9690,
"median_rooms": 6.9,
"vacant_units": 1797,
"occupied_units": 7893,
"median_gross_rent": 3034,
"median_home_value": 2000001,
"median_year_built": 1965,
"total_housing_units": 9690,
"owner_occupied_units": 5853,
"total_occupied_units": 7893,
"renter_occupied_units": 2040,
"median_household_income": 172285,
"median_monthly_housing_costs": 4001,
"total_owner_occupied_units_value": 5853
}
],
"geo_level": "zip",
"total_results": 1
},
"status": "success"
}
}About the census.gov API
This API exposes 3 endpoints for querying American Community Survey (ACS) housing and property statistics from the US Census Bureau. Use get_property_data to retrieve median home values, median gross rent, owner/renter occupancy counts, total housing units, median year built, and household income across five geography levels — state, county, place, ZIP code, or census tract — for any available ACS data year.
What the API returns
The get_property_data endpoint returns an array of geographic areas, each with fields including median_home_value, median_gross_rent, total_occupied_units, owner_occupied_units, renter_occupied_units, and additional housing cost and structure metrics. You can target any ACS-supported geography using geo_level (state, county, place, zip, or tract), supply a specific FIPS code via geo_code, or pass * to retrieve all entities at that level. The state_code and county_code params are required for narrower geographies like tracts.
Choosing the right dataset
The dataset param selects between acs/acs5 (5-year estimates, covering all geographies including small census tracts and ZIP codes) and acs/acs1 (1-year estimates, restricted to areas with populations of 65,000 or more). The year param controls which ACS release is queried — for example, 2022 returns the most recently published 2022 estimates. 5-year estimates are generally preferred for tract- and ZIP-level analysis due to their larger sample sizes.
Discovering tables and variables
The search_property_tables endpoint accepts a query keyword and returns matching ACS table IDs, descriptions, and a variables_url for each. Once you have a table ID — for example, B25077 for median home value or B25001 for total housing units — pass it to get_table_variables to inspect every variable code, label, concept, and data type in that table. This discovery workflow lets you identify the exact variable codes available before constructing a data query.
- Map median home values and gross rents by county or ZIP code for a real estate market analysis tool.
- Compare owner-occupied vs. renter-occupied unit ratios across states for housing policy research.
- Build a neighborhood demographic dashboard pulling tract-level household income and housing cost data.
- Filter ACS tables by keyword to discover relevant census variables for a custom housing affordability index.
- Aggregate total housing unit counts by state to model regional housing supply trends over multiple ACS years.
- Pull median year built by census tract to identify older housing stock for renovation or infrastructure planning.
- Query place-level housing data to enrich a city comparison tool with census-sourced rental and ownership metrics.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the US Census Bureau provide an official developer API?+
What geography levels does get_property_data support, and are there any requirements for narrower geographies?+
geo_level param accepts state, county, place, zip, and tract. For place and tract queries, state_code (2-digit FIPS) is required. For tract queries, county_code (3-digit FIPS) is also required. County queries optionally accept state_code to restrict results to a single state.Does the acs/acs1 dataset cover all geographies?+
acs/acs1) only covers geographic areas with populations of 65,000 or more. Smaller counties, most census tracts, and many ZIP Code Tabulation Areas are only available in the 5-year estimates (acs/acs5). Use acs/acs5 when querying tract- or ZIP-level data.Can I retrieve individual household-level records or microdata through this API?+
Does the API expose non-housing Census variables like population, education, or commute data?+
get_property_data focus on housing metrics. However, search_property_tables and get_table_variables let you browse ACS table groups beyond housing. Non-housing demographic variables are not surfaced in the current response schema. You can fork the API on Parse and revise it to add endpoints targeting other ACS subject tables.