<!-- Agent Datasets docs · stocks_search_filings · canonical: https://www.agentdatasets.com/docs/tools/stocks_search_filings · rendered from https://www.agentdatasets.com -->

# stocks_search_filings

Search EDGAR filing text live across all filers and return citations.

| Field | Value |
| --- | --- |
| Category | Stocks (`stocks`) |
| Exposure | public |
| MCP tool | `stocks_search_filings` |
| Documentation | https://www.agentdatasets.com/docs/tools/stocks_search_filings |

## Description

Search EDGAR filing text live across all filers and return citations.

The result is the shared response envelope. `data` echoes the applied
query/forms/date/CIK filters, `total_hits` (capped at 10,000 by the SEC
search window), `total_is_lower_bound`, and the bounded `hits` list;
`meta` holds `source: "sec_edgar_fts"` and the retrieval `as_of`;
`pagination` holds `limit`, `has_more`, and `next_cursor`.

Hits are individual documents WITHIN filings: exhibits, XBRL renders,
and primary documents score separately. Each hit carries
`accession_number`, the specific `form_type`, filing date, score,
filer CIK/name strings, and sec.gov `document_url` / `index_url` for
citation. `file_description` is EDGAR's document description, not a
text excerpt — the upstream search response does not include snippets.

Use this when you need to find filings anywhere in EDGAR by text
content. Use `stocks_get_sec_filings` instead when you already know a
company and want its filings metadata from our stored EDGAR submissions
table.

This is a live proxy over SEC search at call time: upstream failures
may surface as `upstream_rate_limited` (with retry-after) or
`upstream_stale`. Caller errors use `bad_parameter`; unknown local
tickers use `unknown_entity`. Results page by `next_cursor`, default
10 / max 50 hits per page, over SEC's 10,000-result window.

Example: `stocks_search_filings(query='"substantial doubt"',
forms=["10-K"], filed_from="2025-07-01", limit=5)`.

## Parameters

Input schema advertised to MCP clients and mirrored by the REST query string.

| Parameter | In | Type | Required | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| query | input | `string` | yes | — | — | Full-text phrase/keyword searched across EDGAR filing documents (2001→present, all filers). Quote for exact phrase ('"substantial doubt"'); plain terms are OR-matched. |
| forms | input | `array<string> \| null` | no | null | — | EDGAR form types to restrict to, e.g. ['10-K']; matches amendments too ('10-K/A' comes back for '10-K'). |
| filed_from | input | `string (date) \| null` | no | null | — | Earliest filing date to include, inclusive (YYYY-MM-DD). |
| filed_to | input | `string (date) \| null` | no | null | — | Latest filing date to include, inclusive (YYYY-MM-DD). |
| ticker_or_cik | input | `string \| null` | no | null | — | Restrict to one filer: exact ticker or numeric CIK. Tickers must resolve locally; any EDGAR CIK works even if we never ingested it. |
| limit | input | `integer` | no | 10 | min 1, max 50 | Document hits to return per page (1-50). |
| cursor | input | `string \| null` | no | null | — | Opaque pagination cursor from a previous response's `pagination.next_cursor`; omit for the first relevance page. |

## Provenance

- `sec_edgar_fts` — U.S. Securities and Exchange Commission (EDGAR), Full-text filing search hit metadata (form, dates, accession numbers, document filenames, entity names/CIKs, relevance score); served live, nothing stored (U.S. Government work, public domain (17 U.S.C. § 105)). See https://www.agentdatasets.com/docs/attribution.md

Dataset registry: `stocks_filing_search`.
