Skip to content

SEC EDGAR

The SEC EDGAR dataset is the core of Thesma. It covers every US public company on NYSE and NASDAQ, normalises XBRL financials to canonical fields, extracts structured data from narrative sections of filings, and cross-indexes everything so you can pivot from a company to its filings, financials, ratios, events, insider trades, and institutional holders in one hop.

DimensionValue
Companies6,005 active US public companies
Listing scopeEvery US-listed NYSE + NASDAQ issuer
Market cap coverage~98% of investable US market cap
Filings10-K, 10-Q, 8-K, Form 4, 13F-HR, DEF 14A, SC 13D/G, and more
Historical financialsTypically 10+ years of annuals; quarterly since IPO or normalisation start
NormalisationXBRL → canonical field names across filers (see XBRL mapping)

Ticker symbols and CIK numbers are interchangeable in every endpoint path. The {cik} path parameter accepts either — /v1/us/sec/companies/AAPL and /v1/us/sec/companies/0000320193 return the same company.

Shipped honestly. Each of these is a documented gap, not a surprise.

  • IFRS 20-F filers have limited historical coverage. Foreign private issuers that file 20-F (Spotify, Nu Holdings, GlobalFoundries, and others) are partially normalised in the canonical financials schema. Native-currency IFRS support is targeted for Q2 2026. Raw 20-F filings are reachable via /v1/us/sec/filings; canonical financial-field coverage lags. See XBRL mapping.
  • Delisted and acquired companies are included as historical records but are not eligible for ?include=labor_context enrichment (the BLS industry tie-out requires the company to be actively classified).
  • Issuers in registration (S-1) without a first-filed 10-K/10-Q appear in /v1/us/sec/companies but have empty /financials until their first periodic filing lands.

Each row below is a tag group from the OpenAPI spec. See the API Reference for full parameter and response schemas.

MethodPathPurpose
GET/v1/us/sec/companiesList companies (paginated). Filter by ticker, search, sic, tier, state_fips, county_fips, exchange, domicile.
GET/v1/us/sec/companies/{cik}Company detail — identity fields, optional ?include=labor_context,lending_context enrichment.
GET/v1/us/sec/companies/{cik}/filingsAll filings for one company (paginated).
MethodPathPurpose
GET/v1/us/sec/filingsList filings across companies (paginated).
GET/v1/us/sec/filings/{accession_number}Filing detail — filed date, form type, source URL.
GET/v1/us/sec/filings/{accession_number}/contentFull text content of the filing.
MethodPathPurpose
GET/v1/us/sec/financials/fieldsFull list of canonical financial fields and their XBRL source tags.
GET/v1/us/sec/companies/{cik}/financialsIncome statement, balance sheet, cash flow per period.
GET/v1/us/sec/companies/{cik}/financials/{metric}Time series for a single canonical metric (e.g., revenue, net_income).
MethodPathPurpose
GET/v1/us/sec/companies/{cik}/ratiosComputed ratios — margins, returns, leverage, growth YoY.
GET/v1/us/sec/companies/{cik}/ratios/{ratio}Time series for a single ratio.
MethodPathPurpose
GET/v1/us/sec/eventsEvents across companies, categorised (earnings, leadership, governance, regulatory, material agreements, etc.).
GET/v1/us/sec/events/categoriesEvent-category catalogue.
GET/v1/us/sec/companies/{cik}/eventsEvents for one company.
MethodPathPurpose
GET/v1/us/sec/insider-tradesForm 4 transactions across companies.
GET/v1/us/sec/companies/{cik}/insider-tradesForm 4 transactions for one company.
GET/v1/us/sec/companies/{cik}/insider-holdingsCurrent insider beneficial-ownership snapshot.
MethodPathPurpose
GET/v1/us/sec/companies/{cik}/institutional-holders13F holders of one company.
GET/v1/us/sec/companies/{cik}/institutional-changesPeriod-over-period changes in 13F holders.
GET/v1/us/sec/funds13F filers (institutional funds).
GET/v1/us/sec/funds/{cik}/holdingsA fund’s reported holdings.
GET/v1/us/sec/funds/{cik}/holding-changesA fund’s period-over-period position changes.
MethodPathPurpose
GET/v1/us/sec/companies/{cik}/executive-compensationNamed-executive pay breakdown + CEO-to-median-worker ratio.
GET/v1/us/sec/companies/{cik}/boardBoard members from DEF 14A.
GET/v1/us/sec/companies/{cik}/proxy-votesProxy vote results.
GET/v1/us/sec/companies/{cik}/beneficial-ownershipSC 13D/13G beneficial-ownership stakes.
GET/v1/us/sec/beneficial-ownershipBeneficial-ownership events across companies.
MethodPathPurpose
GET/v1/us/sec/filings/{accession_number}/sectionsList sections extracted from one filing.
GET/v1/us/sec/filings/{accession_number}/sections/{section_type}One named section (e.g., Risk Factors, MD&A).
GET/v1/us/sec/filings/{accession_number}/sections/{section_type}/changesPeriod-over-period diffs of a section’s text.
GET/v1/us/sec/companies/{cik}/sectionsCross-filing section index for one company.
GET/v1/us/sec/companies/{cik}/sections/{section_type}/entitiesEntities (people, companies, places) mentioned in a section across filings.
GET/v1/us/sec/sections/searchSemantic search across extracted section text.
MethodPathPurpose
GET/v1/us/sec/screenerMulti-factor company screener across SEC, BLS, and SBA filters.
MethodPathPurpose
GET/v1/us/sec/export/companiesBulk export.
GET/v1/us/sec/export/financialsBulk export.
GET/v1/us/sec/export/insider-tradesBulk export.
GET/v1/us/sec/export/eventsBulk export.
GET/v1/us/sec/export/ratiosBulk export.
GET/v1/us/sec/export/holdingsBulk export.
GET/v1/us/sec/export/compensationBulk export.
GET/v1/us/sec/export/beneficial-ownershipBulk export.

Exports stream CSV or JSONL and are available on the Business tier and above.

Two include parameters add data from adjacent verticals without a second API call. Both work on /v1/us/sec/companies/{cik} and on list endpoints that return company context.

Adds a labor_context object with BLS industry data for the company’s NAICS industry — current employment, YoY change, average hourly earnings, YoY wage change, and the CES series vintage.

Terminal window
curl -H "X-API-Key: $THESMA_API_KEY" \
"https://api.thesma.dev/v1/us/sec/companies/AAPL?include=labor_context"

See the flagship recipe for the full worked example.

Adds a lending_context object with SBA 7(a) lending aggregates for the company’s headquarters county — loan count, total amount, charge-off rate, and jobs supported.

Terminal window
curl -H "X-API-Key: $THESMA_API_KEY" \
"https://api.thesma.dev/v1/us/sec/companies/AAPL?include=lending_context"

Both enrichments can be combined: ?include=labor_context,lending_context.

The /v1/us/sec/screener endpoint supports multi-factor filtering across all three datasets. Common SEC-side filters:

  • ticker, cik, sic, exchange, domicile, state_fips, county_fips
  • Financial bands: revenue_min/revenue_max, net_income_min/max, market_cap_min/max, eps_min/max
  • Ratio bands: gross_margin_min/max, roe_min/max, debt_to_equity_max
  • Growth bands: revenue_yoy_min/max, net_income_yoy_min/max
  • Cross-dataset: industry_employment_yoy_min (BLS), county_charge_off_rate_max (SBA)

Run curl https://api.thesma.dev/openapi.json | jq '.paths["/v1/us/sec/screener"]' for the full parameter list — the screener’s parameter surface is large and additive.

All list endpoints return the standard envelope:

{
"data": [ /* array of entities */ ],
"pagination": {
"page": 1,
"per_page": 25,
"total": 6005,
"total_pages": 241
}
}

Detail endpoints return a single entity wrapped in data:

{
"data": { "ticker": "AAPL", "...": "..." }
}

See Pagination for iteration patterns and the semantic-search footnote.

Terminal window
curl -H "X-API-Key: $THESMA_API_KEY" \
"https://api.thesma.dev/v1/us/sec/companies/AAPL/financials?period=annual&limit=1" \
| jq '.data[0] | {fiscal_year, revenue, gross_profit, operating_income, net_income}'

Returns a single-period snapshot. For multi-year time series, use the {metric} endpoint or iterate with &offset= / &page=. The SEC financials recipe walks through a 5-year pull end-to-end.