Data USA
App · Research & Academia · 8 actions
Read US public data from a workflow. Data USA publishes what the federal statistical agencies collect - the Census Bureau's American Community Survey, the Bureau of Labor Statistics, IPEDS and others - through one query API, so population by county, wages by occupation and enrolment by university are all asked the same way. Find the dataset that answers a question, read the columns and numbers it offers, then query it: break the numbers down by state, year or any other column, narrow them to the members you care about, keep only the rows above a threshold, and sort or page through the rest. Take the top few rows of every group in one request, track a number over time with the change from one year to the next, or line several places up side by side ranked with each one's share. Every answer carries the agency and the survey it came from. Every action reads: nothing here changes anything. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Compare members | Compare one number across several places or categories, ranked biggest first with each one's share of the total and how far it is behind the leader. |
| Get a dataset's schema | Get one dataset's measures, dimensions and levels: the numbers it reports, what each one is aggregated by, and every column those numbers can be broken down across, with how many distinct values each column holds. |
| Get a measure over time | Get how one number has moved: the series period by period, oldest first, each with the change from the period before, plus the change across the whole window, the average, and the highest and lowest periods. |
| Get data | Run a query against a Data USA dataset and get the rows back. |
| Get the top rows per group | Get the highest or lowest few rows for each group, in one request rather than one per group: the three best-paid occupations in every state, or the single year each state's population peaked. |
| List a level's members | List the distinct values of one column of a dataset, each with the key a query has to be written in. |
| List datasets | Find the Data USA dataset that holds the numbers a question needs. |
| List topics | Summarize everything Data USA publishes by the subjects it covers: how many datasets sit under each topic, the subtopics inside it and the agencies the numbers come from. |
Compare members
Compare one number across several places or categories, ranked biggest first with each one's share of the total and how far it is behind the leader. Members can be given by name rather than by key, because the level's members are read and the names translated, and anything that matched nothing is reported as missing rather than quietly dropped. The most recent period is compared by default, because a measure added up across every year at once is a number that looks right and means nothing. No API key required.
Inputs
- Dataset
cubetextRequired - The dataset to read, by its name rather than its title: 'acs_yg_total_population_5' is the Census Bureau's population by geography and year. List the datasets to find the one that holds the numbers you want.
- Number to compare
measuretextRequired - The measure the comparison ranks by, by name. Read the dataset's schema for the measures it offers.
- Comparing which column
leveltextRequired - The column the members below belong to, by level name.
- Members to compare
memberstextRequired - Between two and twenty-five members, by name or by key. Capitals, punctuation and spacing are ignored. Names that contain a comma, as county names do, have to be given as a list rather than typed one after another.
- Compare within one period
time_leveltext - The column that measures time, by level name. Almost every Data USA dataset calls it 'Year'. To compare the all-time aggregate instead, set the period below to 'Every period added together'.Default:
Year. - Which period
time_modetext - Which end of the dataset's time range to compare in. The most recent is the default, so the comparison moves on its own as the agencies publish. 'Every period added together' is how to ask for the all-time aggregate on purpose.One of:
latest(The most recent period the dataset holds),oldest(The earliest period the dataset holds),trailing(A window back from the most recent period),leading(A window forward from the earliest period),all(Every period added together). Default:latest. - How many periods
time_amountnumber - How many periods to compare across. One, the default, compares a single period.From 1 to 1000. Default:
1.
Outputs
cubetextfoundtrue/falseleadertextleader_valuenumberleveltextmeasuretextmember_countnumbermemberslistmissinglistsourceobjecttime_leveltexttotalnumberurltext
Example output
{
"cube": "acs_yg_total_population_5",
"found": true,
"leader": "California",
"leader_value": 39242785,
"level": "State",
"measure": "Population",
"member_count": 3,
"members": [
{
"caption": "California",
"difference_from_leader": 0,
"key": "04000US06",
"percent": 55.36,
"period": "2023",
"rank": 1,
"value": 39242785
},
{
"caption": "Texas",
"difference_from_leader": -9082421,
"key": "04000US48",
"percent": 42.55,
"period": "2023",
"rank": 2,
"value": 30160364
},
{
"caption": "Alaska",
"difference_from_leader": -38508814,
"key": "04000US02",
"percent": 1.04,
"period": "2023",
"rank": 3,
"value": 733971
}
],
"missing": [],
"source": {
"dataset_link": "http://www.census.gov/programs-surveys/acs/",
"dataset_name": "ACS 5-year Estimate",
"source_description": "The American Community Survey (ACS) is conducted by the US Census and sent to a portion of the population every year.",
"source_name": "Census Bureau",
"subtopic": "Demographics",
"table_id": "B01003",
"topic": "Diversity"
},
"time_level": "Year",
"total": 70882468,
"url": "https://api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_5&drilldowns=State,Year&measures=Population&include=State:04000US06,04000US48,04000US02&sort=Population.desc&time=Year.latest.1&limit=50,0"
}Get a dataset's schema
Get one dataset's measures, dimensions and levels: the numbers it reports, what each one is aggregated by, and every column those numbers can be broken down across, with how many distinct values each column holds. The levels also come back as one flat list, because that is what a query's drilldowns are written in. Read this before writing a query rather than guessing at column names. No API key required.
Inputs
- Dataset
cubetextRequired - The dataset to read, by its name rather than its title: 'acs_yg_total_population_5' is the Census Bureau's population by geography and year. List the datasets to find the one that holds the numbers you want.
Outputs
captiontextcubetextdimension_countnumberdimensionslistfoundtrue/falselevel_countnumberlevelslistmeasure_countnumbermeasureslistsourceobjecturltext
Example output
{
"caption": "ACS Total Population 5-Year",
"cube": "acs_yg_total_population_5",
"dimension_count": 2,
"dimensions": [
{
"caption": "Geography",
"default_hierarchy": "Geography",
"hierarchies": [
{
"caption": "Geography",
"levels": [
{
"caption": "Nation",
"depth": 1,
"member_count": 1,
"name": "Nation"
},
{
"caption": "State",
"depth": 2,
"member_count": 52,
"name": "State"
},
{
"caption": "County",
"depth": 3,
"member_count": 3222,
"name": "County"
}
],
"name": "Geography"
}
],
"name": "Geography",
"type": "geo"
},
{
"caption": "Year",
"default_hierarchy": "Year",
"hierarchies": [
{
"caption": "Year",
"levels": [
{
"caption": "Year",
"depth": 1,
"member_count": 11,
"name": "Year"
}
],
"name": "Year"
}
],
"name": "Year",
"type": "time"
}
],
"found": true,
"level_count": 4,
"levels": [
{
"caption": "Nation",
"depth": 1,
"dimension": "Geography",
"hierarchy": "Geography",
"member_count": 1,
"name": "Nation",
"properties": [],
"qualified_name": "Geography.Geography.Nation"
},
{
"caption": "State",
"depth": 2,
"dimension": "Geography",
"hierarchy": "Geography",
"member_count": 52,
"name": "State",
"properties": [],
"qualified_name": "Geography.Geography.State"
},
{
"caption": "County",
"depth": 3,
"dimension": "Geography",
"hierarchy": "Geography",
"member_count": 3222,
"name": "County",
"properties": [],
"qualified_name": "Geography.Geography.County"
},
{
"caption": "Year",
"depth": 1,
"dimension": "Year",
"hierarchy": "Year",
"member_count": 11,
"name": "Year",
"properties": [],
"qualified_name": "Year.Year.Year"
}
],
"measure_count": 1,
"measures": [
{
"aggregator": "sum",
"attached": [],
"caption": "Population",
"name": "Population",
"type": "int64"
}
],
"source": {
"dataset_link": "http://www.census.gov/programs-surveys/acs/",
"dataset_name": "ACS 5-year Estimate",
"source_description": "The American Community Survey (ACS) is conducted by the US Census and sent to a portion of the population every year.",
"source_name": "Census Bureau",
"subtopic": "Demographics",
"table_id": "B01003",
"topic": "Diversity"
},
"url": "https://api.datausa.io/tesseract/cubes/acs_yg_total_population_5"
}Get a measure over time
Get how one number has moved: the series period by period, oldest first, each with the change from the period before, plus the change across the whole window, the average, and the highest and lowest periods. Name a member to narrow it to one place or one category, by its name or by its key. The most recent periods are the ones returned, so a step can say 'up 2.1% on last year' rather than quoting a number with nothing to compare it against. No API key required.
Inputs
- Dataset
cubetextRequired - The dataset to read, by its name rather than its title: 'acs_yg_total_population_5' is the Census Bureau's population by geography and year. List the datasets to find the one that holds the numbers you want.
- Number to track
measuretextRequired - The measure whose movement you want, by name. Read the dataset's schema for the measures it offers.
- One point per
time_leveltext - The column that measures time, by level name. Almost every Data USA dataset calls it 'Year'.Default:
Year. - Narrow to a level
leveltext - The column the member below belongs to, by level name. Leave both empty for the whole dataset added up.
- Narrow to this member
membertext - Which member of that level to track, by its name or by its key. Capitals, punctuation and spacing are ignored, so a name printed by an earlier step can be pasted straight in.
- How many periods
periodsnumber - How far back the series goes, counted in periods rather than years. The most recent ones are the ones returned.From 2 to 200. Default:
20.
Outputs
averagenumberchangenumberchange_percentnumbercubetextfirstobjectfoundtrue/falsehighestobjectlastobjectlowestobjectmeasuretextmemberobjectperiod_countnumberserieslistsourceobjecttime_leveltexttotalnumberurltext
Example output
{
"average": 39349907.33,
"change": -212568,
"change_percent": -0.54,
"cube": "acs_yg_total_population_5",
"first": {
"period": "2021",
"value": 39455353
},
"found": true,
"highest": {
"period": "2021",
"value": 39455353
},
"last": {
"period": "2023",
"value": 39242785
},
"lowest": {
"period": "2023",
"value": 39242785
},
"measure": "Population",
"member": {
"caption": "California",
"key": "04000US06",
"level": "State"
},
"period_count": 3,
"series": [
{
"change": 0,
"change_percent": 0.0,
"period": "2021",
"value": 39455353
},
{
"change": -103769,
"change_percent": -0.26,
"period": "2022",
"value": 39351584
},
{
"change": -108799,
"change_percent": -0.28,
"period": "2023",
"value": 39242785
}
],
"source": {
"dataset_link": "http://www.census.gov/programs-surveys/acs/",
"dataset_name": "ACS 5-year Estimate",
"source_description": "The American Community Survey (ACS) is conducted by the US Census and sent to a portion of the population every year.",
"source_name": "Census Bureau",
"subtopic": "Demographics",
"table_id": "B01003",
"topic": "Diversity"
},
"time_level": "Year",
"total": 118049722,
"url": "https://api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_5&drilldowns=Year,State&measures=Population&include=State:04000US06&sort=Year.desc&limit=20,0"
}Get data
Run a query against a Data USA dataset and get the rows back. Name the dataset, the columns to break the numbers down by and the numbers themselves, then narrow the answer: to particular members, to everything but particular members, to rows above or below a threshold, to the most recent periods the dataset holds. Sort it, page through it, and pull in each row's parent so a county row also says which state it is in. A measure is aggregated over everything it is not broken down by, so include the time level unless you mean the total across every year. No API key required.
Inputs
- Dataset
cubetextRequired - The dataset to read, by its name rather than its title: 'acs_yg_total_population_5' is the Census Bureau's population by geography and year. List the datasets to find the one that holds the numbers you want.
- Break the numbers down by
drilldownstextRequired - The columns to split the numbers across, by level name: 'State,Year' gives one row per state per year. A measure is aggregated over everything you do not break it down by, so leaving the time level out sums every year the dataset holds. Read the dataset's schema for the levels it offers.
- Numbers to return
measurestextRequired - The measures to return, by name: 'Population' in the population dataset. Read the dataset's schema for the measures it offers, each with the aggregation the dataset applies to it.
- Only these members
includetext - Narrow the answer to particular members, written 'Level:member' and separated by semicolons: 'Year:2023' for one year, 'Year:2023;State:04000US01' for one state in one year. Members are given by key, not by name, so read the level's members first: Alabama is 04000US01.
- Everything but these members
excludetext - The mirror of the field above: everything except the members named. Written the same way, 'Level:member' separated by semicolons. Use it to drop a member that would dominate a chart, such as the national total in a list of states.
- Only rows where this measure
filter_measuretext - Keep only the rows whose value for this measure passes the test below. The measure has to be one the query asks for.
- is
filter_operatortext - How the measure is compared with the number below. The two 'has a value' tests take no number: use them to drop rows the survey suppressed.One of:
gt(Greater than),gte(Greater than or equal to),lt(Less than),lte(Less than or equal to),eq(Equal to),neq(Not equal to),isnull(Has no value (takes no number)),isnotnull(Has a value (takes no number)). - this number
filter_valuenumber - The number the measure is compared with. Not needed for the two 'has a value' tests.
- and also
filter_jointext - How a second condition on the same measure combines with the first. Only used when a second operator is set.One of:
and(Both conditions must hold),or(Either condition may hold). Default:and. - is also
second_filter_operatortext - A second test on the same measure, which is how a range is written: greater than 250,000 and less than 750,000.One of:
gt(Greater than),gte(Greater than or equal to),lt(Less than),lte(Less than or equal to),eq(Equal to),neq(Not equal to),isnull(Has no value (takes no number)),isnotnull(Has a value (takes no number)). - this number
second_filter_valuenumber - The number the second test compares with.
- Sort by
sort_bytext - Order the rows by a measure or by one of the columns they are broken down by. A direction written into the value, as in '-Population' or 'Population desc', is used instead of the field below.
- Direction
sort_ordertext - Which end of the sort comes first.One of:
desc(Largest first),asc(Smallest first). Default:desc. - Include parent members
parentstrue/false - Add the members each row sits inside: with this on, a row about a county also says which state it is in. Off by default because it widens every row.Default:
false. - Parents of these levels only
parent_levelstext - Add parents for particular levels rather than for all of them, by level name. Naming levels here overrides the checkbox above.
- Time dimension
time_dimensiontext - Which dimension the time window below applies to. Almost every Data USA dataset calls it 'Year', which is the default.Default:
Year. - Time window
time_modetext - Restrict the answer to one end of the dataset's time range without knowing what that range is. 'The most recent periods' is what a scheduled workflow usually wants, because the newest year available moves as the agencies publish. Leave empty for no restriction.One of:
latest(The most recent periods the dataset holds),oldest(The earliest periods the dataset holds),trailing(A window back from the most recent period),leading(A window forward from the earliest period). - How many periods
time_amountnumber - How many periods the time window covers. Leave empty for the single period at that end of the range.From 1 to 1000.
- Rows to return
limitnumber - How many rows to return. The answer says how many match in total, so a query that hits this limit can be paged through with the offset below.From 1 to 2000. Default:
100. - Skip this many rows
offsetnumber - How many rows to skip before returning any, for reading a large answer a page at a time.From 0 to 1000000. Default:
0.
Outputs
columnslistcubetextdrilldownslistfoundtrue/falsehas_moretrue/falselimitnumbermeasureslistoffsetnumberrecord_countnumberrecordslistsourceobjecttotal_recordsnumberurltext
Example output
{
"columns": [
"State ID",
"State",
"Year",
"Population"
],
"cube": "acs_yg_total_population_5",
"drilldowns": [
"State",
"Year"
],
"found": true,
"has_more": false,
"limit": 100,
"measures": [
"Population"
],
"offset": 0,
"record_count": 3,
"records": [
{
"Population": 5054253,
"State": "Alabama",
"State ID": "04000US01",
"Year": 2023
},
{
"Population": 733971,
"State": "Alaska",
"State ID": "04000US02",
"Year": 2023
},
{
"Population": 7268175,
"State": "Arizona",
"State ID": "04000US04",
"Year": 2023
}
],
"source": {
"dataset_link": "http://www.census.gov/programs-surveys/acs/",
"dataset_name": "ACS 5-year Estimate",
"source_description": "The American Community Survey (ACS) is conducted by the US Census and sent to a portion of the population every year.",
"source_name": "Census Bureau",
"subtopic": "Demographics",
"table_id": "B01003",
"topic": "Diversity"
},
"total_records": 52,
"url": "https://api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_5&drilldowns=State,Year&measures=Population&include=Year:2023&limit=100,0"
}Get the top rows per group
Get the highest or lowest few rows for each group, in one request rather than one per group: the three best-paid occupations in every state, or the single year each state's population peaked. Every column the ranking names has to be asked for in the same request, which is checked before the request goes out so a mistake comes back as a sentence rather than as the server's rejection. Break the numbers down by something the groups do not cover, usually the time level, or each group holds a single row and the measures come back as totals across every period at once. No API key required.
Inputs
- Dataset
cubetextRequired - The dataset to read, by its name rather than its title: 'acs_yg_total_population_5' is the Census Bureau's population by geography and year. List the datasets to find the one that holds the numbers you want.
- Break the numbers down by
drilldownstextRequired - The columns to split the numbers across, by level name: 'State,Year' gives one row per state per year. A measure is aggregated over everything you do not break it down by, so leaving the time level out sums every year the dataset holds. Read the dataset's schema for the levels it offers.
- Numbers to return
measurestextRequired - The measures to return, by name: 'Population' in the population dataset. Read the dataset's schema for the measures it offers, each with the aggregation the dataset applies to it.
- How many per group
top_countnumber - How many rows to keep for each group. One gives the single best row per group.From 1 to 100. Default:
1. - One result per
top_group_bytextRequired - The columns that define a group, by level name: with 'State' you get the top rows for each state. Every level named here has to be one of the columns the query breaks the numbers down by, and should not be all of them: 'State' here wants 'State,Year' above, so that there are years to take the top of.
- Ranked by
top_rank_bytextRequired - The measure or column that decides which rows are on top. It has to be one the query already asks for.
- Take the
top_ordertext - Whether the top of the ranking is the largest values or the smallest.One of:
desc(Largest first),asc(Smallest first). Default:desc. - Only these members
includetext - Narrow the answer to particular members, written 'Level:member' and separated by semicolons: 'Year:2023' for one year, 'Year:2023;State:04000US01' for one state in one year. Members are given by key, not by name, so read the level's members first: Alabama is 04000US01.
- Everything but these members
excludetext - The mirror of the field above: everything except the members named. Written the same way, 'Level:member' separated by semicolons. Use it to drop a member that would dominate a chart, such as the national total in a list of states.
- Include parent members
parentstrue/false - Add the members each row sits inside: with this on, a row about a county also says which state it is in. Off by default because it widens every row.Default:
false. - Parents of these levels only
parent_levelstext - Add parents for particular levels rather than for all of them, by level name. Naming levels here overrides the checkbox above.
- Time dimension
time_dimensiontext - Which dimension the time window below applies to. Almost every Data USA dataset calls it 'Year', which is the default.Default:
Year. - Time window
time_modetext - Restrict the answer to one end of the dataset's time range without knowing what that range is. 'The most recent periods' is what a scheduled workflow usually wants, because the newest year available moves as the agencies publish. Leave empty for no restriction.One of:
latest(The most recent periods the dataset holds),oldest(The earliest periods the dataset holds),trailing(A window back from the most recent period),leading(A window forward from the earliest period). - How many periods
time_amountnumber - How many periods the time window covers. Leave empty for the single period at that end of the range.From 1 to 1000.
- Rows to return
limitnumber - How many rows to return. The answer says how many match in total, so a query that hits this limit can be paged through with the offset below.From 1 to 2000. Default:
100. - Skip this many rows
offsetnumber - How many rows to skip before returning any, for reading a large answer a page at a time.From 0 to 1000000. Default:
0.
Outputs
columnslistcubetextdrilldownslistfoundtrue/falsehas_moretrue/falselimitnumbermeasureslistoffsetnumberrecord_countnumberrecordslistsourceobjecttopobjecttotal_recordsnumberurltext
Example output
{
"columns": [
"State ID",
"State",
"Year",
"Population"
],
"cube": "acs_yg_total_population_5",
"drilldowns": [
"State",
"Year"
],
"found": true,
"has_more": false,
"limit": 100,
"measures": [
"Population"
],
"offset": 0,
"record_count": 2,
"records": [
{
"Population": 5054253,
"State": "Alabama",
"State ID": "04000US01",
"Year": 2023
},
{
"Population": 741522,
"State": "Alaska",
"State ID": "04000US02",
"Year": 2016
}
],
"source": {
"dataset_link": "http://www.census.gov/programs-surveys/acs/",
"dataset_name": "ACS 5-year Estimate",
"source_description": "The American Community Survey (ACS) is conducted by the US Census and sent to a portion of the population every year.",
"source_name": "Census Bureau",
"subtopic": "Demographics",
"table_id": "B01003",
"topic": "Diversity"
},
"top": {
"amount": 1,
"group_by": [
"State"
],
"order": "desc",
"rank_by": "Population"
},
"total_records": 52,
"url": "https://api.datausa.io/tesseract/data.jsonrecords?cube=acs_yg_total_population_5&drilldowns=State,Year&measures=Population&top=1.State.Population.desc&limit=100,0"
}List a level's members
List the distinct values of one column of a dataset, each with the key a query has to be written in. Filters are written in keys rather than names, so this is the step that turns 'Alabama' into '04000US01'. Search to find one member in a level that holds thousands, such as every county in the country. No API key required.
Inputs
- Dataset
cubetextRequired - The dataset to read, by its name rather than its title: 'acs_yg_total_population_5' is the Census Bureau's population by geography and year. List the datasets to find the one that holds the numbers you want.
- Level
leveltextRequired - The column whose values you want, by level name. Read the dataset's schema for the levels it offers.
- Search
searchtext - Only members whose name or key contains this text. Capitals, punctuation and spacing are ignored, so 'st louis' finds 'St. Louis County, MO'.
- Members to return
limitnumber - How many members to return. The answer says how many matched in total, so a level that was cut off says so.From 1 to 5000. Default:
200.
Outputs
cubetextfoundtrue/falseleveltextmember_countnumbermemberslistreturnednumbersearchtexttruncatedtrue/falseurltext
Example output
{
"cube": "acs_yg_total_population_5",
"found": true,
"level": "State",
"member_count": 52,
"members": [
{
"caption": "Alabama",
"key": "04000US01"
},
{
"caption": "Alaska",
"key": "04000US02"
},
{
"caption": "Arizona",
"key": "04000US04"
}
],
"returned": 3,
"search": "",
"truncated": false,
"url": "https://api.datausa.io/tesseract/members?cube=acs_yg_total_population_5&level=State"
}List datasets
Find the Data USA dataset that holds the numbers a question needs. Search by subject and every dataset whose name, title, topic, survey or agency mentions it comes back, each with the measures it reports and the levels it can break them down by. This is the step that turns 'how many people live in Texas' into a dataset name the other actions can read. Every action here reads: nothing changes anything. No API key required.
Inputs
- Search
searchtext - Match datasets whose name, title, topic, subtopic, survey or agency contains this text. Capitals, punctuation and spacing are ignored. Leave empty for the whole catalogue.
- Topic
topictext - Only datasets filed under this topic or subtopic, matched exactly rather than as a substring. Run the topics action to see what the catalogue is filed under.
- Datasets to return
limitnumber - How many datasets to return. The answer says how many matched in total, so a search that hits this limit says so rather than looking complete.From 1 to 500. Default:
50.
Outputs
datasetslistfoundtrue/falsematched_datasetsnumberreturnednumbersearchtexttopictexttotal_datasetsnumbertruncatedtrue/falseurltext
Example output
{
"datasets": [
{
"caption": "ACS Total Population 5-Year",
"dataset_link": "http://www.census.gov/programs-surveys/acs/",
"dataset_name": "ACS 5-year Estimate",
"dimension_count": 2,
"level_count": 4,
"levels": [
"Nation",
"State",
"County",
"Year"
],
"measure_count": 1,
"measures": [
"Population"
],
"name": "acs_yg_total_population_5",
"source_name": "Census Bureau",
"subtopic": "Demographics",
"table_id": "B01003",
"topic": "Diversity"
},
{
"caption": "ACS Total Population 1-Year",
"dataset_link": "http://www.census.gov/programs-surveys/acs/",
"dataset_name": "ACS 1-year Estimate",
"dimension_count": 2,
"level_count": 3,
"levels": [
"Nation",
"State",
"Year"
],
"measure_count": 1,
"measures": [
"Population"
],
"name": "acs_yg_total_population_1",
"source_name": "Census Bureau",
"subtopic": "Demographics",
"table_id": "B01003",
"topic": "Diversity"
}
],
"found": true,
"matched_datasets": 2,
"returned": 2,
"search": "population",
"topic": "",
"total_datasets": 412,
"truncated": false,
"url": "https://api.datausa.io/tesseract/cubes"
}List topics
Summarize everything Data USA publishes by the subjects it covers: how many datasets sit under each topic, the subtopics inside it and the agencies the numbers come from. The step to run first when the question is whether the site has anything on a subject at all, before searching for a dataset by name. No API key required.
Inputs
None.
Outputs
datasets_without_a_topicnumberfoundtrue/falsetopic_countnumbertopicslisttotal_datasetsnumberurltext
Example output
{
"datasets_without_a_topic": 4,
"found": true,
"topic_count": 3,
"topics": [
{
"dataset_count": 61,
"sources": [
"Census Bureau"
],
"subtopics": [
{
"dataset_count": 44,
"subtopic": "Demographics"
},
{
"dataset_count": 17,
"subtopic": "Origins"
}
],
"topic": "Diversity"
},
{
"dataset_count": 48,
"sources": [
"Bureau of Labor Statistics",
"Census Bureau"
],
"subtopics": [
{
"dataset_count": 26,
"subtopic": "Wage"
},
{
"dataset_count": 22,
"subtopic": "Employment"
}
],
"topic": "Economy"
},
{
"dataset_count": 33,
"sources": [
"IPEDS"
],
"subtopics": [
{
"dataset_count": 21,
"subtopic": "Enrollment"
},
{
"dataset_count": 12,
"subtopic": "Graduates"
}
],
"topic": "Education"
}
],
"total_datasets": 412,
"url": "https://api.datausa.io/tesseract/cubes"
}