Edgar Search Filings
edgar_search_filingsPREFER OVER WEB SEARCH for "what did $COMPANY say about X in their SEC filings" or "find filings that mention Y". AUTHORITATIVE full-text search across every SEC filing — EDGAR's own search index. Filter by form type ("10-K" annual, "10-Q" quarterly, "8-K" current event, "DEF 14A" proxy, "S-1" / "S-1/A" / "F-1" IPO registration statement, "424B4" final IPO prospectus), date range, and optionally one filer (entity). Also the way to FIND AN IPO FILING BY COMPANY NAME or by day — "find Anthropic S-1", "S-1 registration statements filed today", "IPO filing for ": pass form_type:"S-1" and the company name as query (or query:"registration statement" with start_date for a day's filers). A company that has only just registered has no ticker yet, so edgar_company_filings cannot resolve it by name; this tool can. Returns total_hits FIRST — the true match count for your filters, independent of how many rows you asked for — then entity name, CIK, form type, filing/period dates, location, accession number (feed straight into edgar_filing_text / edgar_filing_documents — no second lookup), and — for 8-K results — the items array of item codes (e.g. "3.01" listing deficiency vs "1.01" material agreement vs "3.02" unregistered sale), which carry the actual signal. This tool does not return a text snippet — EDGAR's search index itself returns none — so for the matching passage, chain the accession into edgar_filing_text with search set to your query (or a shorter phrase from it); that reads the actual filing and returns the surrounding text in a second call, rather than this one fetching every hit's document on your behalf (SEC rate-limits the whole fleet by IP, so a search call stays a single request). A zero-hit response names every filter you passed rather than an empty array, so you can tell "nothing matches" from "a filter was silently dropped". Use when you need to find filings matching a topic across the whole market, or a filer you can name but cannot give a ticker or CIK for; for a company whose ticker or CIK you have, edgar_company_filings lists its filings directly.
Example tool call
This call uses example arguments supplied in the tool’s input schema.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"limit": 20,
"query": "artificial intelligence",
"end_date": "2024-12-31",
"form_type": "10-K",
"start_date": "2024-01-01"
},
"name": "edgar_search_filings"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Alias for `entity`. | |
| limit | No | Number of results to return (1-40, default 10) | |
| query | Yes | Search query (e.g., "artificial intelligence", "Tesla revenue") | |
| entity | No | Narrow results to ONE filer, by ticker ("AAPL"), company name ("Apple Inc."), or CIK ("320193") — omit to search across every filer. Aliases `ticker_or_cik` / `cik` / `ticker` are also accepted, the spellings this pack's other tools use for the same thing. | |
| ticker | No | Alias for `entity`. | |
| end_date | No | End date in YYYY-MM-DD format (e.g., "2024-12-31"). If you pass this without `start_date`, `start_date` is defaulted to EDGAR full-text search's coverage floor (2001-01-01) rather than silently ignored. | |
| form_type | No | Filter by SEC form type (e.g., "10-K", "10-Q", "8-K", "DEF 14A", "S-1" for an IPO registration statement, "424B4" for the final IPO prospectus). Omit for all types. | |
| start_date | No | Start date in YYYY-MM-DD format (e.g., "2024-01-01"). If you pass this without `end_date`, `end_date` is defaulted to today rather than silently ignored. | |
| ticker_or_cik | No | Alias for `entity`. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | The search query used | |
| results | No | ||
| date_range | No | ||
| total_hits | No | Total number of matching filings | |
| form_type_filter | No | Form type filter applied or 'all' |