US Census Geocoder API
Free official US address geocoding API with no key or account: match addresses to coordinates and census geography, one at a time or 10,000 per batch. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the US Census Geocoder API?
The US Census Bureau Geocoder is a free, key-free API that matches American street addresses to coordinates using the TIGER road network. It also returns census geography — state, county, tract and block — and accepts batch files of up to 10,000 addresses at a time.
Most free geocoders throttle you at a few thousand calls a month and forbid storing the results. The Census Geocoder does neither, because it exists to support the decennial census rather than to sell an upgrade: there is no key, no account, no attribution requirement, and no restriction on keeping what it returns. For United States addresses that combination is close to unique.
What you get is a TIGER line interpolation, not a rooftop point. The response for the White House shows this clearly — the matched record covers the address range 1600 to 1698 on the left side of the block, and the coordinates are a position estimated along that segment. For routing, districting and demographic joins that is entirely adequate. For dropping a pin on a specific building, it is not, and no amount of parameter tuning will change that.
Quick facts
- Base URL
https://geocoding.geo.census.gov/geocoder- Authentication
- No API key, account or attribution requirement. US federal government work, in the public domain.
- Rate limit
- No published per-IP limit for single lookups. Batch files are capped at 10,000 addresses per submission.
- Pricing
- Free, with no restriction on storing or redistributing results.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the US Census Geocoder API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Geocode a US street address in one line
GET https://geocoding.geo.census.gov/geocoder/locations/onelineaddress?address=1600+Pennsylvania+Ave+NW%2C+Washington%2C+DC&benchmark=2020&format=json
curl 'https://geocoding.geo.census.gov/geocoder/locations/onelineaddress?address=1600+Pennsylvania+Ave+NW%2C+Washington%2C+DC&benchmark=2020&format=json'const res = await fetch("https://geocoding.geo.census.gov/geocoder/locations/onelineaddress?address=1600+Pennsylvania+Ave+NW%2C+Washington%2C+DC&benchmark=2020&format=json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://geocoding.geo.census.gov/geocoder/locations/onelineaddress?address=1600+Pennsylvania+Ave+NW%2C+Washington%2C+DC&benchmark=2020&format=json", timeout=20)
res.raise_for_status()
print(res.json()){
"result": {
"input": {
"address": {
"address": "1600 Pennsylvania Ave NW, Washington, DC"
},
"benchmark": {
"isDefault": false,
"benchmarkDescription": "Public Address Ranges - Census 2020 Benchmark",
"id": "2020",
"benchmarkName": "Public_AR_Census2020"
}
},
"addressMatches": [
{
"tigerLine": {
"side": "L",
"tigerLineId": "76225813"
},
"coordinates": {
"x": -77.03518753691,
"y": 38.89869893252
},
"addressComponents": {
"zip": "20500",
"streetName": "PENNSYLVANIA",
"preType": "",
"city": "WASHINGTON",
"preDirection": "",
"suffixDirection": "NW",
"fromAddress": "1600",
"state": "DC",
"suffixType": "AVE",
"toAddress": "1698",
"suffixQualifier": "",
"preQualifier": ""
},
"matchedAddress": "1600 PENNSYLVANIA AVE NW, WASHINGTON, DC, 20500"
}
]
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
address | query | Required | The full address as one string, for the `onelineaddress` endpoint. 1600 Pennsylvania Ave NW, Washington, DC |
benchmark | query | Required | Which road vintage to match against. `2020` is the Census 2020 benchmark; `Public_AR_Current` tracks the latest. 2020 |
format | query | Required | `json` or `html`. Always send `json` for programmatic use. json |
street / city / state / zip | query | Optional | Component form, used by the `/locations/address` endpoint instead of one line. 1600 Pennsylvania Ave NW |
vintage | query | Optional | Required by the `/geographies/` endpoints, which return census tract and block alongside coordinates. Census2020_Census2020 |
(batch) | form field | Optional | `/locations/addressbatch` accepts a CSV upload of up to 10,000 addresses in one POST. |
Response fields
result.inputobject- Echo of what you sent, including the benchmark actually applied — worth logging when results look odd.
result.addressMatchesarray- Matches found. An empty array means no match, and that is the normal failure mode.
matchedAddressstring- The standardised address the geocoder matched, in Census formatting.
coordinates.x / coordinates.yfloat- Longitude is `x` and latitude is `y`. The naming is the reverse of the usual habit, so read it carefully.
addressComponents.fromAddress / toAddressstring- The house-number range of the matched street segment. A wide range means a coarse interpolation.
addressComponents.streetName, suffixType, suffixDirectionstring- Parsed pieces of the street name, normalised and uppercased.
tigerLine.tigerLineId / sidestring- Identifier of the road segment matched and which side of it the address falls on.
(geographies endpoint) geographiesobject- State, county, tract and block codes, when you call `/geographies/` rather than `/locations/`.
What you can build with the US Census Geocoder API
- Geocode a large US address file with no per-record cost
- Attach census tract and block codes for demographic analysis
- Assign customers to counties or congressional districts
- Standardise messy user-entered US addresses to a consistent format
- Bulk-geocode a research dataset where storing results is a requirement
Common errors and how to fix them
Empty addressMatches with HTTP 200
The address could not be matched.
Fix: This is the standard no-match response. Retry without the unit or suite number, which the matcher does not use and which frequently prevents a match.
400 Bad Request
The `benchmark` parameter is missing.
Fix: It is mandatory on every request. Use `2020` for a fixed vintage or `Public_AR_Current` to follow the latest road file.
Coordinates fall in the middle of a block
Not an error — this is TIGER line interpolation, not rooftop geocoding.
Fix: Check `fromAddress` and `toAddress`. A wide range means the point was estimated across many buildings, so treat the precision accordingly.
No census tract in the response
You called a `/locations/` endpoint, which returns coordinates only.
Fix: Use `/geographies/onelineaddress` with a `vintage` parameter to get tract, block and county codes.
US Census Geocoder API — frequently asked questions
Is the Census Geocoder really free with no API key?
Yes. It is a US federal service with no key, no account and no attribution requirement, and results are in the public domain — you may store and redistribute them freely.
How accurate is it?
It interpolates along TIGER road segments rather than locating rooftops. That is fine for demographic joins, district assignment and routing, but the point can sit tens of metres from the actual building, and further on rural segments with long address ranges.
Can I geocode thousands of addresses at once?
Yes. The `addressbatch` endpoint accepts a CSV of up to 10,000 addresses per submission. Processing takes a while for a full file, so treat it as an asynchronous job rather than an interactive call.
Does it geocode addresses outside the United States?
No. Coverage is the United States and its territories only, since the underlying TIGER file is built for the census. International addresses return no match.
Tools that pair with this API
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
Coordinate Converter
Convert GPS coordinates between decimal degrees, degrees-minutes-seconds and decimal minutes instantly. Paste any format like 40°26'46"N and copy the result.
US Census Geocoder is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.