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

Free

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.

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 — One whole note from EDGAR's own rendering.
> 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"}'
MCP tools/call — One whole note from EDGAR's own rendering.
{  "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. 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. 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. 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

AgentsWhat exists, and the three-step quickstart.
MCPConnect Claude Code or claude.ai.
REST APIBearer auth, endpoints, errors and limits.
ToolsOne page per tool: arguments, a worked call, what it can fail with.

Data, not advice. Do your own diligence.

Noticed an error with something on our site?

Data, not advice. Do your own diligence.

We Use Cookies