scientific-skills/database-lookup/references/bls.md
https://api.bls.gov/publicAPI/v2
Version 1 (no key): https://api.bls.gov/publicAPI/v1
API key optional but strongly recommended. Register at https://data.bls.gov/registrationEngine/
POST /timeseries/data/
Content-Type: application/json
Request body:
{
"seriesid": ["CUUR0000SA0", "LNS14000000"],
"startyear": "2020",
"endyear": "2024",
"registrationkey": "YOUR_KEY",
"catalog": true,
"calculations": true,
"annualaverage": true,
"aspects": true
}
| Field | Required | V1 | V2 | Description |
|---|---|---|---|---|
| seriesid | Yes | Yes | Yes | Array of series IDs (max 25 v1 / 50 v2) |
| startyear | Yes | Yes | Yes | 4-digit start year |
| endyear | Yes | Yes | Yes | 4-digit end year |
| registrationkey | No | No | Yes | API key (required for v2 features) |
| catalog | No | No | Yes | true to include series metadata |
| calculations | No | No | Yes | true to include net/pct changes |
| annualaverage | No | No | Yes | true to include annual averages |
| aspects | No | No | Yes | true to include footnotes and aspects |
GET /timeseries/data/{seriesID}
Example:
https://api.bls.gov/publicAPI/v2/timeseries/data/CUUR0000SA0?registrationkey=YOUR_KEY&startyear=2022&endyear=2024
GET /timeseries/data/{seriesID}
Without startyear/endyear, returns the most recent 3 years.
Example:
https://api.bls.gov/publicAPI/v2/timeseries/data/LNS14000000?registrationkey=YOUR_KEY
| Series ID | Description |
|---|---|
| CUUR0000SA0 | CPI-U All Items, US City Avg, Not Seasonally Adj |
| CUSR0000SA0 | CPI-U All Items, US City Avg, Seasonally Adj |
| CUUR0000SAF1 | CPI-U Food, US City Avg |
| CUUR0000SETB01 | CPI-U Gasoline (all types) |
| CUUR0000SAH1 | CPI-U Shelter |
| CUUR0000SAM | CPI-U Medical Care |
CPI series ID structure: CU + U/S (unadj/adj) + R/S (revision) + area code + item code
| Series ID | Description |
|---|---|
| LNS14000000 | Unemployment Rate (seasonally adjusted) |
| LNS11000000 | Civilian Labor Force Level |
| LNS12000000 | Employment Level |
| LNS13000000 | Unemployment Level |
| LNS14000006 | Unemployment Rate - Black or African American |
| LNS14000009 | Unemployment Rate - Hispanic or Latino |
| Series ID | Description |
|---|---|
| CES0000000001 | Total Nonfarm Employment (seasonally adj) |
| CES0500000003 | Average Hourly Earnings, Total Private |
| CES0500000002 | Average Weekly Hours, Total Private |
| Series ID | Description |
|---|---|
| WPSFD4 | PPI Final Demand |
| WPUFD49104 | PPI Final Demand less Foods & Energy |
| Series ID | Description |
|---|---|
| CIU1010000000000A | ECI Total Compensation, All Civilians |
| Series ID Pattern | Description |
|---|---|
| OEUM003342000000011-0000 | Example: specific occupation/area combo |
OEWS series IDs are complex. Use the BLS Series ID finder: https://data.bls.gov/cgi-bin/srgate
BLS series IDs encode survey, seasonal adjustment, area, industry, and item information. Key survey prefixes:
| Prefix | Survey |
|---|---|
| CU | Consumer Price Index |
| LN | Current Population Survey (Labor Force) |
| CE | Current Employment Statistics |
| WP | Producer Price Index |
| EI | Employment Cost Index / National Compensation |
| OE | Occupational Employment & Wage Statistics |
| LA | Local Area Unemployment Statistics |
| SM | State and Metro Area Employment (CES) |
| JT | Job Openings and Labor Turnover (JOLTS) |
{
"status": "REQUEST_SUCCEEDED",
"responseTime": 85,
"message": [],
"Results": {
"series": [
{
"seriesID": "CUUR0000SA0",
"catalog": {
"series_title": "All items in U.S. city average, all urban consumers, not seasonally adjusted",
"series_id": "CUUR0000SA0",
"seasonality": "Not Seasonally Adjusted",
"survey_name": "Consumer Price Index - All Urban Consumers",
"survey_abbreviation": "CU",
"measure_data_type": "All items",
"area": "U.S. city average",
"item": "All items"
},
"data": [
{
"year": "2024",
"period": "M01",
"periodName": "January",
"latest": "true",
"value": "308.417",
"footnotes": [{}],
"calculations": {
"net_changes": {
"1": "0.5",
"3": "1.2",
"6": "2.1",
"12": "3.1"
},
"pct_changes": {
"1": "0.2",
"3": "0.4",
"6": "0.7",
"12": "3.1"
}
}
},
{
"year": "2023",
"period": "M12",
"periodName": "December",
"value": "306.746",
"footnotes": [{}]
}
]
}
]
}
}
year: 4-digit year stringperiod: M01-M12 (monthly), Q01-Q05 (quarterly), A01 (annual), S01-S03 (semi-annual)periodName: Human-readable period namevalue: String (convert to float for calculations)latest: "true" on the most recent observation onlycalculations: Only present when calculations: true in request (V2). Contains net_changes and pct_changes over 1, 3, 6, 12 month spans.footnotes: Array of footnote objects{
"status": "REQUEST_NOT_PROCESSED",
"responseTime": 10,
"message": ["No data available for the given series and date range."],
"Results": {
"series": []
}
}
| Feature | V1 (no key) | V2 (with key) |
|---|---|---|
| Daily query limit | 25 requests | 500 requests |
| Series per query | 25 | 50 |
| Years per query | 10 | 20 |
| Catalog data | No | Yes |
| Calculations | No | Yes |
| Annual averages | No | Yes |
| Net/pct changes | No | Yes |
M13 represents the annual average (only present when annualaverage: true).value fields are strings. Missing data is typically omitted (the observation simply won't appear).calculations feature which provides pre-computed 12-month percent changes.