US address geocode with Census geographies API
Geocodes a one-line US address, or reverse-geocodes a lat/lon point, to coordinates and the Census geographies containing it: state and county FIPS, county subdivision, place, tract, block group, block, ZCTA, congressional and state legislative districts, school districts, urban area, metro or micro area, metro division, CSA, PUMA, census region and division, plus ground elevation in feet. Sources: US Census Geocoder (current benchmark), USGS 3DEP elevation service (EPQS).
$0.005 per call USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.
Endpoint
GET https://api.kit-rx.com/v1/geo/us-address
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
address | string | no | One-line US street address (5 to 100 characters). Mutually exclusive with lat/lon. e.g. 350 5th Ave, New York, NY 10118 |
lat | string | no | Latitude in decimal degrees for reverse lookup, paired with lon. US states, DC, Puerto Rico and island areas. e.g. 40.7484 |
lon | string | no | Longitude in decimal degrees for reverse lookup, paired with lat. e.g. -73.9857 |
elevation | string: true, false | no | Include USGS ground elevation (default true). The USGS service is slow and can add up to about 7 s to the response; false skips it. e.g. true |
Example request
https://api.kit-rx.com/v1/geo/us-address?address=350+5th+Ave%2C+New+York%2C+NY+10118
Without payment the server answers 402 Payment Required with the price (5000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.
curl -i "https://api.kit-rx.com/v1/geo/us-address?address=350+5th+Ave%2C+New+York%2C+NY+10118"
Pay from an agent
AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://api.kit-rx.com/mcp. Code:
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://api.kit-rx.com/v1/geo/us-address?address=350+5th+Ave%2C+New+York%2C+NY+10118");
console.log(await res.json());
Example response
{
"query": {
"address": "350 5th Ave, New York, NY 10118"
},
"result": {
"mode": "address",
"matched_address": "350 5TH AVE, NEW YORK, NY, 10118",
"components": {
"number": "350",
"street": "5TH AVE",
"city": "NEW YORK",
"state": "NY",
"zip": "10118"
},
"location": {
"lat": 40.747851,
"lon": -73.985076
},
"match_count": 1,
"geographies": {
"state": {
"name": "New York",
"fips": "36",
"usps": "NY"
},
"county": {
"name": "New York County",
"fips5": "36061"
},
"county_subdivision": {
"name": "Manhattan borough",
"geoid": "3606144919"
},
"incorporated_place": {
"name": "New York city",
"geoid": "3651000"
},
"census_designated_place": null,
"census_tract": {
"geoid": "36061007600",
"name": "Census Tract 76"
},
"block_group": {
"geoid": "360610076001"
},
"block": {
"geoid": "360610076001001",
"vintage": 2020
},
"tribal_census_tract": null,
"zcta": "10001",
"congressional_district": {
"district": "12",
"name": "Congressional District 12",
"geoid": "3612",
"congress": 120,
"at_large": false
},
"state_senate_district": {
"district": "28",
"name": "State Senate District 28",
"geoid": "36028",
"plan_year": 2026
},
"state_house_district": {
"district": "75",
"name": "Assembly District 75",
"geoid": "36075",
"plan_year": 2026
},
"school_districts": {
"unified": {
"name": "New York City Department Of Education",
"geoid": "3620580"
},
"elementary": null,
"secondary": null
},
"urban_area": {
"name": "New York--Jersey City--Newark, NY--NJ Urban Area",
"geoid": "63217"
},
"metro_area": {
"name": "New York-Newark-Jersey City, NY-NJ Metro Area",
"cbsa": "35620",
"type": "metropolitan"
},
"metro_division": {
"name": "New York-Jersey City-White Plains, NY-NJ Metro Division",
"code": "35614"
},
"csa": {
"name": "New York-Newark, NY-NJ-CT-PA CSA",
"code": "408"
},
"puma": {
"name": "NYC-Manhattan Community Districts 5 & 6--Midtown, East Midtown, & Flatiron PUMA",
"geoid": "3604165",
"vintage": 2020
},
"census_region": {
"name": "Northeast Region",
"code": "1"
},
"census_division": {
"name": "Middle Atlantic Division",
"code": "2"
}
},
"elevation_ft": 47.7
},
"sources": [
{
"name": "US Census Bureau Geocoder",
"url": "https://geocoding.geo.census.gov/geocoder/"
},
{
"name": "USGS Elevation Point Query Service (3DEP)",
"url": "https://apps.nationalmap.gov/epqs/"
}
],
"generated_at": "2026-11-14T23:58:02.015Z"
}
Kit Rx: Composed public-data reports for AI agents, paid per call in USDC over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.