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

ActionWhat it does
Compare membersCompare 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 schemaGet 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 timeGet 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 dataRun a query against a Data USA dataset and get the rows back.
Get the top rows per groupGet 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 membersList the distinct values of one column of a dataset, each with the key a query has to be written in.
List datasetsFind the Data USA dataset that holds the numbers a question needs.
List topicsSummarize 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

DatasetcubetextRequired
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 comparemeasuretextRequired
The measure the comparison ranks by, by name. Read the dataset's schema for the measures it offers.
Comparing which columnleveltextRequired
The column the members below belong to, by level name.
Members to comparememberstextRequired
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 periodtime_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 periodtime_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 periodstime_amountnumber
How many periods to compare across. One, the default, compares a single period.From 1 to 1000. Default: 1.

Outputs

cubetext
foundtrue/false
leadertext
leader_valuenumber
leveltext
measuretext
member_countnumber
memberslist
missinglist
sourceobject
time_leveltext
totalnumber
urltext
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

DatasetcubetextRequired
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

captiontext
cubetext
dimension_countnumber
dimensionslist
foundtrue/false
level_countnumber
levelslist
measure_countnumber
measureslist
sourceobject
urltext
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

DatasetcubetextRequired
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 trackmeasuretextRequired
The measure whose movement you want, by name. Read the dataset's schema for the measures it offers.
One point pertime_leveltext
The column that measures time, by level name. Almost every Data USA dataset calls it 'Year'.Default: Year.
Narrow to a levelleveltext
The column the member below belongs to, by level name. Leave both empty for the whole dataset added up.
Narrow to this membermembertext
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 periodsperiodsnumber
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

averagenumber
changenumber
change_percentnumber
cubetext
firstobject
foundtrue/false
highestobject
lastobject
lowestobject
measuretext
memberobject
period_countnumber
serieslist
sourceobject
time_leveltext
totalnumber
urltext
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

DatasetcubetextRequired
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 bydrilldownstextRequired
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 returnmeasurestextRequired
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 membersincludetext
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 membersexcludetext
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 measurefilter_measuretext
Keep only the rows whose value for this measure passes the test below. The measure has to be one the query asks for.
isfilter_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 numberfilter_valuenumber
The number the measure is compared with. Not needed for the two 'has a value' tests.
and alsofilter_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 alsosecond_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 numbersecond_filter_valuenumber
The number the second test compares with.
Sort bysort_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.
Directionsort_ordertext
Which end of the sort comes first.One of: desc (Largest first), asc (Smallest first). Default: desc.
Include parent membersparentstrue/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 onlyparent_levelstext
Add parents for particular levels rather than for all of them, by level name. Naming levels here overrides the checkbox above.
Time dimensiontime_dimensiontext
Which dimension the time window below applies to. Almost every Data USA dataset calls it 'Year', which is the default.Default: Year.
Time windowtime_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 periodstime_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 returnlimitnumber
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 rowsoffsetnumber
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

columnslist
cubetext
drilldownslist
foundtrue/false
has_moretrue/false
limitnumber
measureslist
offsetnumber
record_countnumber
recordslist
sourceobject
total_recordsnumber
urltext
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

DatasetcubetextRequired
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 bydrilldownstextRequired
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 returnmeasurestextRequired
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 grouptop_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 pertop_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 bytop_rank_bytextRequired
The measure or column that decides which rows are on top. It has to be one the query already asks for.
Take thetop_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 membersincludetext
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 membersexcludetext
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 membersparentstrue/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 onlyparent_levelstext
Add parents for particular levels rather than for all of them, by level name. Naming levels here overrides the checkbox above.
Time dimensiontime_dimensiontext
Which dimension the time window below applies to. Almost every Data USA dataset calls it 'Year', which is the default.Default: Year.
Time windowtime_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 periodstime_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 returnlimitnumber
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 rowsoffsetnumber
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

columnslist
cubetext
drilldownslist
foundtrue/false
has_moretrue/false
limitnumber
measureslist
offsetnumber
record_countnumber
recordslist
sourceobject
topobject
total_recordsnumber
urltext
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

DatasetcubetextRequired
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.
LevelleveltextRequired
The column whose values you want, by level name. Read the dataset's schema for the levels it offers.
Searchsearchtext
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 returnlimitnumber
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

cubetext
foundtrue/false
leveltext
member_countnumber
memberslist
returnednumber
searchtext
truncatedtrue/false
urltext
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

Searchsearchtext
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.
Topictopictext
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 returnlimitnumber
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

datasetslist
foundtrue/false
matched_datasetsnumber
returnednumber
searchtext
topictext
total_datasetsnumber
truncatedtrue/false
urltext
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_topicnumber
foundtrue/false
topic_countnumber
topicslist
total_datasetsnumber
urltext
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"
}

On this page