Skip to main content
Glama

Get filing facts by ID

get_filing_facts
Read-onlyIdempotent

Fetch specific XBRL facts for a single filing by fact_id. For line-item-name queries (revenue, net income, etc.) use the query_line_items tool instead. Identify the filing with filing_id, OR with ticker + fiscal_year (+ optional quarter). fact_ids: required non-empty list of fact ids. form_type defaults to 10-K — for foreign issuers pass 20-F or 40-F; Korean (DART) filings use 10-K / 10-Q. light_weight_mode=true (bool, default false) omits results[*].dimensional_breakdowns — saves context when you already know exactly what you need. Charged identically. Same as POST /api/v1/data/facts; see FINANCIAL_API_DOCUMENTATION.md for tiers and limits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tickerNoCompany ticker, e.g. "AAPL" (US), "000100" (Korea), "1332" (Japan), "VIRI_F" (Europe), "600519_CN" (China A-share). Use with fiscal_year when filing_id is omitted.
quarterNoQuarter label, e.g. "Q1"–"Q4" or "FY". Only needed to disambiguate quarterly filings.
fact_idsYesFact ids to fetch (1–500; each ≤ 128 chars). For line-item names use query_line_items instead.
filing_idNoNumeric filing id (from list_filings). Provide either filing_id, or ticker + fiscal_year.
form_typeNoFiling form. US: "10-K" / "10-Q"; foreign annual: "20-F" / "40-F"; Korean (DART): "10-K" (annual) / "10-Q" (quarterly). Defaults to "10-K".10-K
fiscal_yearNoReporting fiscal year (1990–2100). Required together with ticker when filing_id is omitted.
light_weight_modeNoWhen true, return a leaner payload (drops the most verbose nested fields). Charged the same. Saves context when you already know exactly what you need.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds valuable behavioral context: light_weight_mode drops dimensional_breakdowns and is charged identically, form_type defaults to 10-K and varies by jurisdiction, and the equivalence to POST /api/v1/data/facts. This goes beyond the annotations without contradicting them.

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?

The description is dense and packed with necessary details, front-loading the core purpose and then layering usage guidance, parameter specifics, and a pointer to documentation. While it is longer than some, every sentence earns its place and there is no fluff. It could be slightly more compact but is well-organized.

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

Completeness5/5

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

For a tool with 7 parameters and no output schema, the description covers identification methods, defaults, edge cases (foreign/Korean forms), the light_weight_mode option, and charging note. It also points to external documentation for tiers/limits. Nothing essential for correct selection and invocation is missing.

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

Parameters5/5

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

Although schema description coverage is 100%, the description adds meaning beyond the schema: fact_ids must be 1–500 items each ≤128 chars and are for line-item names (pointing to query_line_items); light_weight_mode's effect on the payload; form_type defaults and jurisdiction-specific values; and the mutual exclusivity of filing_id vs ticker+fiscal_year. This significantly aids correct invocation.

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

Purpose5/5

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

The description begins with a specific verb and resource: 'Fetch specific XBRL facts for a single filing by fact_id.' It clearly differentiates from query_line_items by stating that line-item-name queries (revenue, net income, etc.) should use that tool instead, which prevents confusion among the large sibling set.

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

Usage Guidelines5/5

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

It explicitly names the alternative tool (query_line_items) and the condition for using it. It also details how to identify the filing (filing_id or ticker + fiscal_year + optional quarter), and provides guidance on form_type for foreign issuers and Korean filings. This is comprehensive 'when-to-use' guidance.

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.

Resources