US BLS Labor Statistics Scraper (Unemployment, CPI, Wages)
Pricing
from $12.75 / 1,000 results
US BLS Labor Statistics Scraper (Unemployment, CPI, Wages)
Scrape U.S. Bureau of Labor Statistics time series: unemployment, inflation (CPI), producer prices (PPI), payroll employment, wages, hours and job openings. Pick a friendly indicator name or paste raw series IDs. Clean flat rows with value, period and dates. Export to JSON, CSV or Excel.
Pricing
from $12.75 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
US BLS Labor Statistics Scraper (Unemployment, CPI, Wages)
Here is one real result, with every field the actor returns:
{"seriesId": "LNS14000000","indicator": "Unemployment Rate (U-3, seasonally adjusted)","surveyName": null,"year": 2024,"period": "M12","periodName": "December","periodType": "Monthly","month": 12,"date": "2024-12-01","value": 4.1,"netChange1Month": null,"netChange3Month": null,"netChange6Month": null,"netChange12Month": null,"pctChange1Month": null,"pctChange3Month": null,"pctChange6Month": null,"pctChange12Month": null,"isLatest": null,"footnotes": null,"source": "U.S. Bureau of Labor Statistics","observedAt": "2026-08-10T14:35:04.224Z"}
The most complete US Bureau of Labor Statistics scraper available. It returns one clean, flat row per data point with the value, period, and normalized date, covering unemployment, inflation (CPI), producer prices (PPI), payroll employment, wages, hours, and job openings, and gives you friendly indicator presets plus raw series-ID support so you can pull exactly the series and years you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads U.S. Bureau of Labor Statistics time series. Pick one or more friendly indicator presets (for example unemployment-rate, cpi-inflation, nonfarm-payrolls, avg-hourly-earnings, job-openings) or paste any raw BLS series ID (for example LNS14000000). Set a start and end year, and the actor returns one normalized row per data point across every series in the run.
Each row carries the series ID, a readable indicator name, the year, the BLS period code and name, a normalized date, and the numeric value. When you supply a free BLS registration key, the source also returns month-over-month and year-over-year change calculations and richer series metadata, which the actor maps into the netChange* and pctChange* fields.
Values are returned as numbers, dates are normalized to YYYY-MM-DD, and missing source values are returned as null, never invented.
Quickstart
Open the actor, paste this into the input, and press Run. It returns monthly unemployment rate and CPI inflation data for 2022 through 2024.
{"series": ["unemployment-rate", "cpi-inflation"],"startYear": 2022,"endYear": 2024,"maxRecords": 500}
Use any combination of presets and raw series IDs in series. Every input field is optional; with an empty input the actor uses its default indicators and year range.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
series | string[] | no | ["unemployment-rate","cpi-inflation"] | Indicator presets or raw BLS series IDs. Presets include unemployment-rate, labor-force-participation, nonfarm-payrolls, private-payrolls, avg-hourly-earnings, avg-weekly-hours, cpi-inflation, cpi-core, cpi-food, cpi-energy, ppi-final-demand, job-openings, quits, hires, layoffs, and more. Raw IDs such as LNS14000000 also work. |
startYear | integer | no | 2022 | First year to return (inclusive). |
endYear | integer | no | 2024 | Last year to return (inclusive). |
maxRecords | integer | no | 500 | Maximum data points to return across the whole run. Free Apify plans are capped at 50. |
apiToken | string (secret) | no | (empty) | Optional free BLS registration key. Unlocks higher source limits, change calculations, and richer metadata. |
Output reference
One dataset item per data point. Types: string, integer, number, boolean, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
seriesId | string | BLS series ID, for example LNS14000000. |
indicator | string | Readable indicator name for the series. |
surveyName | string | BLS survey name, when metadata is available (registration key). |
year | integer | Calendar year of the data point. |
period | string | BLS period code, for example M12 (December) or Q01. |
periodName | string | Readable period name, for example December. |
periodType | string | Period type, for example Monthly, Quarterly, Annual. |
month | integer | Month number (1-12) for monthly series, or null. |
date | string | Normalized date of the data point (YYYY-MM-DD). |
value | number | The reported value for the series and period. |
netChange1Month | number | Net change over 1 month, or null (registration key). |
netChange3Month | number | Net change over 3 months, or null (registration key). |
netChange6Month | number | Net change over 6 months, or null (registration key). |
netChange12Month | number | Net change over 12 months, or null (registration key). |
pctChange1Month | number | Percent change over 1 month, or null (registration key). |
pctChange3Month | number | Percent change over 3 months, or null (registration key). |
pctChange6Month | number | Percent change over 6 months, or null (registration key). |
pctChange12Month | number | Percent change over 12 months, or null (registration key). |
isLatest | boolean | Whether this is the most recent point in the series, or null. |
footnotes | string | BLS footnotes for the data point, or null. |
source | string | Always U.S. Bureau of Labor Statistics. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed run; a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"series": ["unemployment-rate","cpi-inflation"], "startYear": 2022, "endYear": 2024}):
{"seriesId": "LNS14000000","indicator": "Unemployment Rate (U-3, seasonally adjusted)","year": 2024,"period": "M12","periodName": "December","periodType": "Monthly","month": 12,"date": "2024-12-01","value": 4.1,"isLatest": null,"source": "U.S. Bureau of Labor Statistics","observedAt": "2026-08-10T14:35:04.224Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~bls-labor-statistics-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"series":["unemployment-rate","cpi-inflation"],"startYear":2022,"endYear":2024,"maxRecords":500}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~bls-labor-statistics-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"series":["LNS14000000","nonfarm-payrolls"],"startYear":2015,"endYear":2024}'
Apify CLI:
apify call scrapers_lat/bls-labor-statistics-scraper \--input '{"series":["cpi-core"],"startYear":2020,"endYear":2024}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per data point returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes an item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 50 data points per run. Upgrade for higher
maxRecords. - Registration key is optional. Public access works without a key. A free BLS registration key raises source limits and unlocks the
netChange*andpctChange*fields.
FAQ and troubleshooting
A run returned 0 records. Why? No valid series were resolved, or the year range has no published data. Check the preset names or raw series IDs and widen the year range. Zero-result runs are not charged.
Why are the netChange* and pctChange* fields null?
Those change calculations are returned by BLS only when you supply a free registration key in apiToken. Without a key, the value is still returned; the derived change fields stay null.
Can I mix presets and raw series IDs?
Yes. Put any combination in series. Presets are resolved to their BLS series IDs, and raw IDs are passed through as-is.
How do I find a raw series ID?
Use the BLS series-ID format shown on the BLS website (for example LNS14000000 for the unemployment rate). Any valid series ID works in series.
Is this an official BLS tool? No. This actor is independent and has no affiliation with the U.S. Bureau of Labor Statistics. It reads only data that is publicly available through the BLS public data service. Use it in accordance with the BLS terms of service.
Related scrapers
- World Bank Indicators Scraper: World Bank development indicator time series.
- OECD Data Scraper: OECD statistical datasets.
- IMF Data Scraper: IMF economic and financial data.
- UN Comtrade Trade Data Scraper: International trade flow data.
- USAspending Federal Award Scraper: US federal prime awards.
- Federal Register Document Scraper: US Federal Register documents.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the U.S. Bureau of Labor Statistics. Accesses only publicly available BLS data. Use in accordance with the BLS terms of service.
