search_filing
Find a phrase across one filing, with the section each hit came from.
What it does
Literal, case-insensitive search across both lanes of one filing -- by default the latest annual report. Returns at most 10 hits, each about 400 characters of context and each tagged with the section_id it came from, so you can call read_filing_section and read the whole section rather than reasoning from a snippet. total_matches reports how many occurrences there were, so a returned list of ten is never mistaken for the complete set. A narrative hit carries the confidence and notice of the section it came from.
search_filing is on the free tier. A free account gets 12 agent calls per 16 hours and this is one of them; Pro is uncounted. The website's own screening allowance is counted separately.
Arguments, returns and a worked call
Everything below is generated from the same registry entry the MCP server and /openapi.json are generated from, so this page cannot name an argument that does not exist. The two examples are the same call, once over each transport.
search_filing
FreeLiteral, case-insensitive search across both lanes of one filing -- by default the latest annual report. Returns at most 10 hits, each about 400 characters of context and each tagged with the `section_id` it came from, so you can call read_filing_section and read the whole section rather than reasoning from a snippet. `total_matches` reports how many occurrences there were, so a returned list of ten is never mistaken for the complete set. A narrative hit carries the `confidence` and `notice` of the section it came from.
Arguments
symbol string, required — The ticker as Crush The Market spells it.
query string, required — The phrase to find, at least 3 characters. Matched literally and case-insensitively.
accession string, optional — A specific filing. Defaults to the latest annual report.
lane string, optional — Which lane to search: notes, narrative, or both. Defaults to both.
Returns
symbol, filing, query, lane, sections_searched, total_matches, count, hits, note, error, as_of, source, disclaimer
> curl -s https://crushthemarket.com/api/v1/search_filing \ -H "Authorization: Bearer $CTM_KEY" \ -H 'Content-Type: application/json' \ -d '{"symbol":"AAPL","query":"effective tax rate"}'{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_filing", "arguments": { "symbol": "AAPL", "query": "effective tax rate" } }}Can answer
bad_request — `symbol` is missing, `query` is shorter than three characters, or `lane` is not one of notes/narrative/both.
no_sec_filer — No SEC filer is mapped to the symbol.
edgar_unavailable — Neither lane could be read from EDGAR.
Calling search_filing
- 1.Register free — an email address, no card — then create a key under API Keys on your account page. Your email address has to be verified first, and the key is shown once.
- 2.Using a chat client that speaks MCP? The MCP guide is one paste. Anything else takes bearer auth, the error codes and the limits from the REST guide.
- 3.Make the call above with your own key in it.
Every successful response carries as_of, source, a quota block saying how much of the allowance is left, and the same disclaimer this page ends on.
More for agents
Data, not advice. Do your own diligence.