U.S. Bureau of Labor Statistics
App · Misc References · 15 actions
Pull official U.S. labor and price statistics straight from the Bureau of Labor Statistics: unemployment, inflation, the monthly jobs number, wages, job openings and producer prices, without knowing a single series code. Choose an indicator by name, or build the exact cut you need from the Bureau's own lists: consumer prices for a category in a metro area, unemployment for any of 8,000 states, counties and cities, employment and earnings for 850 industries, job openings and quits by industry or state. Search any of its seventy surveys by keyword to find anything else, and adjust an amount for inflation from the same Consumer Price Index the Bureau's own calculator uses. Public domain data, and a free key that takes a minute.
Actions
| Action | What it does |
|---|---|
| Adjust an amount for inflation | What an amount of money from one date is worth at another. |
| Find a series | Search a survey for the series that matches what you are after: 'median weekly earnings women', 'manufacturing average weekly hours', 'electricity Boston', and get the ID each of the other actions needs, with the years it covers. |
| Get an economic indicator | Pull one of the official U.S. economic statistics by name: the unemployment rate, inflation, the monthly jobs number, average hourly earnings, job openings, the quits rate, the price of a gallon of gas, and forty more. |
| Get average prices | What something actually costs on average, in dollars rather than as an index: a gallon of gas, a dozen eggs, a pound of coffee, a kilowatt hour of electricity. |
| Get consumer prices | The Consumer Price Index for one spending category in one place: rent in Chicago, groceries in the Northeast, everything in the U.S. as a whole. |
| Get employment by industry | Jobs, hours and pay for one industry, nationally: 850 of them, from 'total nonfarm' down to 'semiconductor and electronic component manufacturing'. |
| Get job openings and turnover | How many jobs are open, how many people were hired, how many quit and how many were laid off: nationally, by industry, or by state. |
| Get local unemployment | Unemployment where you actually operate: a state, a metro area, a county, or a city of more than 25,000 people. |
| Get producer prices | The Producer Price Index: what U.S. producers are paid for what they sell, before anything reaches a shop. |
| Get series data | Pull the published figures for one or more BLS series over a date range. |
| Get series details | What a series actually measures: its full title, the survey it comes from, whether it is seasonally adjusted, and the area, item or industry it covers. |
| Get survey details | One survey's full name and what BLS will work out for it: whether it can report net changes, percent changes and annual averages. |
| Get the latest value | The newest figure BLS has published for one series, and the period it covers. |
| List popular series | The series BLS is asked for most often, with their titles: across everything it publishes, or within one survey. |
| List surveys | Every survey BLS publishes through its API: seventy of them, from the Consumer Price Index to the Census of Fatal Occupational Injuries, with the two-letter code that 'Find a series' takes. |
Adjust an amount for inflation
What an amount of money from one date is worth at another. Give the amount and the two dates and it comes back converted, with the total change and the average yearly rate behind it. Use it to put an old contract, salary, budget or price into today's money. Worked from the Consumer Price Index, the same way the Bureau's own inflation calculator does it.
Inputs
- Amount
amountnumberRequired - The amount of money to convert, in dollars.
- From
from_datedateRequired - The date the amount is from. The Consumer Price Index reaches back to 1913.
- To
to_datedate - The date to convert it to. Leave empty for the most recent month BLS has published.
- Area
areatext - Whose prices to use. 'U.S. city average' is the national figure and is almost always the right one.Default:
0000.
Outputs
adjusted_amountnumberamountnumberannual_rate_percentnumberareatextbasistextfrom_datetextfrom_indexnumberfrom_periodtextseries_idtextsummarytextto_datetextto_indexnumberto_periodtexttotal_change_percentnumberyears_apartnumber
Example output
{
"adjusted_amount": 218.96,
"amount": 100.0,
"annual_rate_percent": 2.55,
"area": "U.S. city average",
"basis": "Consumer Price Index for All Urban Consumers (CPI-U), all items, not seasonally adjusted",
"from_date": "1995-06-01",
"from_index": 152.5,
"from_period": "June 1995",
"series_id": "CUUR0000SA0",
"summary": "$100.00 in June 1995 is worth about $218.96 in July 2026.",
"to_date": "2026-07-01",
"to_index": 333.918,
"to_period": "July 2026",
"total_change_percent": 118.96,
"years_apart": 31.08
}Find a series
Search a survey for the series that matches what you are after: 'median weekly earnings women', 'manufacturing average weekly hours', 'electricity Boston', and get the ID each of the other actions needs, with the years it covers. Every word has to appear, so adding words narrows the answer. This is the way into the sixty-odd surveys that have no dedicated step of their own.
Inputs
- Survey
surveytextRequired - Which BLS survey to look in.
- Words to look for
keywordstextRequired - The words that should appear in the series title. Order does not matter; every word must appear.
- Only series still being updated
currently_publishedtrue/false - Leave on to hide series BLS has stopped publishing. Turn off to search discontinued ones too.Default:
true. - How many to return
limitnumber - How many matches to return, up to 500.From 1 to 500. Default:
25.
Outputs
keywordslistmatch_countnumbermatcheslistseries_searchednumbersurveytexttitles_availabletrue/falsetotal_matchesnumbertruncatedtrue/false
Example output
{
"keywords": [
"electricity"
],
"match_count": 2,
"matches": [
{
"currently_published": true,
"first_period": "1913-01-01",
"frequency": "monthly",
"last_period": "2026-07-01",
"seasonally_adjusted": false,
"series_id": "CUUR0000SEHF01",
"title": "Electricity in U.S. city average, all urban consumers, not seasonally adjusted"
},
{
"currently_published": true,
"first_period": "1952-01-01",
"frequency": "monthly",
"last_period": "2026-07-01",
"seasonally_adjusted": true,
"series_id": "CUSR0000SEHF01",
"title": "Electricity in U.S. city average, all urban consumers, seasonally adjusted"
}
],
"series_searched": 3,
"survey": "CU",
"titles_available": true,
"total_matches": 2,
"truncated": false
}Get an economic indicator
Pull one of the official U.S. economic statistics by name: the unemployment rate, inflation, the monthly jobs number, average hourly earnings, job openings, the quits rate, the price of a gallon of gas, and forty more. Choose the statistic from a list and the dates you want it for, and there are no codes to look up. Each figure comes back with the month it covers and, if you want them, the changes over the month and the year.
Inputs
- Statistic
indicatortextRequired - Which official statistic to pull. Seasonally adjusted wherever BLS publishes it, so one period can be compared with the last.One of:
unemployment_rate(Jobs and unemployment: Unemployment rate),unemployment_rate_u6(Jobs and unemployment: Unemployment rate, broadest measure (U-6)),unemployed_people(Jobs and unemployment: Unemployed people),employed_people(Jobs and unemployment: Employed people),labor_force(Jobs and unemployment: Civilian labor force),labor_force_participation_rate(Jobs and unemployment: Labor force participation rate),employment_population_ratio(Jobs and unemployment: Employment-population ratio),part_time_for_economic_reasons(Jobs and unemployment: People working part time because they could not find full-time work),unemployment_rate_teenagers(Jobs and unemployment: Unemployment rate, ages 16 to 19),unemployment_rate_college_graduates(Jobs and unemployment: Unemployment rate, bachelor's degree and higher), and 37 more. Default:unemployment_rate. - From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
- Include changes over time
include_changestrue/false - Add the change from 1, 3, 6 and 12 periods earlier to every figure, as both a difference and a percentage: the month-over-month and year-over-year numbers, worked out by BLS.Default:
true.
Outputs
catalogobjectfirst_periodtextfrom_datetextindicatortextlast_periodtextlatestobjectnametextnotetextnoteslistobservation_countnumberobservationslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletextto_datetextunitstext
Example output
{
"catalog": null,
"first_period": "October 2025",
"from_date": "2025-10-01",
"indicator": "unemployment_rate",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [
{
"net_change": -0.1,
"percent_change": -2.4,
"periods": 1,
"span": "1 month"
},
{
"net_change": -0.2,
"percent_change": -4.7,
"periods": 3,
"span": "3 months"
},
{
"net_change": -0.2,
"percent_change": -4.7,
"periods": 6,
"span": "6 months"
},
{
"net_change": -0.3,
"percent_change": -6.8,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "4.1",
"unavailable_reason": null,
"value": 4.1,
"year": 2026
},
"name": "Unemployment rate",
"note": null,
"notes": [],
"observation_count": 4,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2025-10-01",
"footnotes": [
"Data unavailable due to the 2025 lapse in appropriations."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M10",
"period_end_date": "2025-10-31",
"period_label": "October 2025",
"reported_value": "-",
"unavailable_reason": "not published for this period",
"value": null,
"year": 2025
},
{
"aspects": [],
"changes": [],
"date": "2026-05-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M05",
"period_end_date": "2026-05-31",
"period_label": "May 2026",
"reported_value": "4.3",
"unavailable_reason": null,
"value": 4.3,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "4.2",
"unavailable_reason": null,
"value": 4.2,
"year": 2026
},
{
"aspects": [],
"changes": [
{
"net_change": -0.1,
"percent_change": -2.4,
"periods": 1,
"span": "1 month"
},
{
"net_change": -0.2,
"percent_change": -4.7,
"periods": 3,
"span": "3 months"
},
{
"net_change": -0.2,
"percent_change": -4.7,
"periods": 6,
"span": "6 months"
},
{
"net_change": -0.3,
"percent_change": -6.8,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "4.1",
"unavailable_reason": null,
"value": 4.1,
"year": 2026
}
],
"seasonality": null,
"series_id": "LNS14000000",
"survey_code": "LN",
"survey_name": null,
"title": "Unemployment rate",
"to_date": "2026-07-31",
"units": "percent"
}Get average prices
What something actually costs on average, in dollars rather than as an index: a gallon of gas, a dozen eggs, a pound of coffee, a kilowatt hour of electricity. BLS collects these prices in the same survey behind the CPI, nationally and for the larger regions and metro areas.
Inputs
- Item
itemtextRequired - Which good to price. The list is everything BLS publishes an average price for: foods, fuels and household energy.Default:
74714. - Area
areatextRequired - Where to price it. 'U.S. city average' is the national figure.Default:
0000. - From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
Outputs
asked_forobjectcatalogobjectfirst_periodtextfrom_datetextlast_periodtextlatestobjectnoteslistobservation_countnumberobservationslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletextto_datetextunitstext
Example output
{
"asked_for": {
"area": "0000",
"item": "74714"
},
"catalog": null,
"first_period": "May 2026",
"from_date": "2026-05-01",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "4.094",
"unavailable_reason": null,
"value": 4.094,
"year": 2026
},
"notes": [],
"observation_count": 3,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-05-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M05",
"period_end_date": "2026-05-31",
"period_label": "May 2026",
"reported_value": "4.651",
"unavailable_reason": null,
"value": 4.651,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "4.195",
"unavailable_reason": null,
"value": 4.195,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "4.094",
"unavailable_reason": null,
"value": 4.094,
"year": 2026
}
],
"seasonality": null,
"series_id": "APU000074714",
"survey_code": "AP",
"survey_name": null,
"title": "Average price of gasoline, regular unleaded",
"to_date": "2026-07-31",
"units": "dollars per gallon"
}Get consumer prices
The Consumer Price Index for one spending category in one place: rent in Chicago, groceries in the Northeast, everything in the U.S. as a whole. This is where inflation comes from: turn on changes over time and the 12-month figure is the inflation rate you see in the news. Both lists come from the Bureau, so every combination they offer is one it publishes.
Inputs
- Index
indextext - All Urban Consumers is the headline CPI and covers about 93% of the population. Urban Wage Earners is the narrower index used to set Social Security cost-of-living adjustments.One of:
CU(All Urban Consumers (CPI-U)),CW(Urban Wage Earners and Clerical Workers (CPI-W)). Default:CU. - Area
areatextRequired - Which place to price. 'U.S. city average' is the national figure; the rest are regions, city sizes and metro areas.Default:
0000. - Category
itemtextRequired - What is being priced. 'All items' is the headline index; 'All items less food and energy' is core inflation. Everything below them narrows to a group of goods and services.Default:
SA0. - Seasonally adjusted
seasonally_adjustedtrue/false - Smooth out the swings that happen every year anyway (hiring at Christmas, layoffs in January) so one month can be compared with the last. BLS adjusts the national figures; most metro areas are published unadjusted only.Default:
false. - From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
- Include changes over time
include_changestrue/false - Add the change from 1, 3, 6 and 12 periods earlier to every figure, as both a difference and a percentage: the month-over-month and year-over-year numbers, worked out by BLS.Default:
true.
Outputs
asked_forobjectcatalogobjectfirst_periodtextfrom_datetextlast_periodtextlatestobjectnoteslistobservation_countnumberobservationslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletextto_datetextunitstext
Example output
{
"asked_for": {
"area": "0000",
"item": "SA0"
},
"catalog": null,
"first_period": "May 2026",
"from_date": "2026-05-01",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [
{
"net_change": null,
"percent_change": 0.0,
"periods": 1,
"span": "1 month"
},
{
"net_change": null,
"percent_change": 3.1,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "333.918",
"unavailable_reason": null,
"value": 333.918,
"year": 2026
},
"notes": [],
"observation_count": 3,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-05-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M05",
"period_end_date": "2026-05-31",
"period_label": "May 2026",
"reported_value": "335.123",
"unavailable_reason": null,
"value": 335.123,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "333.952",
"unavailable_reason": null,
"value": 333.952,
"year": 2026
},
{
"aspects": [],
"changes": [
{
"net_change": null,
"percent_change": 0.0,
"periods": 1,
"span": "1 month"
},
{
"net_change": null,
"percent_change": 3.1,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "333.918",
"unavailable_reason": null,
"value": 333.918,
"year": 2026
}
],
"seasonality": null,
"series_id": "CUUR0000SA0",
"survey_code": "CU",
"survey_name": null,
"title": "Consumer Price Index, all items",
"to_date": "2026-07-31",
"units": "index (1982-84 = 100)"
}Get employment by industry
Jobs, hours and pay for one industry, nationally: 850 of them, from 'total nonfarm' down to 'semiconductor and electronic component manufacturing'. Pull the number of employees, average hourly earnings, average weekly hours or weekly earnings. This is the survey behind the monthly jobs report, so it is the one to use for hiring trends in your own sector.
Inputs
- Industry
industrytextRequired - Which industry. The list runs from whole sectors down to detailed industries.Default:
00000000. - Measure
data_typetext - What to report for that industry: the number of employees, average hourly earnings, average weekly hours, or weekly earnings.Default:
01. - Seasonally adjusted
seasonally_adjustedtrue/false - Smooth out the swings that happen every year anyway (hiring at Christmas, layoffs in January) so one month can be compared with the last. On by default here, because it is how the monthly jobs report quotes these figures.Default:
true. - From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
- Include changes over time
include_changestrue/false - Add the change from 1, 3, 6 and 12 periods earlier to every figure, as both a difference and a percentage: the month-over-month and year-over-year numbers, worked out by BLS.Default:
true.
Outputs
asked_forobjectcatalogobjectfirst_periodtextfrom_datetextlast_periodtextlatestobjectnoteslistobservation_countnumberobservationslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletextto_datetextunitstext
Example output
{
"asked_for": {
"data_type": "01",
"industry": "30000000"
},
"catalog": null,
"first_period": "June 2026",
"from_date": "2026-06-01",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [
{
"net_change": 5.0,
"percent_change": 0.0,
"periods": 1,
"span": "1 month"
},
{
"net_change": -64.0,
"percent_change": -0.5,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "12611",
"unavailable_reason": null,
"value": 12611.0,
"year": 2026
},
"notes": [],
"observation_count": 2,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "12606",
"unavailable_reason": null,
"value": 12606.0,
"year": 2026
},
{
"aspects": [],
"changes": [
{
"net_change": 5.0,
"percent_change": 0.0,
"periods": 1,
"span": "1 month"
},
{
"net_change": -64.0,
"percent_change": -0.5,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "12611",
"unavailable_reason": null,
"value": 12611.0,
"year": 2026
}
],
"seasonality": null,
"series_id": "CES3000000001",
"survey_code": "CE",
"survey_name": null,
"title": "Manufacturing payrolls",
"to_date": "2026-07-31",
"units": "thousands of jobs"
}Get job openings and turnover
How many jobs are open, how many people were hired, how many quit and how many were laid off: nationally, by industry, or by state. The quits rate in particular is the standard read on how confident workers feel about leaving. Report it as a rate to compare across industries, or as a count for the raw number.
Inputs
- Measure
measuretextRequired - What to report: job openings, hires, quits, layoffs and discharges, or total separations.Default:
JO. - Reported as
rate_or_leveltext - A rate is the measure as a percent of employment, which is how industries and states are compared. A count is the raw number, in thousands.One of:
R(As a rate (percent of employment)),L(As a count (thousands)). Default:R. - Industry
industrytext - Which industry, for the country as a whole. Leave the state below on 'Total US' when you narrow this: BLS does not publish one industry within one state.Default:
000000. - State
statetext - Which state, across every industry. Leave the industry above on 'Total nonfarm' when you narrow this.Default:
00. - Seasonally adjusted
seasonally_adjustedtrue/false - Smooth out the swings that happen every year anyway (hiring at Christmas, layoffs in January) so one month can be compared with the last. On by default here, because it is how BLS quotes the monthly JOLTS release.Default:
true. - From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
Outputs
asked_forobjectcatalogobjectfirst_periodtextfrom_datetextlast_periodtextlatestobjectnoteslistobservation_countnumberobservationslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletextto_datetextunitstext
Example output
{
"asked_for": {
"industry": "000000",
"measure": "JO",
"state": "00"
},
"catalog": null,
"first_period": "June 2026",
"from_date": "2026-06-01",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "4.4",
"unavailable_reason": null,
"value": 4.4,
"year": 2026
},
"notes": [],
"observation_count": 2,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "4.3",
"unavailable_reason": null,
"value": 4.3,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "4.4",
"unavailable_reason": null,
"value": 4.4,
"year": 2026
}
],
"seasonality": null,
"series_id": "JTS000000000000000JOR",
"survey_code": "JT",
"survey_name": null,
"title": "Job openings rate",
"to_date": "2026-07-31",
"units": "percent"
}Get local unemployment
Unemployment where you actually operate: a state, a metro area, a county, or a city of more than 25,000 people. Choose the kind of place first and the list narrows to it: 8,000 areas in all. Beside the unemployment rate you can pull the size of the labor force, how many people are employed, and the participation rate.
Inputs
- Kind of place
area_typetext - Narrows the list below. States, metro areas, counties, or cities and towns above 25,000 people.Default:
A. - Place
areatextRequired - Which place to report on.
- Measure
measuretext - What to report. The unemployment rate is the usual one; labor force and employment are counts of people.Default:
03. - Seasonally adjusted
seasonally_adjustedtrue/false - Smooth out the swings that happen every year anyway (hiring at Christmas, layoffs in January) so one month can be compared with the last. BLS adjusts states and the largest metro areas; counties and cities are published unadjusted only.Default:
false. - From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
Outputs
asked_forobjectcatalogobjectfirst_periodtextfrom_datetextlast_periodtextlatestobjectnoteslistobservation_countnumberobservationslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletextto_datetextunitstext
Example output
{
"asked_for": {
"area": "ST0600000000000",
"measure": "03"
},
"catalog": null,
"first_period": "May 2026",
"from_date": "2026-05-01",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "5.3",
"unavailable_reason": null,
"value": 5.3,
"year": 2026
},
"notes": [],
"observation_count": 3,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-05-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M05",
"period_end_date": "2026-05-31",
"period_label": "May 2026",
"reported_value": "4.7",
"unavailable_reason": null,
"value": 4.7,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "5.2",
"unavailable_reason": null,
"value": 5.2,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "5.3",
"unavailable_reason": null,
"value": 5.3,
"year": 2026
}
],
"seasonality": null,
"series_id": "LAUST060000000000003",
"survey_code": "LA",
"survey_name": null,
"title": null,
"to_date": "2026-07-31",
"units": null
}Get producer prices
The Producer Price Index: what U.S. producers are paid for what they sell, before anything reaches a shop. Use it to watch input costs: steel, lumber, freight, chemicals, and to see price pressure a few months before it shows up in consumer prices. Choose a commodity group, then the commodity within it.
Inputs
- Commodity group
grouptextRequired - The broad group the commodity sits in: farm products, fuels, metals, machinery. 'Final demand' holds the headline PPI figures.Default:
FD. - Commodity
itemtextRequired - The commodity within that group. The list narrows to the group chosen above.
- Seasonally adjusted
seasonally_adjustedtrue/false - Smooth out the swings that happen every year anyway (hiring at Christmas, layoffs in January) so one month can be compared with the last. BLS adjusts the major PPI aggregates; many individual commodities are published unadjusted only.Default:
false. - From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
- Include changes over time
include_changestrue/false - Add the change from 1, 3, 6 and 12 periods earlier to every figure, as both a difference and a percentage: the month-over-month and year-over-year numbers, worked out by BLS.Default:
true.
Outputs
asked_forobjectcatalogobjectfirst_periodtextfrom_datetextlast_periodtextlatestobjectnoteslistobservation_countnumberobservationslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletextto_datetextunitstext
Example output
{
"asked_for": {
"group": "FD",
"item": "4"
},
"catalog": null,
"first_period": "June 2026",
"from_date": "2026-06-01",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [
{
"net_change": null,
"percent_change": -0.1,
"periods": 1,
"span": "1 month"
},
{
"net_change": null,
"percent_change": 2.4,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "156.927",
"unavailable_reason": null,
"value": 156.927,
"year": 2026
},
"notes": [],
"observation_count": 2,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "157.083",
"unavailable_reason": null,
"value": 157.083,
"year": 2026
},
{
"aspects": [],
"changes": [
{
"net_change": null,
"percent_change": -0.1,
"periods": 1,
"span": "1 month"
},
{
"net_change": null,
"percent_change": 2.4,
"periods": 12,
"span": "12 months"
}
],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "156.927",
"unavailable_reason": null,
"value": 156.927,
"year": 2026
}
],
"seasonality": null,
"series_id": "WPUFD4",
"survey_code": "WP",
"survey_name": null,
"title": "Producer Price Index, final demand",
"to_date": "2026-07-31",
"units": "index"
}Get series data
Pull the published figures for one or more BLS series over a date range. Ask for up to 50 at once and they come back together, which is how you compare two states, two industries or two price indexes in a single step. Use 'Find a series' first if you do not already have the IDs.
Inputs
- Series
serieslistRequired - Which series to pull, up to 50. Pick from the most-requested list or paste any BLS series ID, such as LNS14000000. This list is the 25 series BLS is asked for most. It publishes about 150,000; use 'Find a series' to get the ID of any other, then paste it in.
- From
from_datedate - The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
- To
to_datedate - The latest period to return. Leave empty for the most recent figure published.
- Include changes over time
include_changestrue/false - Add the change from 1, 3, 6 and 12 periods earlier to every figure, as both a difference and a percentage: the month-over-month and year-over-year numbers, worked out by BLS.Default:
false. - Include annual averages
include_annual_averagestrue/false - Add each year's average alongside its individual periods. Off by default, so a monthly series stays monthly.Default:
false. - Include series descriptions
include_detailstrue/false - Add what each series measures: its title, survey, area and seasonality. BLS publishes descriptions for most surveys but not all.Default:
false.
Outputs
from_datetextnoteslistobservation_countnumberserieslistseries_countnumberto_datetext
Example output
{
"from_date": "2026-06-01",
"notes": [],
"observation_count": 4,
"series": [
{
"catalog": null,
"first_period": "June 2026",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "158858",
"unavailable_reason": null,
"value": 158858.0,
"year": 2026
},
"observation_count": 2,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "158881",
"unavailable_reason": null,
"value": 158881.0,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "158858",
"unavailable_reason": null,
"value": 158858.0,
"year": 2026
}
],
"seasonality": null,
"series_id": "CES0000000001",
"survey_code": "CE",
"survey_name": null,
"title": "Total nonfarm payrolls",
"units": "thousands of jobs"
},
{
"catalog": null,
"first_period": "June 2026",
"last_period": "July 2026",
"latest": {
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "37.62",
"unavailable_reason": null,
"value": 37.62,
"year": 2026
},
"observation_count": 2,
"observations": [
{
"aspects": [],
"changes": [],
"date": "2026-06-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": false,
"period": "M06",
"period_end_date": "2026-06-30",
"period_label": "June 2026",
"reported_value": "37.60",
"unavailable_reason": null,
"value": 37.6,
"year": 2026
},
{
"aspects": [],
"changes": [],
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"is_annual_average": false,
"is_latest": true,
"period": "M07",
"period_end_date": "2026-07-31",
"period_label": "July 2026",
"reported_value": "37.62",
"unavailable_reason": null,
"value": 37.62,
"year": 2026
}
],
"seasonality": null,
"series_id": "CES0500000003",
"survey_code": "CE",
"survey_name": null,
"title": "Average hourly earnings, private sector",
"units": "dollars per hour"
}
],
"series_count": 2,
"to_date": "2026-07-31"
}Get series details
What a series actually measures: its full title, the survey it comes from, whether it is seasonally adjusted, and the area, item or industry it covers. Use it to confirm an ID before building a report on it, or to label a chart.
Inputs
- Series
seriestextRequired - Which series to describe. Pick from the most-requested list or paste a BLS series ID. This list is the 25 series BLS is asked for most. It publishes about 150,000; use 'Find a series' to get the ID of any other, then paste it in.
Outputs
areatextdescribedtrue/falsedetailsobjectindustrytextitemtextmeasuretextnoteslistseasonalitytextseries_idtextsurvey_codetextsurvey_nametexttitletext
Example output
{
"area": "U.S. city average",
"described": true,
"details": {
"area": "U.S. city average",
"item": "All items",
"measure_data_type": "All items",
"seasonality": "Not Seasonally Adjusted",
"series_id": "CUUR0000SA0",
"series_title": "All items in U.S. city average, all urban consumers, not seasonally adjusted",
"survey_abbreviation": "CU",
"survey_name": "Consumer Price Index - All Urban Consumers"
},
"industry": null,
"item": "All items",
"measure": "All items",
"notes": [],
"seasonality": "Not Seasonally Adjusted",
"series_id": "CUUR0000SA0",
"survey_code": "CU",
"survey_name": "Consumer Price Index - All Urban Consumers",
"title": "All items in U.S. city average, all urban consumers, not seasonally adjusted"
}Get survey details
One survey's full name and what BLS will work out for it: whether it can report net changes, percent changes and annual averages. Worth checking before turning on changes over time, because not every survey publishes both kinds.
Inputs
- Survey
surveytextRequired - Which BLS survey to look in.
Outputs
codetexthas_annual_averagestrue/falsenametextsupports_net_changetrue/falsesupports_percent_changetrue/false
Example output
{
"code": "CU",
"has_annual_averages": true,
"name": "Consumer Price Index - All Urban Consumers",
"supports_net_change": false,
"supports_percent_change": true
}Get the latest value
The newest figure BLS has published for one series, and the period it covers. Use it when a workflow needs today's number and nothing else: a Slack post each morning, a threshold to check, without picking dates.
Inputs
- Series
seriestextRequired - Which series to read. Pick from the most-requested list or paste a BLS series ID. This list is the 25 series BLS is asked for most. It publishes about 150,000; use 'Find a series' to get the ID of any other, then paste it in.
Outputs
datetextfootnoteslistfrequencytextnoteslistperiodtextperiod_labeltextreported_valuetextseries_idtexttitletextunavailable_reasontextunitstextvaluenumber
Example output
{
"date": "2026-07-01",
"footnotes": [
"Preliminary."
],
"frequency": "monthly",
"notes": [],
"period": "M07",
"period_label": "July 2026",
"reported_value": "158858",
"series_id": "CES0000000001",
"title": "Total nonfarm payrolls",
"unavailable_reason": null,
"units": "thousands of jobs",
"value": 158858.0
}List popular series
The series BLS is asked for most often, with their titles: across everything it publishes, or within one survey. A good first look at what a survey is for, and where most series IDs come from.
Inputs
- Survey
surveytext - Narrow to one survey. Leave empty for the most-requested series across all of BLS.
Outputs
serieslistseries_countnumbersurveytext
Example output
{
"series": [
{
"indicator": "cpi_all_items",
"series_id": "CUUR0000SA0",
"survey_code": "CU",
"title": "All items in U.S. city average, all urban consumers, not seasonally adjusted"
},
{
"indicator": "cpi_core",
"series_id": "CUUR0000SA0L1E",
"survey_code": "CU",
"title": "All items less food and energy in U.S. city average, all urban consumers, not seasonally adjusted"
},
{
"indicator": null,
"series_id": "CUSR0000SA0",
"survey_code": "CU",
"title": "All items in U.S. city average, all urban consumers, seasonally adjusted"
}
],
"series_count": 3,
"survey": "CU"
}List surveys
Every survey BLS publishes through its API: seventy of them, from the Consumer Price Index to the Census of Fatal Occupational Injuries, with the two-letter code that 'Find a series' takes. Search by name to narrow the list.
Inputs
- Search
searchtext - Only surveys whose name contains these words. Leave empty for all of them.
Outputs
survey_countnumbersurveyslist
Example output
{
"survey_count": 5,
"surveys": [
{
"code": "CU",
"name": "Consumer Price Index - All Urban Consumers"
},
{
"code": "CE",
"name": "Employment, Hours, and Earnings from the Current Employment Statistics survey (National)"
},
{
"code": "JT",
"name": "Job Openings and Labor Turnover Survey"
},
{
"code": "LN",
"name": "Labor Force Statistics from the Current Population Survey"
},
{
"code": "LA",
"name": "Local Area Unemployment Statistics"
}
]
}