Full-Text SEC Filing Search
search_sec_filingsSearch the full text of SEC filings since 2001 to find companies related to any concept — a product, technology, regulation, event, or company.
Returns filing-level results with aggregated statistics (company count, form type breakdown, industry distribution). For 10-K/10-Q filings processed by MetricDuck, also shows WHICH SECTIONS contain the term with drill-in pointers.
Searchable form types — any SEC form (default window: last year); omit form_type for all:
Periodic reports: 10-K, 10-Q (section-level drill-down available), 20-F, 40-F, 6-K (foreign private issuers)
Events + proxies: 8-K, DEF 14A / DEFM14A / PRE 14A
Registration + offerings: S-1, F-1, S-3, S-4, 424B series
Ownership + other: SCHEDULE 13D/G (was SC 13D/G), SD (conflict minerals), N-CSR / N-CSRS (fund reports)
Section-level enrichment (10-K/10-Q only): results name which sections contain the term, with chunk pointers for drill-in via get_filing_section. Other forms return filing metadata + accession numbers only.
Use cases:
"Who supplies Apple?" → query=""Apple Inc."", form_type="10-K,10-Q,8-K" → Company Exposure Map of the filers mentioning Apple. Constrain forms — mutual-fund NPORT-P filings otherwise crowd the results (see
date_from)."What did WM say at its investor day?" → query=""investor day"", company="WM" → that filer only
"Recent data breaches?" → query="cybersecurity incident", form_type="8-K"
"Tariff-exposed companies?" → query="tariff", form_type="10-K" → risk factor disclosures
"Activist campaigns?" → query="board representation", form_type="DEF 14A,SCHEDULE 13D"
Other tools: one known company's filings → get_filing_index / list_filings; numeric filters → screen_companies; earnings-call trends → compare_earnings_calls.
Key limitation: keyword matching only, not semantic. "No material weakness" matches "material weakness found." Verify hits with get_filing_section for context.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 100). Results deduplicated by filing, sorted most recent first. Section-level enrichment applies to the first 5 results. | |
| query | No | Search terms. All terms required by default (implicit AND). Syntax: exact phrase "revenue recognition", OR: "goodwill impairment" OR "asset writedown", NOT: restructuring NOT "restructuring charges", NEAR: goodwill NEAR(5) impairment (within N words; two single words only: SEC cannot run NEAR on a phrase, wildcard or hyphenated term, so such a clause is searched as AND), wildcard: restructur* (trailing only, not in phrases). Use formal terms as written in SEC filings, not abbreviations. Required. | |
| company | No | Restrict to one company. Accepts a ticker in capitals (e.g. 'WSC'; resolved to its CIK, so exact), a CIK (exact match — get from search_companies; shorter numeric CIKs are auto-zero-padded to 10 digits), or a company name (partial match — may include unrelated companies). | |
| date_to | No | End date YYYY-MM-DD. Default: today. | |
| rank_by | No | Sort order for the returned filing list. 'date' (default) = most recent filings first — best for time-sensitive queries (breaches, guidance changes, recent events). 'relevance' = EFTS native relevance score — best for thematic discovery where the most concentrated mentions matter more than recency (e.g., 'liquefied natural gas', 'H100 supply chain'). The Company Exposure Map is always frequency-ranked from EFTS aggregation regardless of rank_by. | date |
| sections | No | Include section-level matches showing WHERE in each filing the term appears. Provides exact section + chunk pointers for immediate drill-in with get_filing_section. Set false for faster filing-level-only results. | |
| date_from | No | Start date YYYY-MM-DD. Default: 1 year ago. For a HISTORICAL event (M&A announcement, lawsuit, restructuring, leadership change) set it before the event, with form_type='8-K' and rank_by='relevance': the default window and date order bury the anchor 8-K under mutual-fund NPORT-P holdings. | |
| form_type | No | SEC form type filter. 10-K (annual report), 10-Q (quarterly), 8-K (material events), DEF 14A (proxy/compensation), S-1 (IPO registration). Comma-separated for multiple: '10-K,10-Q'. Omit to search all types. 13D/13G are filed as 'SCHEDULE 13D' / 'SCHEDULE 13G' since December 2024 and as 'SC 13D' / 'SC 13G' before; either spelling searches both. A form includes its amendments ('10-K' finds 10-K/A too); name only 'X/A' for amendments alone. Forms 3/4/5 (filed by insiders, naming the company as issuer): company as an upper-case ticker or a 10-digit CIK finds them (both exact); a name is a partial match. | |
| ticker_lookup | No | RETIRED — returns a redirect. Scope with `company`; to find who MENTIONS a company, search its formal name with form_type. |