API
Query it from your own code
Everything the web product can answer, available as JSON. 51 official sources, one endpoint, correctly weighted — so your pipeline stops scraping agency websites and starts asking a question.
# the same weighted cross-tab the web app runs
curl https://pumsdata.com/v1/segment \
-H "Authorization: Bearer $PUMSDATA_KEY" \
-d '{ "geo": "county:06065", "age": [25,44], "tenure": "rent" }'
{
"estimate": 184203,
"moe": 4117,
"geography": "Riverside County, CA",
"source": "ACS PUMS 2023 1-year",
"weighted": true
}Illustrative — the endpoint shape is not final and the API is not open yet. See below.
API
Custom pricing
quoted per client
Programmatic access, scoped and priced to your volume and refresh cadence.
Request access →Not self-serve yet — the API is in development and we're taking a small number of design partners first. Tell us what you'd query and we'll come back to you.
- Every dataset and geography the web product can answer
- Weighted cross-tabs returned as JSON — the same engine, not an export
- Unlimited queries; no per-call metering
- Unlimited exports and full history — everything Unlimited includes
- Keys per environment, rotatable, with per-key usage
- A named human who answers email, not a ticket queue
In whatever you already write
A key, a URL, and JSON back. No SDK to adopt, no schema to learn before the first call.
# pip install requests
import requests
r = requests.post(
"https://pumsdata.com/v1/segment",
headers={"Authorization": f"Bearer {KEY}"},
json={"geo": "state:06", "metric": "median_rent"},
)
print(r.json()["estimate"])const r = await fetch("https://pumsdata.com/v1/segment", {
method: "POST",
headers: { Authorization: `Bearer ${key}` },
body: JSON.stringify({ geo: "metro:31080", metric: "poverty_rate" }),
});
const { estimate } = await r.json();Where this actually stands
The API is not open. The query engine behind it is the one already answering every question on this site, but key issuance and per-key authentication are still being built, so there is nothing to hand you today.
We would rather say that than put a price on a login you cannot use. If you tell us what you would query, that shapes what ships — and design partners help set the scope, and the price, rather than being quoted one.
In the meantime everything is available in the web product, and every paid plan includes exports. See the standard plans.