Add census tracts to addresses
Append 2020 census tract, block group, county FIPS and ZCTA to a list of addresses for CRA, HMDA, grant applications and ACS joins.
What you get
For each address: state_fips, county_fips, the county name, county subdivision, place, the 11-digit tract GEOID, the 12-digit block group GEOID and the ZCTA, all on 2020 geographies from TIGER/Line 2025. The tract GEOID is the key you join to American Community Survey tables.
Spreadsheet
Open the spreadsheet geocoder, drop the file, tick Census, geocode, download. The new columns are prefixed census_.
API
curl "https://api.geocode.net/v1/geocode?q=1600+Pennsylvania+Ave+NW+Washington+DC&fields=census" -H "X-API-Key: YOUR_KEY"
{ "fields": { "census": { "state_fips": "11", "county_fips": "11001", "county": "District of Columbia",
"county_subdivision": { "geoid": "1100150000", "name": "Washington city" },
"place": { "geoid": "1150000", "name": "Washington" },
"tract": "11001980000", "block_group": "110019800001", "zcta": "20006",
"vintage": "2020 geographies, TIGER/Line 2025" } } }
For a file, use POST /v1/geocode/batch with "fields": "census"; see geocoding in Python.
Joining to ACS data
The Census API returns GEO_ID values like 1400000US11001980000. The part after US is our tract. In pandas:
acs["tract"] = acs["GEO_ID"].str.slice(-11)
merged = geocoded.merge(acs, on="tract", how="left")
For regulated reporting
Keep the accuracy_type column with the file. Examiners ask how a tract was assigned; "rooftop address point, National Address Database r24, TIGER/Line 2025" is an answer. Rows placed at a ZIP or place centroid should be re-checked before filing.
Ready to geocode for real?
10,000 free lookups a month, every append included, no card.