US BLS
Five Bureau of Labor Statistics surveys, exposed as standalone endpoints and as ?include=labor_context enrichment on SEC filings. The US BLS dataset is what makes cross-dataset queries (“what’s Apple’s headcount trend vs. their industry?”) a single API call instead of three.
Coverage
Section titled “Coverage”| Survey | Frequency | Geo | What it measures |
|---|---|---|---|
| CES (Current Employment Statistics) | Monthly | National industry | Employment, average hourly earnings, hours worked by NAICS. Seasonally adjusted. |
| QCEW (Quarterly Census of Employment and Wages) | Quarterly | County × NAICS | Employment counts and wage totals by county and industry. |
| OEWS (Occupational Employment and Wage Statistics) | Annual | National + metro | Employment and wages by SOC occupation code. |
| JOLTS (Job Openings and Labor Turnover Survey) | Monthly | Industry + state + region | Job openings, hires, quits, layoffs. |
| LAUS (Local Area Unemployment Statistics) | Monthly | State + county | Unemployment rate, labor force participation. |
Known limitations
Section titled “Known limitations”- CPI, PPI, ECI, productivity, and NCS are not yet covered. On the post-1.0.0 roadmap. If any of these are load-bearing for your use case, let us know at hello@thesma.dev — it informs prioritisation.
- Seasonal adjustment is survey-specific. CES values are seasonally adjusted by default; QCEW is not (BLS doesn’t publish seasonally-adjusted QCEW). Check the
adjustmentfield on each response. - County-level wage data has disclosure suppression. QCEW suppresses values for very small industry-in-county cells to protect employer confidentiality. Expect occasional
nullfields at the county × NAICS intersection for thinly populated industries.
Endpoints
Section titled “Endpoints”Industries (CES + employment trends)
Section titled “Industries (CES + employment trends)”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/bls/industries | List industries (NAICS) with BLS coverage. |
| GET | /v1/us/bls/industries/{naics} | Industry detail. |
| GET | /v1/us/bls/industries/{naics}/employment | Monthly employment time series (CES). |
| GET | /v1/us/bls/industries/{naics}/employment/latest | Most recent month snapshot. |
Counties (QCEW + LAUS)
Section titled “Counties (QCEW + LAUS)”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/bls/counties/{fips}/employment | County employment by industry (QCEW). |
| GET | /v1/us/bls/counties/{fips}/wages | County wage totals by industry (QCEW). |
| GET | /v1/us/bls/counties/{fips}/unemployment | County unemployment rate (LAUS). |
| GET | /v1/us/bls/counties/compare | Multi-county comparison on a single metric. |
States (LAUS)
Section titled “States (LAUS)”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/bls/states/{fips}/unemployment | State unemployment rate and labor force (LAUS). |
| GET | /v1/us/bls/states/compare | Multi-state comparison. |
| GET | /v1/us/bls/states/{fips}/turnover | State-level JOLTS (openings, hires, quits, layoffs). |
Occupations (OEWS)
Section titled “Occupations (OEWS)”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/bls/occupations | List SOC occupations. |
| GET | /v1/us/bls/occupations/{soc} | Occupation detail. |
| GET | /v1/us/bls/occupations/{soc}/wages | Wage distribution (mean, 10th / 25th / 50th / 75th / 90th percentiles). |
Turnover (JOLTS)
Section titled “Turnover (JOLTS)”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/bls/industries/{naics}/turnover | Industry-level openings, hires, quits, layoffs. |
| GET | /v1/us/bls/industries/{naics}/turnover/latest | Most recent month snapshot. |
| GET | /v1/us/bls/regions/{region}/turnover | Regional JOLTS (Northeast, South, Midwest, West). |
| GET | /v1/us/bls/turnover/by-size | JOLTS by establishment size. |
Metrics catalogue
Section titled “Metrics catalogue”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/bls/metrics | All BLS metrics across surveys with their dimensions. |
| GET | /v1/us/bls/metrics/{metric} | Metric detail — source, unit, cadence, geographic level. |
Cross-dataset enrichment on SEC
Section titled “Cross-dataset enrichment on SEC”The ?include=labor_context parameter on any SEC company or financials endpoint adds a labor_context object with BLS data for the company’s NAICS industry:
{ "labor_context": { "industry": { "naics_code": "334111", "naics_description": "Electronic computer manufacturing", "naics_match_level": "6-digit", "total_employment_thousands": 57.0, "employment_yoy_pct": -2.9, "avg_hourly_earnings": null, "earnings_yoy_pct": null, "data_period": "2026-02", "source": "CES", "adjustment": "sa" }, "local_market": { "county_fips": "06085", "industry_employment": 8226, "industry_avg_weekly_wage": 6919, "total_employment": 1119379, "data_period": "2025-Q3", "source": "LAUS+QCEW", "match_level": "county" }, "turnover": { "jolts_industry_code": "320000", "job_openings_rate": 3.7, "hires_rate": 2.0, "quits_rate": 1.1, "layoffs_and_discharges_rate": 0.8, "labour_market_tightness": 1.95, "data_period": "2026-02", "source": "JOLTS" }, "compensation_benchmark": { "soc_code": "11-1011", "soc_title": "Chief Executives", "market_median_annual_wage": 206420, "market_mean_annual_wage": 262930, "reference_year": 2024, "source": "OEWS" }, "summary": { "industry_hiring_trend": "declining", "local_unemployment_trend": "stable", "comp_to_market_ratio": null, "labour_market_tightness": 1.95 }, "data_freshness": { "ces_period": "2026-02", "qcew_period": "2025-Q3", "jolts_period": "2026-02", "laus_period": "2026-01", "oews_period": "2024", "sec_exec_comp_snapshot_date": "2026-01-08" } }}Real responses include additional fields per sub-object — see the API Reference for the complete schema. See the cross-dataset labor-context recipe for the full walk-through.
Screener filters
Section titled “Screener filters”The /v1/us/sec/screener endpoint supports BLS-side filters for finding companies whose industry labor conditions meet a threshold:
industry_employment_yoy_min/_maxindustry_earnings_yoy_min/_maxindustry_openings_rate_minstate_unemployment_rate_maxcounty_unemployment_rate_max(uses the company’s HQ county)
Example: 5-year employment trend for pharmaceuticals (NAICS 3254)
Section titled “Example: 5-year employment trend for pharmaceuticals (NAICS 3254)”curl -H "X-API-Key: $THESMA_API_KEY" \ "https://api.thesma.dev/v1/us/bls/industries/3254/employment?from_date=2020-01&to_date=2025-12" \ | jq '.data[] | {period, employment, avg_hourly_earnings}'See the BLS industry-trend recipe for the full example with Python SDK and expected response shape.
See also
Section titled “See also”- Cross-dataset labor-context recipe — the flagship
- BLS industry-trend recipe — single-dataset walk-through
- SBA dataset — adjacent lending data
- API Reference — Bureau of Labor Statistics — full schema detail