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

ActionWhat it does
Adjust an amount for inflationWhat an amount of money from one date is worth at another.
Find a seriesSearch 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 indicatorPull 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 pricesWhat 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 pricesThe 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 industryJobs, hours and pay for one industry, nationally: 850 of them, from 'total nonfarm' down to 'semiconductor and electronic component manufacturing'.
Get job openings and turnoverHow 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 unemploymentUnemployment where you actually operate: a state, a metro area, a county, or a city of more than 25,000 people.
Get producer pricesThe Producer Price Index: what U.S. producers are paid for what they sell, before anything reaches a shop.
Get series dataPull the published figures for one or more BLS series over a date range.
Get series detailsWhat 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 detailsOne 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 valueThe newest figure BLS has published for one series, and the period it covers.
List popular seriesThe series BLS is asked for most often, with their titles: across everything it publishes, or within one survey.
List surveysEvery 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

AmountamountnumberRequired
The amount of money to convert, in dollars.
Fromfrom_datedateRequired
The date the amount is from. The Consumer Price Index reaches back to 1913.
Toto_datedate
The date to convert it to. Leave empty for the most recent month BLS has published.
Areaareatext
Whose prices to use. 'U.S. city average' is the national figure and is almost always the right one.Default: 0000.

Outputs

adjusted_amountnumber
amountnumber
annual_rate_percentnumber
areatext
basistext
from_datetext
from_indexnumber
from_periodtext
series_idtext
summarytext
to_datetext
to_indexnumber
to_periodtext
total_change_percentnumber
years_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

SurveysurveytextRequired
Which BLS survey to look in.
Words to look forkeywordstextRequired
The words that should appear in the series title. Order does not matter; every word must appear.
Only series still being updatedcurrently_publishedtrue/false
Leave on to hide series BLS has stopped publishing. Turn off to search discontinued ones too.Default: true.
How many to returnlimitnumber
How many matches to return, up to 500.From 1 to 500. Default: 25.

Outputs

keywordslist
match_countnumber
matcheslist
series_searchednumber
surveytext
titles_availabletrue/false
total_matchesnumber
truncatedtrue/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

StatisticindicatortextRequired
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.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.
Include changes over timeinclude_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

catalogobject
first_periodtext
from_datetext
indicatortext
last_periodtext
latestobject
nametext
notetext
noteslist
observation_countnumber
observationslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
to_datetext
unitstext
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

ItemitemtextRequired
Which good to price. The list is everything BLS publishes an average price for: foods, fuels and household energy.Default: 74714.
AreaareatextRequired
Where to price it. 'U.S. city average' is the national figure.Default: 0000.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.

Outputs

asked_forobject
catalogobject
first_periodtext
from_datetext
last_periodtext
latestobject
noteslist
observation_countnumber
observationslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
to_datetext
unitstext
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

Indexindextext
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.
AreaareatextRequired
Which place to price. 'U.S. city average' is the national figure; the rest are regions, city sizes and metro areas.Default: 0000.
CategoryitemtextRequired
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 adjustedseasonally_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.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.
Include changes over timeinclude_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_forobject
catalogobject
first_periodtext
from_datetext
last_periodtext
latestobject
noteslist
observation_countnumber
observationslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
to_datetext
unitstext
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

IndustryindustrytextRequired
Which industry. The list runs from whole sectors down to detailed industries.Default: 00000000.
Measuredata_typetext
What to report for that industry: the number of employees, average hourly earnings, average weekly hours, or weekly earnings.Default: 01.
Seasonally adjustedseasonally_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.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.
Include changes over timeinclude_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_forobject
catalogobject
first_periodtext
from_datetext
last_periodtext
latestobject
noteslist
observation_countnumber
observationslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
to_datetext
unitstext
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

MeasuremeasuretextRequired
What to report: job openings, hires, quits, layoffs and discharges, or total separations.Default: JO.
Reported asrate_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.
Industryindustrytext
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.
Statestatetext
Which state, across every industry. Leave the industry above on 'Total nonfarm' when you narrow this.Default: 00.
Seasonally adjustedseasonally_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.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.

Outputs

asked_forobject
catalogobject
first_periodtext
from_datetext
last_periodtext
latestobject
noteslist
observation_countnumber
observationslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
to_datetext
unitstext
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 placearea_typetext
Narrows the list below. States, metro areas, counties, or cities and towns above 25,000 people.Default: A.
PlaceareatextRequired
Which place to report on.
Measuremeasuretext
What to report. The unemployment rate is the usual one; labor force and employment are counts of people.Default: 03.
Seasonally adjustedseasonally_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.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.

Outputs

asked_forobject
catalogobject
first_periodtext
from_datetext
last_periodtext
latestobject
noteslist
observation_countnumber
observationslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
to_datetext
unitstext
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 groupgrouptextRequired
The broad group the commodity sits in: farm products, fuels, metals, machinery. 'Final demand' holds the headline PPI figures.Default: FD.
CommodityitemtextRequired
The commodity within that group. The list narrows to the group chosen above.
Seasonally adjustedseasonally_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.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.
Include changes over timeinclude_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_forobject
catalogobject
first_periodtext
from_datetext
last_periodtext
latestobject
noteslist
observation_countnumber
observationslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
to_datetext
unitstext
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

SeriesserieslistRequired
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.
Fromfrom_datedate
The earliest period to return. Leave empty for the last three years. BLS returns at most 20 years in one step.
Toto_datedate
The latest period to return. Leave empty for the most recent figure published.
Include changes over timeinclude_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 averagesinclude_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 descriptionsinclude_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_datetext
noteslist
observation_countnumber
serieslist
series_countnumber
to_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

SeriesseriestextRequired
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

areatext
describedtrue/false
detailsobject
industrytext
itemtext
measuretext
noteslist
seasonalitytext
series_idtext
survey_codetext
survey_nametext
titletext
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

SurveysurveytextRequired
Which BLS survey to look in.

Outputs

codetext
has_annual_averagestrue/false
nametext
supports_net_changetrue/false
supports_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

SeriesseriestextRequired
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

datetext
footnoteslist
frequencytext
noteslist
periodtext
period_labeltext
reported_valuetext
series_idtext
titletext
unavailable_reasontext
unitstext
valuenumber
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
}

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

Surveysurveytext
Narrow to one survey. Leave empty for the most-requested series across all of BLS.

Outputs

serieslist
series_countnumber
surveytext
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

Searchsearchtext
Only surveys whose name contains these words. Leave empty for all of them.

Outputs

survey_countnumber
surveyslist
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"
    }
  ]
}

On this page