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.
Coverage
Section titled “Coverage”| Dimension | Value |
|---|---|
| Companies | 6,005 active US public companies |
| Listing scope | Every US-listed NYSE + NASDAQ issuer |
| Market cap coverage | ~98% of investable US market cap |
| Filings | 10-K, 10-Q, 8-K, Form 4, 13F-HR, DEF 14A, SC 13D/G, and more |
| Historical financials | Typically 10+ years of annuals; quarterly since IPO or normalisation start |
| Normalisation | XBRL → 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.
Known limitations
Section titled “Known limitations”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_contextenrichment (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/companiesbut have empty/financialsuntil their first periodic filing lands.
Endpoints
Section titled “Endpoints”Each row below is a tag group from the OpenAPI spec. See the API Reference for full parameter and response schemas.
Companies
Section titled “Companies”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/companies | List 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}/filings | All filings for one company (paginated). |
Filings
Section titled “Filings”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/filings | List 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}/content | Full text content of the filing. |
Financials
Section titled “Financials”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/financials/fields | Full list of canonical financial fields and their XBRL source tags. |
| GET | /v1/us/sec/companies/{cik}/financials | Income 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). |
Ratios
Section titled “Ratios”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/companies/{cik}/ratios | Computed ratios — margins, returns, leverage, growth YoY. |
| GET | /v1/us/sec/companies/{cik}/ratios/{ratio} | Time series for a single ratio. |
Events
Section titled “Events”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/events | Events across companies, categorised (earnings, leadership, governance, regulatory, material agreements, etc.). |
| GET | /v1/us/sec/events/categories | Event-category catalogue. |
| GET | /v1/us/sec/companies/{cik}/events | Events for one company. |
Insider activity
Section titled “Insider activity”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/insider-trades | Form 4 transactions across companies. |
| GET | /v1/us/sec/companies/{cik}/insider-trades | Form 4 transactions for one company. |
| GET | /v1/us/sec/companies/{cik}/insider-holdings | Current insider beneficial-ownership snapshot. |
Institutional holdings
Section titled “Institutional holdings”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/companies/{cik}/institutional-holders | 13F holders of one company. |
| GET | /v1/us/sec/companies/{cik}/institutional-changes | Period-over-period changes in 13F holders. |
| GET | /v1/us/sec/funds | 13F filers (institutional funds). |
| GET | /v1/us/sec/funds/{cik}/holdings | A fund’s reported holdings. |
| GET | /v1/us/sec/funds/{cik}/holding-changes | A fund’s period-over-period position changes. |
Compensation and governance
Section titled “Compensation and governance”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/companies/{cik}/executive-compensation | Named-executive pay breakdown + CEO-to-median-worker ratio. |
| GET | /v1/us/sec/companies/{cik}/board | Board members from DEF 14A. |
| GET | /v1/us/sec/companies/{cik}/proxy-votes | Proxy vote results. |
| GET | /v1/us/sec/companies/{cik}/beneficial-ownership | SC 13D/13G beneficial-ownership stakes. |
| GET | /v1/us/sec/beneficial-ownership | Beneficial-ownership events across companies. |
Filing sections (text extraction)
Section titled “Filing sections (text extraction)”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/filings/{accession_number}/sections | List 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}/changes | Period-over-period diffs of a section’s text. |
| GET | /v1/us/sec/companies/{cik}/sections | Cross-filing section index for one company. |
| GET | /v1/us/sec/companies/{cik}/sections/{section_type}/entities | Entities (people, companies, places) mentioned in a section across filings. |
| GET | /v1/us/sec/sections/search | Semantic search across extracted section text. |
Screener
Section titled “Screener”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/screener | Multi-factor company screener across SEC, BLS, and SBA filters. |
Data export
Section titled “Data export”| Method | Path | Purpose |
|---|---|---|
| GET | /v1/us/sec/export/companies | Bulk export. |
| GET | /v1/us/sec/export/financials | Bulk export. |
| GET | /v1/us/sec/export/insider-trades | Bulk export. |
| GET | /v1/us/sec/export/events | Bulk export. |
| GET | /v1/us/sec/export/ratios | Bulk export. |
| GET | /v1/us/sec/export/holdings | Bulk export. |
| GET | /v1/us/sec/export/compensation | Bulk export. |
| GET | /v1/us/sec/export/beneficial-ownership | Bulk export. |
Exports stream CSV or JSONL and are available on the Business tier and above.
Cross-dataset enrichment
Section titled “Cross-dataset enrichment”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.
?include=labor_context
Section titled “?include=labor_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.
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.
?include=lending_context
Section titled “?include=lending_context”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.
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.
Screener filters
Section titled “Screener filters”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.
Response envelopes
Section titled “Response envelopes”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.
Example: AAPL financials snapshot
Section titled “Example: AAPL financials snapshot”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.
See also
Section titled “See also”- XBRL mapping — how filings are normalised to canonical fields
- SEC financials recipe — 5 years of annual financials, curl + Python
- Cross-dataset labor-context recipe — flagship enrichment
- API Reference — SEC EDGAR — full schema detail