Skip to content

Enrich SEC filings with labor context

The flagship cross-dataset recipe. Add ?include=labor_context to any SEC financials endpoint and the response adds a labor_context object with BLS employment and wage data for the company’s NAICS industry — no second API call, no join on your side.

You’re looking at a company’s financials and want to know whether their headcount or wage changes track their industry’s macro labor conditions. Traditionally that’s two API calls (SEC + BLS), a NAICS lookup, and an aggregation. With ?include=labor_context, it’s one call.

Terminal window
curl -H "X-API-Key: $THESMA_API_KEY" \
"https://api.thesma.dev/v1/us/sec/companies/AAPL/financials?statement=income&period=annual&per_page=1&include=labor_context"
from thesma import ThesmaClient
client = ThesmaClient()
financials = client.sec.companies("AAPL").financials(
period="annual",
limit=1,
include=["labor_context"],
)
row = financials.data[0]
print("Apple revenue:", row.revenue)
print("Industry (NAICS", row.labor_context.naics, ") employment:",
row.labor_context.industry_employment)
print("Industry avg hourly wage:", row.labor_context.industry_avg_wage)

The labor_context field is a sibling of the standard financial fields on each row in data. Field names match what you’d get from the standalone /v1/us/bls/ces/industries/{naics}/employment and related endpoints — same types, same units.

{
"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"
}
}
}

The labor_context is one field within each data[] element alongside company, line_items, etc. — see the Quickstart for the full top-level envelope. Real responses include additional fields per sub-object — see the API Reference for the complete schema.

include accepts a comma-separated list. The two supported values as of launch:

  • labor_context — BLS industry employment and wages (as above)
  • lending_context — US SBA 7(a) small-business lending activity in the company’s headquarters county
Terminal window
curl -H "X-API-Key: $THESMA_API_KEY" \
"https://api.thesma.dev/v1/us/sec/companies/AAPL/financials?statement=income&include=labor_context,lending_context"

Each enrichment adds one object to the response row; they can be requested independently or together.

Both enrichment params work on two endpoints:

  • /v1/us/sec/companies/{identifier} — the company-detail surface. No other params required; the enrichment is added directly to the company object.
  • /v1/us/sec/companies/{identifier}/financials — adds the enrichment to each row in the paginated data array. Requires ?statement= (see SEC EDGAR).

Use the company-detail surface when you only need the enrichment (and not the financials); use the financials surface when you want them aligned per filing.

?include=labor_context is taxonomy-agnostic. BLS industry enrichment keys off the filer’s SIC/NAICS code, not the reporting framework, so the same parameter works identically for IFRS 20-F filers (Spotify, Nu Holdings, and others):

Terminal window
curl -H "X-API-Key: $THESMA_API_KEY" \
"https://api.thesma.dev/v1/us/sec/companies/1639920/financials?statement=income&period=annual&per_page=1&include=labor_context"

Spotify’s NAICS industry resolves to the same BLS CES context you’d get for a US-GAAP peer. The financial values are still in native currency (EUR for Spotify) — labor_context is USD-denominated independently. See the IFRS filer recipe for the non-enriched Spotify case.

Per-filing enrichment is the thing the Thesma platform is built around. Without it, every multi-dataset analysis is a three-step join. With it, one endpoint call. The positioning story for the company rides on this recipe.