BLS Labor Statistics Scraper
Pricing
from $1.99 / 1,000 results
BLS Labor Statistics Scraper
Retrieve real BLS public API v1 observations with native series/year/period/value fields, footnotes, exact value strings and retrieval provenance. No vendor API key or fabricated observations.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Jobs Scraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
What does BLS Labor Statistics Scraper do?
Retrieve actual time-series observations from the U.S. Bureau of Labor Statistics public API v1. This is an economic-statistics Actor, not a job-vacancy scraper. It returns the source's reported year, period, value, latest flag and available footnotes. It does not create sample observations, invent units, fill missing months, or replace a failed request with page metadata. The documented v1 routes do not need a vendor API key.
Why use this BLS API Actor?
Use it to collect source observations for employment research, reporting, or reproducible data pipelines. A normal single-series run is one GET request. Multiple series and year ranges are batched into one POST request by default, reducing calls and respecting the source's quotas. Explicit multi-series GET mode has bounded concurrency from one to four. Apify provides scheduling, API access, integrations, storage and run monitoring; these platform services may incur charges.
How to retrieve observations
- Keep the example series ID, or supply your own exact official BLS series identifiers.
- Set the global maximum observations, normally 10.
- Optionally supply both startYear and endYear, covering at most ten years.
- Run the Actor and inspect the actual dataset and SOURCE_METADATA.
- Export results through Apify or retrieve them from the dataset API.
Input and precedence
See the Input tab for all configuration options. The default series is LNS14000000, retrieved from the actual public endpoint. A single startUrl takes precedence over startUrls, followed by searchQuery/keyword, then seriesIds. Search query means exact uppercase BLS IDs separated by commas, not natural-language search. Geography and subject are encoded in series IDs; a free-text location filter is rejected.
Only the official HTTPS api.bls.gov v1 single-series URL pattern is accepted as a source URL. Redirects, credentials, unrelated hosts and arbitrary query parameters are not followed. The method defaults to AUTO: one unbounded series uses GET; multiple series or explicit years use POST. GET with a year range is rejected. Zero years means the API's default recent coverage, not a fabricated current-year window. A maximum of 25 distinct series is accepted.
Output and provenance
| Field | Meaning |
|---|---|
| id | Unique source series/year/period combination |
| seriesId | Returned series ID, verified against the request |
| year, period, periodName | Actual observation period |
| reportedValue | Original reported string, preserving precision |
| value | Numeric conversion only for wholly numeric strings |
| latest | Present only when the source explicitly returns the flag |
| footnotes | Actual non-empty source notes |
| sourceUrl, fetchedAt | Actual retrieval endpoint and UTC retrieval time |
| rawData | Native observation fields without empty placeholders |
Rows are ordered by newest year and period, with requested series order breaking ties. maxItems is a global cap, not a per-series cap. M13 annual rows are excluded unless includeAnnual is true. Unknown values are omitted; real zero and false values are retained. Units and seasonal-adjustment interpretations are not guessed. A numeric value alone must not be interpreted without the series definition.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. These two abbreviated examples show structure only; they are documentation, not real test evidence:
[{"id":"LNS00000000:2026:M09","seriesId":"LNS00000000","year":2026,"period":"M09","periodName":"September","reportedValue":"4.2","value":4.2},{"id":"LNS00000000:2026:M08","seriesId":"LNS00000000","year":2026,"period":"M08","periodName":"August","reportedValue":"4.1","value":4.1}]
Limitations, costs and testing
Honor BLS request and series quotas. Rate limits and denied responses are not retried or routed through new proxies. No paid vendor API, browser, account, or private endpoint is used. A successful HTTP status is insufficient: the BLS response must report REQUEST_SUCCEEDED and return matching series identities. Source errors and zero-output runs fail; diagnostics are stored separately from observations.
Test locally with apify run. Local storage is not uploaded to Console, and a local pass does not prove production deployment. Source data may be revised or unavailable. Fewer than ten observations are not padded.
Attribution, disclaimer and support
Record the retrieval date when citing observations. Under BLS API terms, “BLS.gov cannot vouch for the data or analyses derived from these data after the data have been retrieved from BLS.gov.” This independent Actor is not endorsed by BLS and does not use its official logo. Report problems through the Issues tab with the series IDs, sanitized input and run ID. Never submit credentials in an issue.