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.
Problem
Section titled “Problem”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.
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"Python SDK
Section titled “Python SDK”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)Expected response shape
Section titled “Expected response shape”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.
Available enrichments
Section titled “Available enrichments”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
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.
Where ?include= works
Section titled “Where ?include= works”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 paginateddataarray. 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.
Works for IFRS filers too
Section titled “Works for IFRS filers too”?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):
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.
Why this matters
Section titled “Why this matters”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.
See also
Section titled “See also”- SEC EDGAR dataset — coverage, endpoint table, screener filters
- US BLS dataset — standalone labor endpoints if you want the BLS data without the SEC join
- US SBA dataset — the lending-context source