read_filing_section
The text of one section of one filing, whole by default.
What it does
Returns the text of the section named by section_id, from either lane -- ids starting note- come from the notes lane, item- (or whole-document) from the narrative lane. THE WHOLE SECTION IS RETURNED BY DEFAULT: there is no token cap and no truncation you did not ask for. total_chars and total_tokens always describe the whole section, chars and tokens describe what came back, and complete says whether they are the same thing. offset and limit are opt-in; pages concatenate back into the section character for character. On a narrative section, read section.confidence, section.flags and section.notice before quoting -- a section flagged incorporated_by_reference is a pointer to another document, not the disclosure.
read_filing_section 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.
read_filing_section
FreeReturns the text of the section named by `section_id`, from either lane -- ids starting `note-` come from the notes lane, `item-` (or `whole-document`) from the narrative lane. THE WHOLE SECTION IS RETURNED BY DEFAULT: there is no token cap and no truncation you did not ask for. `total_chars` and `total_tokens` always describe the whole section, `chars` and `tokens` describe what came back, and `complete` says whether they are the same thing. `offset` and `limit` are opt-in; pages concatenate back into the section character for character. On a narrative section, read `section.confidence`, `section.flags` and `section.notice` before quoting -- a section flagged `incorporated_by_reference` is a pointer to another document, not the disclosure.
Arguments
symbol string, required — The ticker as Crush The Market spells it.
section_id string, required — A section id from get_filing_outline, e.g. `note-income-taxes` or `item-1a`.
accession string, optional — A specific filing. Defaults to the latest annual report.
offset number, optional — Opt-in pagination: start this many characters into the section. Omit for the whole thing.
limit number, optional — Opt-in pagination: return at most this many characters. Omit for the whole section, which is the default and the recommended call.
Returns
symbol, filing, lane, section, text, chars, tokens, total_chars, total_tokens, offset, limit, complete, truncated, page, pages_total, next_offset, is_last_page, token_estimate, note, error, as_of, source, disclaimer
> curl -s https://crushthemarket.com/api/v1/read_filing_section \ -H "Authorization: Bearer $CTM_KEY" \ -H 'Content-Type: application/json' \ -d '{"symbol":"AAPL","section_id":"note-income-taxes"}'{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "read_filing_section", "arguments": { "symbol": "AAPL", "section_id": "note-income-taxes" } }}Can answer
bad_request — `symbol` or `section_id` is missing, `section_id` belongs to neither lane, or `offset`/`limit` are not sane numbers.
report_not_found — The notes lane has no section with that id in this filing; the message lists the ids it does have.
section_not_found — The narrative lane has no section with that id in this filing.
no_sections — The filing could not be sectioned at all, so no narrative id can be addressed. Use `whole-document`.
edgar_unavailable — EDGAR did not answer after retries.
Calling read_filing_section
- 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.