Data USA API
Free Data USA API with no key: Census, BLS and BEA figures pre-joined into queryable cubes with drilldowns by nation, state, county and metro. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Data USA API?
Data USA is a free, key-free analytics API that packages US federal statistics — American Community Survey, Bureau of Labor Statistics and Bureau of Economic Analysis data — into named cubes you query with drilldowns and measures, returning tidy rows rather than raw statistical formats.
Where the Census and BLS APIs make you assemble geography codes and decode variable names, Data USA has already done the joining and labelling. You name a cube, name the dimensions to break out (`drilldowns=Nation,Year`) and name what to count (`measures=Population`), and get back an array of flat objects with readable column names. It is the fastest route from question to chart of any US statistics API, which is why it is popular for teaching and prototyping.
The behaviour to watch is aggregation. Omit a time drilldown and the API happily sums the measure across every year in the cube — an unfiltered population query returns 3.6 billion Americans, which is every ACS year added together rather than an error. Always drill down on `Year` or pin `time=year.latest`. The `annotations` block on every response names the source dataset, the underlying Census table ID and a plain-English description of the survey, which is exactly what you need for a citation line under a chart.
Quick facts
- Base URL
https://honolulu-api.datausa.io/tesseract- Authentication
- No API key or registration. Data USA is a joint MIT Media Lab and Deloitte project built on public federal data.
- Rate limit
- No published limit. Queries are computed server-side, so cache rather than re-running identical requests.
- Pricing
- Free. The underlying federal data is public domain; Data USA asks for attribution.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Data USA 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. Fetch the latest US population figure
GET https://honolulu-api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_1&drilldowns=Nation,Year&measures=Population&time=year.latest
curl 'https://honolulu-api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_1&drilldowns=Nation,Year&measures=Population&time=year.latest'const res = await fetch("https://honolulu-api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_1&drilldowns=Nation,Year&measures=Population&time=year.latest");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://honolulu-api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_1&drilldowns=Nation,Year&measures=Population&time=year.latest", timeout=20)
res.raise_for_status()
print(res.json()){
"annotations": {
"topic": "Diversity",
"dataset_name": "ACS 1-year Estimate",
"source_name": "Census Bureau",
"source_description": "The American Community Survey (ACS) is conducted by the US Census and sent to a portion of the population every year.",
"subtopic": "Demographics",
"table_id": "B01003",
"dataset_link": "http://www.census.gov/programs-surveys/acs/"
},
"page": {
"limit": 0,
"offset": 0,
"total": 1
},
"columns": [
"Nation ID",
"Nation",
"Year",
"Population"
],
"data": [
{
"Nation ID": "01000US",
"Nation": "United States",
"Year": 2024,
"Population": 340110990.0
}
]
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
cube | query | Required | Cube name, for example `acs_yg_total_population_1`. acs_yg_total_population_1 |
drilldowns | query | Required | Comma-separated dimensions to break the measure out by. Always include a time dimension. Nation,Year |
measures | query | Required | The measure to return. Population |
time | query | Optional | Time shortcut such as `year.latest` — the simplest guard against cross-year summing. year.latest |
{Dimension} | query | Optional | Filter on any dimension by passing its name as a parameter. Year=2023 |
Response fields
annotationsobject- Provenance: source name, dataset name, underlying Census table ID and a plain-English survey description. Ideal for a citation line.
annotations.table_idstring- The Census table behind the cube, for example `B01003`, so you can trace a figure to its origin.
columnsarray- Column names in the order they appear in `data`.
dataarray- Flat row objects with human-readable keys such as `Nation` and `Population`.
pageobject- `limit`, `offset` and `total`. A `limit` of 0 means unpaginated.
What you can build with the Data USA API
- Show US population, income or industry figures without decoding Census variables
- Compare states or metro areas on a single indicator
- Prototype a demographics dashboard quickly
- Cite the exact Census table behind a figure using `annotations`
Common errors and how to fix them
Implausibly large numbers
No time drilldown, so the measure summed across every year.
Fix: Add `Year` to `drilldowns`, or pin `time=year.latest`. This is the single most common mistake with this API.
400 unknown cube
The cube name is wrong or has been renamed.
Fix: Cube names follow a `source_geo_measure` pattern; check the current list rather than guessing.
Empty data array
The drilldown combination has no rows in that cube.
Fix: Reduce to one drilldown and add dimensions back one at a time.
Old endpoint returns 404
The legacy `datausa.io/api/data` path has been retired.
Fix: Use the tesseract endpoint on honolulu-api.datausa.io shown here.
Data USA API — frequently asked questions
Is the Data USA API free?
Yes, with no key or registration. It is a joint MIT Media Lab and Deloitte project that repackages public US federal data.
Why did my population query return billions?
Because without a time drilldown the API sums the measure across every year in the cube. Add `Year` to `drilldowns` or set `time=year.latest` and the figure comes back correct.
Where does the data come from?
The American Community Survey, Bureau of Labor Statistics and Bureau of Economic Analysis, among others. Every response's `annotations` block names the source dataset and the specific Census table ID.
How is this different from calling the Census API directly?
The Census API returns raw variable codes and requires you to assemble geography identifiers yourself. Data USA has pre-joined and labelled everything, so you get readable rows straight away — at the cost of only having the cubes it has built.
Tools that pair with this API
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.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
CSV Viewer & Table
View CSV as a clean HTML table online. Live search filter, row and column counts, delimiter and header options — all processed locally in your browser.
Data USA 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.