Skip to main content
Glama

SEC Financial Statements API: income, balance sheet, cash flow

sec_company_financials
Read-onlyIdempotent

Get clean financial statements of any US-listed company from the SEC's own XBRL data: revenue, profit, EPS, balance sheet, cash flow, free cash flow and margins, per fiscal year or per quarter, by ticker or CIK. For analysts, finance apps and AI agents that need a company's numbers over 5-20 years without parsing filings. Every value cites the XBRL tag and the SEC filing it came from.

Price: $0.005 per company-period.

Input Schema

NameRequiredDescriptionDefault
ciksNoSEC Central Index Keys as digits, leading zeros optional, e.g. ["320193"] for Apple
yearsNoHow many of the latest fiscal years to return per company, e.g. 5 (5 rows annual, up to 20 rows quarterly; 2 with quarterly = the last 8 quarters)
periodNo"annual" = one row per fiscal year (FY)annual
metricsNoOnly these output fields, e.g. ["revenue", "net_income", "free_cash_flow", "operating_margin"]
tickersNoUS tickers as listed by the SEC, e.g. ["AAPL", "MSFT"]; share classes with a dash or dot, e.g. "BRK-B"
includeSourcesNotrue = each row has `sources` (per value: the XBRL tag and the SEC accession number it came from, plus how it was derived) and `filings` (form, filing date and URL of each filing cited)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description only needs to add what they cannot. It does that well: pricing of $0.005 per company-period is a cost signal the agent cannot get from structured fields, and 'Every value cites the XBRL tag and the SEC filing it came from' discloses provenance. It stops short of stating rate limits, pagination, or what occurs on an unresolvable ticker.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, capability first, audience second, trust/pricing last, with no filler or marketing padding beyond the brief 'clean' and 'without parsing filings' framing. The price line is separated and easy to scan. Slightly dense in the first sentence, but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter read-only retrieval tool with no output schema, the description covers what it returns (income statement, balance sheet, cash flow items with per-value citations) and what it costs. The notable gap is that zero parameters are required, and the description never states that at least one of tickers or ciks is needed or what happens if both are omitted. Pagination and multi-company limits are also unaddressed, but not essential to a first correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter already carries its own documentation with defaults, ranges and enum values; the baseline of 3 applies. The prose adds only light framing ('per fiscal year or per quarter, by ticker or CIK') and one worked metric example, most of which restates schema content. Nothing new is said about interaction between ciks and tickers or about behavior when both are supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Get clean financial statements of any US-listed company from the SEC's own XBRL data') and enumerates the content dimensions: revenue, profit, EPS, balance sheet, cash flow, FCF and margins. It also states the two retrieval axes (annual vs quarterly, ticker vs CIK), so an agent can tell this is a per-company fundamentals fetch. It never names a sibling, so differentiation from sec_company_screen (which likely also touches financials) is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For analysts, finance apps and AI agents that need a company's numbers over 5-20 years without parsing filings' gives an audience and a motivating scenario, which implies when to reach for this tool. There is no explicit when-not, no prerequisite statement, and no routing guidance versus sec_company_screen or sec_filings_feed. An agent must infer the boundary from the resource nouns alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.